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

Kurose Slides 3

Embed Size (px)

Citation preview

Page 1: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 1111

Capiacutetulo3

Redes de computadores e aInternetRedes de computadores e aInternet

Camadade

transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 2111

3

copy 2005 by Pearson Education 3 - 2

Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transportebull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 3111

3

copy 2005 by Pearson Education 3 - 3

Camada de transporte

bull

31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull37 Controle de congestionamento do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 4111

3

copy 2005 by Pearson Education 3 - 4

bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros

bull Os protocolos de transporte satildeoexecutados nos sistemas finais

bull Lado emissor quebra as mensagens

da aplicaccedilatildeo em segmentos e enviapara a camada de rede

bull Lado receptor remonta ossegmentos em mensagens e passa

para a camada de aplicaccedilatildeo

bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP

Protocolos e serviccedilos de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 5111

3

copy 2005 by Pearson Education 3 - 5

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 2: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 2111

3

copy 2005 by Pearson Education 3 - 2

Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transportebull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 3111

3

copy 2005 by Pearson Education 3 - 3

Camada de transporte

bull

31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull37 Controle de congestionamento do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 4111

3

copy 2005 by Pearson Education 3 - 4

bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros

bull Os protocolos de transporte satildeoexecutados nos sistemas finais

bull Lado emissor quebra as mensagens

da aplicaccedilatildeo em segmentos e enviapara a camada de rede

bull Lado receptor remonta ossegmentos em mensagens e passa

para a camada de aplicaccedilatildeo

bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP

Protocolos e serviccedilos de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 5111

3

copy 2005 by Pearson Education 3 - 5

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 3: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 3111

3

copy 2005 by Pearson Education 3 - 3

Camada de transporte

bull

31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull37 Controle de congestionamento do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 4111

3

copy 2005 by Pearson Education 3 - 4

bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros

bull Os protocolos de transporte satildeoexecutados nos sistemas finais

bull Lado emissor quebra as mensagens

da aplicaccedilatildeo em segmentos e enviapara a camada de rede

bull Lado receptor remonta ossegmentos em mensagens e passa

para a camada de aplicaccedilatildeo

bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP

Protocolos e serviccedilos de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 5111

3

copy 2005 by Pearson Education 3 - 5

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 4: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 4111

3

copy 2005 by Pearson Education 3 - 4

bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros

bull Os protocolos de transporte satildeoexecutados nos sistemas finais

bull Lado emissor quebra as mensagens

da aplicaccedilatildeo em segmentos e enviapara a camada de rede

bull Lado receptor remonta ossegmentos em mensagens e passa

para a camada de aplicaccedilatildeo

bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP

Protocolos e serviccedilos de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 5111

3

copy 2005 by Pearson Education 3 - 5

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 5: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 5111

3

copy 2005 by Pearson Education 3 - 5

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 6: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 6111

3

copy 2005 by Pearson Education 3 - 6

bull Confiaacutevel garante ordem de entrega(TCP)

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP

bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos

bull Garantia de banda

Protocolos da camada de transporte da Internet

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 7: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 7111

3

copy 2005 by Pearson Education 3 - 7

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 8: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 8111

3

copy 2005 by Pearson Education 3 - 8

Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor

entrega os segmentos recebidosao socket correto

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

Multiplexaccedilatildeodemultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 9: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 9111

3

copy 2005 by Pearson Education 3 - 9

bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se

nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)

bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 10: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 10111

3

copy 2005 by Pearson Education 3 - 10

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

DatagramSocket mySocket2 = new DatagramSocket(99222)

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

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

bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 11: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 11111

3

copy 2005 by Pearson Education 3 - 11

DatagramSocket serverSocket = new DatagramSocket(6428)

cliente

IPB

P2

cliente

IP A

P1P1P3

servidor

IP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP fornece o ldquoendereccedilo retornordquo0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 12: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 12111

3

copy 2005 by Pearson Education 3 - 12

bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino

bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado

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

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 13: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 13111

3

copy 2005 by Pearson Education 3 - 13

cliente

IPB

P1

cliente

IP A

P1P2P4

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 14: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 14111

3

copy 2005 by Pearson Education 3 - 14

cliente

IPB

P1

cliente

IP A

P1P2

servidor

IP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

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

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

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

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

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

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

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

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

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

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

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

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

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

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

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

Sk

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

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

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

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

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

300

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

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

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

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 15: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 15111

3

copy 2005 by Pearson Education 3 - 15

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

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

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

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

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

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

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

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

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

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

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

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

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

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

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

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

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

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

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

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

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

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

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

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

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

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

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

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

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

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

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

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

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

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

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

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

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

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

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

bull

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

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

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

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

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

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

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

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

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

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

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

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

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

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

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

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 16: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 16111

3

copy 2005 by Pearson Education 3 - 16

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor

bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido

quanto desejado (e possiacutevel)

UDP User Datagram Protocol [RFC768]

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 17: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 17111

3

copy 2005 by Pearson Education 3 - 17

bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica

de cada aplicaccedilatildeo

Mais sobre UDP

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 18: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 18111

3

copy 2005 by Pearson Education 3 - 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento

bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 19: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 19111

3

copy 2005 by Pearson Education 3 - 19

bull Note quebull

Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado

bull Exemplo adicione dois inteiros de 16 bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Exemplo Internet checksum

3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 20: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 20111

3

copy 2005 by Pearson Education 3 - 20

bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3P i iacute i d f ecirc i fiaacute l d d d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 21: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 21111

3

copy 2005 by Pearson Education 3 - 21

bull Importante nas camadasde aplicaccedilatildeo transportee enlace

bull Top 10 na lista dostoacutepicos mais importants

de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados

(rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

3T f ecirc i fiaacute l d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 22: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 22111

3

copy 2005 by Pearson Education 3 - 22

ladotransmissor

ladoreceptor

rdt_send() chamada da camada superior (ex

pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora

udt_send() chamada pela entidade detransporte para transferir pacotes para o

receptor sobre o canal natildeo confiaacutevel

rdt_rcv() chamada quando o pacote chega aolado receptor do canal

deliver_data() chamada pela

entidade de transporte para entregardados para cima

Transferecircncia confiaacutevel o ponto departida

3T f ecirc i fiaacute l t d

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 23: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 23111

3

copy 2005 by Pearson Education 3 - 23

Etapas

bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)

bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees

bull Usar maacutequinas de estados finitos (FSM) para especificar o protocolo

transmissor e o receptor

estado1

estado2

evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste

ldquoestadordquo o proacuteximo

estado fica unicamentedeterminado pelo proacuteximo

eventoeventoaccedilotildees

Transferecircncia confiaacutevel o ponto departida

3rdt1 0 Transfecircrencia confiaacutevel sobre canais

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 24: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 24111

3

copy 2005 by Pearson Education 3 - 24

bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits

bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente

rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis

3 dt2 0 l d bit

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 25: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 25111

3

copy 2005 by Pearson Education 3 - 25

rdt20 canal com erros de bit

bull

Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits

bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor

que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao

transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK

bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle

(ACK NAK) rcvr-gtsender

3 dt2 0 ifi atilde FSM

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 26: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 26111

3

copy 2005 by Pearson Education 3 - 26

rdt20 especificaccedilatildeo FSM

3rdt2 0 operaccedilatildeo com ausecircncia de erros

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 27: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 27111

3

copy 2005 by Pearson Education 3 - 27

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 operaccedilatildeo com ausecircncia de erros

3rdt2 0 cenaacuterio de erro

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 28: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 28111

3

copy 2005 by Pearson Education 3 - 28

aguarda

chamada de

cima

snkpkt = make_pkt(data checksum)

udt_send(sndpkt)

extract(rcvpktdata)

deliver_data(data)

udt_send(ACK)

rdt_rcv(rcvpkt) ampamp

notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp

corrupt(rcvpkt)

aguarda

ACK ou

NAK

aguarda

chamada de

baixo

rdt_send(data)

Λ

rdt20 cenaacuterio de erro

3rdt2 0 tem um problema fatal

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 29: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 29111

3

copy 2005 by Pearson Education 3 - 29

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido

bull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes duplicados

Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do receptor

rdt20 tem um problema fatal

3rdt2 1 transmissor trata ACKNAKs

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 30: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 30111

3

copy 2005 by Pearson Education 3 - 30

rdt21 transmissor trata ACKNAKsperdidos

3rdt2 1 receptor trata ACKNAKs perdidos

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 31: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 31111

3

copy 2005 by Pearson Education 3 - 31

rdt21 receptor trata ACKNAKs perdidos

3rdt2 1 discussatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 32: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 32111

3

copy 2005 by Pearson Education 3 - 32

Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1

Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado

bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor

rdt21 discussatildeo

3rdt2 2 um protocolo sem NAK

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 33: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 33111

3

copy 2005 by Pearson Education 3 - 33

bull Mesma funcionalidade do rdt21 usando somente ACKs

bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do

pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK

retransmissatildeo do pacote corrente

rdt22 um protocolo sem NAK

3rdt22 fragmentos do transmissor e do receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 34: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 34111

3

copy 2005 by Pearson Education 3 - 34

aguarda

chamada 0

de cima

sndpkt = make_pkt(0 data checksum)

udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

( corrupt(rcvpkt) ||

isACK(rcvpkt1) )

rdt_rcv(rcvpkt)

ampamp notcorrupt(rcvpkt)ampamp isACK(rcvpkt0)

aguarda

ACK

0

fragmento FSMdo transmissor

aguarda

0 de

baixo

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)ampamp has_seq1(rcvpkt)

extract(rcvpktdata)

deliver_data(data)

sndpkt = make_pkt(ACK1 chksum)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp

(corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)

fragmento FSMdo receptor

Λ

rdt22 fragmentos do transmissor e do receptor

3rdt3 0 canais com erros e perdas

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 35: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 35111

3

copy 2005 by Pearson Education 3 - 35

Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda

mas natildeo o bastante

Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente

rdt30 canais com erros e perdas

3Transmissor rdt3 0

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 36: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 36111

3

copy 2005 by Pearson Education 3 - 36

Transmissor rdt30

3rdt3 0 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 37: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 37111

3

copy 2005 by Pearson Education 3 - 37

rdt30 em accedilatildeo

3rdt30 em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 38: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 38111

3

copy 2005 by Pearson Education 3 - 38

rdt30 em accedilatildeo

3Desempenho do rdt30

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 39: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 39111

3

copy 2005 by Pearson Education 3 - 39

Ttransmi

ssatildeo

= 8 kbpkt109 bs

= 8 microseg

bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal

bull De 1 Gbps

bull O protocolo de rede limita o uso dos recursos fiacutesicos

Usender =

00

00000= 000000

L R

RTT + L R=

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull rdt30 funciona mas o desempenho eacute sofriacutevel

bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB

Desempenho do rdt30

3rdt30 operaccedilatildeo pare e espere

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 40: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 40111

3

copy 2005 by Pearson Education 3 - 40

rdt30 operaccedilatildeo pare e espere

3Protocolos com paralelismo (pipelining)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 41: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 41111

3

copy 2005 by Pearson Education 3 - 41

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos

bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

o oco os co pa a e s o (p pe g)

3Pipelining aumento da utilizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 42: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 42111

3

copy 2005 by Pearson Education 3 - 42

Usender

=000

00000= 00000

L R0

RTT + L R=

p g ccedil

Aumento da utilizaccedilatildeopor um fator de 3

3Go-Back-N

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 43: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 43111

3

copy 2005 by Pearson Education 3 - 43

Transmissor

bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote

bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)

bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com

nuacutemero de sequumlecircncia maior que estejam dentro da janela

3GBN FSM estendida para o transmissor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 44: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 44111

3

copy 2005 by Pearson Education 3 - 44

p

3GBN FSM estendida para o receptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 45: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 45111

3

copy 2005 by Pearson Education 3 - 45

bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum

bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem

p p

3GBN em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 46: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 46111

3

copy 2005 by Pearson Education 3 - 46

ccedil

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 47: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 47111

3

copy 2005 by Pearson Education 3 - 47

bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido

bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos

3Retransmissatildeo seletiva janelas do transmissor e doreceptor

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 48: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 48111

3

copy 2005 by Pearson Education 3 - 48

receptor

3Retransmissatildeo seletiva

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 49: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 49111

3

copy 2005 by Pearson Education 3 - 49

TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote

Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo

nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n em [rcvbase rcvbase + N -1]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila

janela para o proacuteximo pacote ainda natildeo recebido

pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora

3Retransmissatildeo seletiva em accedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 50: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 50111

3

copy 2005 by Pearson Education 3 - 50

3Retransmissatildeo seletiva dilema

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 51: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 51111

3

copy 2005 by Pearson Education 3 - 51

Exemplobull Sequumlecircncias 0 1 2 3

bull Tamanho da janela = 3

bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios

bull

Incorretamente passa dadosduplicados como novos (figura a)

P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 52: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 52111

3

copy 2005 by Pearson Education 3 - 52

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP overviewRFCs 793 1122 1323 2018 2581

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 53: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 53111

3

copy 2005 by Pearson Education 3 - 53

bull Ponto-a-pontobull Um transmissor um receptor

bull Confiaacutevel sequumlencial byte stream

bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo

definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex

bull Transmissatildeo bidirecional na mesmaconexatildeo

bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

bull Controle de fluxobull Transmissor natildeo esgota a capacidade

do receptor

3Estrutura do segmento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 54: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 54111

3

copy 2005 by Pearson Education 3 - 54

URG dados urgentes

(pouco usados)ACK campo de ACK

eacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos decriaccedilatildeo e teacutermino)

nuacutemero de bytes

receptor estaacutepronto paraaceitar

contagem por

bytes de dados(natildeo segmentos)

Internet

checksum(como no UDP)

3Nuacutemero de sequumlecircncia e ACKs do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 55: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 55111

3

copy 2005 by Pearson Education 3 - 55

Nuacutemeros de sequumlecircncia

bull Nuacutemero do primeiro bytenos segmentos de dados

ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo

P Como o receptor tratasegmentos fora de ordem

bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do

implementador

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 56: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 56111

3

copy 2005 by Pearson Education 3 - 56

P como escolher o valor da temporizaccedilatildeo do TCPbull

Maior que o RTTbull Nota RTT varia

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 57: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 57111

3

copy 2005 by Pearson Education 3 - 57

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial

bull Influecircncia de uma dada amostra decresce de forma exponencial

bull Valor tiacutepico α = 0125

3Exemplos de estimativa do RTT

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 58: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 58111

3

copy 2005 by Pearson Education 3 - 58

3 TCP Round Trip Time e temporizaccedilatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 59: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 59111

3

copy 2005 by Pearson Education 3 - 59

Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 60: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 60111

3

copy 2005 by Pearson Education 3 - 60

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP transferecircncia de dados confiaacutevel

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 61: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 61111

3

copy 2005 by Pearson Education 3 - 61

bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments

bull ACKs cumulativos

bull TCP usa tempo de retransmissatildeo simples

bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados

bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento

3Eventos do transmissor TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 62: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 62111

3

copy 2005 by Pearson Education 3 - 62

Dado recebido da app

bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo

bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador

ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes

3 Transmissor TCP (simplificado)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 63: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 63111

3

copy 2005 by Pearson Education 3 - 63

NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)

switch(event) event dado recebido da aplicaccedilatildeo acima

cria segmento TCP com no de sequacuteecircnciaNextSeqNum

if (timer currently not running)start timer

pass segment to IP

NextSeqNum = NextSeqNum + length(data)event tempo de confirmaccedilatildeo do temporizador

retransmit not-yet-acknowledged segment withsmallest sequence number

start timerevent ACK recebido com valor do campo de ACK do

yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged

segments)start timer

Comentaacuteriobull SendBase-1

uacuteltimo byte do

ACK cumulativo

Exemplobull SendBase-1 =

71 y= 73entatildeo o

receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 64: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 64111

3

copy 2005 by Pearson Education 3 - 64

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

3 TCP cenaacuterios de retransmissatildeo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 65: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 65111

3

copy 2005 by Pearson Education 3 - 65

Cenaacuterio de ACK cumulativo

3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 66: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 66111

3

copy 2005 by Pearson Education 3 - 66

Evento no receptor

Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordemnatildeo haacute lacunas

um ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeochegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap

3Retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 67: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 67111

3

copy 2005 by Pearson Education 3 - 67

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back

bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o

segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador

expirar

3Algoritmo de retransmissatildeo raacutepida

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 68: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 68111

3

copy 2005 by Pearson Education 3 - 68

event ACK received with ACK field value of yif (y gt SendBase)

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer

else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)

resend segment with sequence number y

ACK duplicado para umsegmento jaacute confirmado

retransmissatildeo raacutepida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 69: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 69111

3

copy 2005 by Pearson Education 3 - 69

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 TCP controle de fluxo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 70: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 70111

3

copy 2005 by Pearson Education 3 - 70

bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo

bull Serviccedilo de speed-matching

encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora

bull Processos de aplicaccedilatildeo podem ser

lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais

3Controle de fluxo TCP como funciona

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 71: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 71111

3

copy 2005 by Pearson Education 3 - 71

(suponha que o receptor TCP descarte segmentos fora de ordem)

bull Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos

bull Transmissor limita os dados natildeoconfimados ao RcvWindow

bull Garantia contra overflow no

buffer do receptor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 72: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 72111

3

copy 2005 by Pearson Education 3 - 72

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 73: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 73111

3

copy 2005 by Pearson Education 3 - 73

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)

bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)

bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()

Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 74: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 74111

3

copy 2005 by Pearson Education 3 - 74

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento

TCP FIN ao servidor

Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 75: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 75111

3

copy 2005 by Pearson Education 3 - 75

Passo 3 cliente recebe FINresponde com ACK

bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos

Passo 4 servidor recebe ACKConexatildeo fechada

Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos

3Gerenciamento de conexatildeo TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 76: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 76111

3

copy 2005 by Pearson Education 3 - 76

Estados do cliente Estados do servidor

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 77: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 77111

copy 2005 by Pearson Education 3 - 77

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3Princiacutepios de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 78: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 78111

copy 2005 by Pearson Education 3 - 78

Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da

rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

3Causascustos do congestionamento cenaacuterio 1

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 79: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 79111

copy 2005 by Pearson Education 3 - 79

bull Dois transmissores doisreceptores

bull Um roteador buffersinfinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos quando

congestionadobull Maacutexima vazatildeo alcanccedilaacutevel

3Causascustos do congestionamento cenaacuterio 2

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 80: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 80111

copy 2005 by Pearson Education 3 - 80

bull Um roteador buffers finitos

bull Transmissor reenvia pacotes perdidos

3Causascustos do congestionamento cenaacuterio 2

λ λ

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 81: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 81111

copy 2005 by Pearson Education 3 - 81

bull Sempre vale (traacutefego bom)

bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas

bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo

λin

λout

=

λ

in

λ

out

gt

λinλ

out

ldquocustosrdquo do congestionamento

bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo

bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote

3Q t t i λ λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 82: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 82111

copy 2005 by Pearson Education 3 - 82

bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos

bull Temporizaccedilotildeesretransmissotildees

λin

P o que acontece quando e

aumentam

λin

3 h λ

Causascustos do congestionamento cenaacuterio 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 83: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 83111

copy 2005 by Pearson Education 3 - 83

Outro ldquocustordquo do congestionamento

bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

o

s

p

e

dei

ro

A

h

o

s

p

e

d

ei

ro

B

o

u

t

3Abordagens do produto de controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 84: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 84111

copy 2005 by Pearson Education 3 - 84

Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP

ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada

3Estudo de caso controle de congestionamento doserviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 85: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 85111

copy 2005 by Pearson Education 3 - 85

ABR available bit rate

bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel

bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida

Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento

bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos

3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 86: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 86111

copy 2005 by Pearson Education 3 - 86

bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho

bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida

3Camada de transporte

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 87: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 87111

copy 2005 by Pearson Education 3 - 87

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento

bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3bull Controle fim-a-fim (sem assistecircncia da rede)

TCP controle de congestionamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 88: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 88111

copy 2005 by Pearson Education 3 - 88

Controle fim a fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

LastByteSent-LastByteAcked le CongWinbull Aproximadamente

bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados

Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin RTT

Bytessec

3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

TCP AIMD

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 89: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 89111

copy 2005 by Pearson Education 3 - 89

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de

eventos de perda probing

conexatildeo TCP de longa-vida

3 TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 90: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 90111

copy 2005 by Pearson Education 3 - 90

bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda

3hospedeiro A hospedeiro B

TCP Partida lenta

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 91: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 91111

copy 2005 by Pearson Education 3 - 91

bull Quando a conexatildeo comeccedila a taxa

aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido

bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido

um segment o

R T T

tempo

d o i s segment o s

quat r o segment o s

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 92: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 92111

copy 2005 by Pearson Education 3 - 92

bull Apoacutes 3 ACKs duplicados

bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente

bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

3Refinamento

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 93: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 93111

copy 2005 by Pearson Education 3 - 93

P Quando o aumento

exponencial deve tornar-selinear

R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo

Implementaccedilatildeo

bull Limite variaacutevelbull No evento de perda o limiar

eacute ajustado para 12 doCongWin logo antes do eventode perda

3Resumo controle de congestionamento TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 94: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 94111

copy 2005 by Pearson Education 3 - 94

bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente

bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente

bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold

bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS

3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio

TCP sender congestion control

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 95: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 95111

copy 2005 by Pearson Education 3 - 95

ACK recebidopara dadopreviamentenatildeo-confirmado

partida lenta(SS)

CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Resulta em dobrar oCongWin a cada RTT

ACK recebidopara dadopreviamentenatildeo-confirmado

prevenccedilatildeo decongestiona-mento (CA)

CongWin = CongWin +MSS (MSSCongWin)

Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT

Evento deperdadetectadopor trecircs ACKsduplicados

SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo

Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS

Tempo de

confirmaccedilatildeo

SS or CA Threshold = CongWin2

CongWin = 1 MSSAjustar estado paraldquopartida lentardquo

Entra em partida lenta

ACK duplicado

SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo

CongWin e Thresholdnatildeo mudam

3 TCP throughput

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 96: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 96111

copy 2005 by Pearson Education 3 - 96

bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta

bull Deixe W ser o tamanho da janela quando ocorre perda

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio 75 WRTT

3Futuro do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 97: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 97111

copy 2005 by Pearson Education 3 - 97

bull

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput

bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

bull Throughput em termos da taxa de perda

bull L = 210-10 Uau

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

L RTT

MSS sdot000

3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do

Equumlidade do TCP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 98: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 98111

copy 2005 by Pearson Education 3 - 98

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta

Por que o TCP eacute justo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 99: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 99111

copy 2005 by Pearson Education 3 - 99

bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamentoaumento aditivo

perda reduz janela por um fator de 2

prevenccedilatildeo de congestionamento aumento aditivo

3Equumlidade e UDP

Equumlidade

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 100: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 100111

copy 2005 by Pearson Education 3 - 100

Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas

bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso

bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar

TCP modelagem de latecircncia

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 101: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 101111

copy 2005 by Pearson Education 3 - 101

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido

Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta

Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela

bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta

3 Janela de congestionamento fixa (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 102: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 102111

copy 2005 by Pearson Education 3 - 102

Primeiro caso

WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados

atraso = 2RTT + OR

3 Janela de congestionamento fixa (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 103: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 103111

copy 2005 by Pearson Education 3 - 103

Segundo casobull WSR lt RTT + SR espera

pelo ACK apoacutes enviar o valorda janela de dados

atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]

3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase

TCP Modelagem de latecircncia partida lenta (1)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 104: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 104111

copy 2005 by Pearson Education 3 - 104

partida lenta

bull Vamos mostrar que a latecircncia de um objeto de tamanho O eacute

em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor

bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito

bull E K eacute o nuacutemero de janelas que cobrem o objeto

R

S

R

S RTT P

R

O RTT Latency P )00(0 minusminus

+++=

0min minus= K Q P

3Componentes do atraso

TCP modelagem de latecircncia partida lenta (2)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 105: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 105111

copy 2005 by Pearson Education 3 - 105

Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta

Servidor inativo

P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2

Servidor inativo P = 2 tempos

3eacute d id b

tempo quando o servidor iniciao envio do segmento

=+RTTS

TCP modelagem de latecircncia partida lenta (3)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 106: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 106111

copy 2005 by Pearson Education 3 - 106

RSRSRTT PRTT RO

R

SRTT

R

SRTT

R

O

TempoBloqueioRTT R

O

P

k P

k

P

pp

)12(][2

]+2[2

2latecircncia

11

1

--+++=

-+++=

++=

-=

=aring

aring

tempo de bloqueio apoacutes ak-eacutesima janela2 1

R

SRTT

R

Sk =uacute

ucirc

ugraveecirc

euml

eacute -++

-

ateacute quando o servidor recebe

reconhecimento

+RTT R

tempo para enviar a k-eacutesima janela2 1 =-R

Sk

3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K

TCP modelagem de latecircncia partida lenta (4)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 107: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 107111

copy 2005 by Pearson Education 3 - 107

+=

+ge=

geminus=

ge+++=

ge+++=minus

minus

)0(log

)0(logmin

00min

000min

000min

0

0

000

000

S

O

S

Ok k

S

Ok

S Ok

OS S S k K

k

k

k

O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)

3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)

Modelagem HTTP

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 108: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 108111

copy 2005 by Pearson Education 3 - 108

bull M imagens (cada uma de tamanho O bit)

bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de

inatividade

bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base

bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de

inatividade

bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base

bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos

de inatividade

300

00

RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 109: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 109111

copy 2005 by Pearson Education 3 - 109

0

00

0

0

00

00

0000

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas

300

RTT =1 seg O = 5 Kbytes M=10 and X=5

Tempo de resposta HTTP (emsegundos)

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 110: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 110111

copy 2005 by Pearson Education 3 - 110

0

00

00

00

00

00

00

00

00

Kbps

000

Kbps

Mbps0 00

Mbps

non-persistent

persistent

parallel non-

persistent

Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande

3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

Resumo

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Page 111: Kurose Slides 3

5122018 Kurose Slides 3 - slidepdfcom

httpslidepdfcomreaderfullkurose-slides-3 111111

copy 2005 by Pearson Education 3 - 111

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP

bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede