mba, itil v3, perito computacional forense · 3: camada de transporte 3b29 controle de fluxo do...

69
TCP / IP Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense http://www.marcosmonteiro.com.br [email protected]

Upload: others

Post on 16-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

TCP IP

Marcos Monteiro MBA ITIL V3 Perito computacional Forense

httpwwwmarcosmonteirocombr contatomarcosmonteirocombr

A

Internet nasceu da

internet 2

Histoacuteria

Histoacuteria da comunicaccedilatildeo da Internet

3

e o TCPIP

4

Se lembra do modelo OSI

5

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 2: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

A

Internet nasceu da

internet 2

Histoacuteria

Histoacuteria da comunicaccedilatildeo da Internet

3

e o TCPIP

4

Se lembra do modelo OSI

5

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 3: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

Histoacuteria

Histoacuteria da comunicaccedilatildeo da Internet

3

e o TCPIP

4

Se lembra do modelo OSI

5

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 4: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

e o TCPIP

4

Se lembra do modelo OSI

5

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 5: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

Se lembra do modelo OSI

5

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 6: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

Se lembra do modelo OSI

6

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 7: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

TCPIP

7

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 8: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

8

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 9: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

9

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 10: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

10

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 11: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy11

TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex

ndash fluxo de dados bishydirecional na mesma conexatildeo

ndash MSS tamanho maacuteximo de segmento

bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados

bull fluxo controlado ndash receptor natildeo seraacute afogado

bull ponto a ponto ndash 1 remetente 1 receptor

bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs

bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP

bull buffers de envio e recepccedilatildeo socket door

TCP send buffer

TCP receive buffer

socket door

segment

application writes data

application reads data

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 12: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy12

TCP estrutura do segmento

no porta origem no porta dest

32 bits

dados da aplicaccedilatildeo

(tam variaacutevel)

nuacutemero de sequumlecircncia nuacutemero de reconhecimento

janela receptor ptr dados urg checksum

F S R P A U tam cab

sem uso

Opccedilotildees (tam variaacutevel)

URG dados urgentes (pouco usados)

ACK no ACK vaacutelido

PSH envia dados jaacute (pouco usado)

RST SYN FIN gestatildeo de conexatildeo

(comandos de estabelecimento

liberaccedilatildeo)

no bytes rcpt quer aceitar

contagem de dados por bytes (natildeo segmentos)

checksum Internet

(como UDP)

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 13: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy13

TCP nos de seq e ACKs Nos de seq

ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento

ACKsndash no de seq do proacutex byte esperado do outro lado

ndash ACK cumulativo P como receptor trata

segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador

Estaccedilatildeo A Estaccedilatildeo B

Usuaacuterio tecla

lsquoC‛

A reconhece chegada

do lsquoC‛ ecoado

B reconhece chegada de

lsquoC‛ ecoa lsquoC‛ de volta

tempo cenaacuterio simples de telnet

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 14: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy14

TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo

P como escolher valor do temporizador TCP

bull maior que o RTT ndash note RTT pode variar

bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias

bull muito longo reaccedilatildeo demorada agrave perda de segmentos

P como estimar RTT bull RTTamostra tempo medido entre

a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees

bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 15: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy15

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra

r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente

com o tempo r valor tiacutepico de α = 0125

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 16: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy16

Exemplo de estimativa do RTT RTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

RTT (m

illise

cond

s)

SampleRTT Estimated RTT

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 17: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy17

TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo

Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila

bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado

bull Entatildeo seta o temporizador para

Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT

Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 18: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy18

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 19: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy19

Transferecircncia de dados confiaacutevel do TCP

bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP

bull Segmentos em seacuterie (pipelined)

bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees

bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo

ndash acks duplicados

bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 20: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy20

Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de

sequumlecircncia (nseq) bull nseq eacute o nuacutemero de

sequumlecircncia do primeiro byte do segmento

bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)

bull Valor do temporizador calculado anteriormente

estouro do temporizador bull Retransmite o segmento que

causou o estouro do temporizador

bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos

ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o

que foi reconhecido ndash religa o temporizador se

ainda houver segmentos pendentes (natildeo reconhecidos)

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 21: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy21

Transmisshy sorTCP (simplificado)

NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial

repita (sempre) switch(event)

event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado)

liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)

event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o

menor nuacutemero de sequumlecircncia reinicia o temporizador

event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y

SendBase = y se (houver segmentos ainda natildeo reconhecidos)

liga o temporizador senatildeo desliga o temporizador

fim do repita sempre

Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 22: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy22

TCP cenaacuterios de retransmissatildeo Host A

tempo estouro prematuro do temporizador

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

cenaacuterio de perda de ACK

Host B

X

tempo

Seq=

92 t

imeo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 23: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy23

TCP cenaacuterios de retransmissatildeo (mais)

Host A

loss

tim

eout

Cenaacuterio de ACK cumulativo

Host B

X

tempo

SendBase = 120

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 24: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy24

TCP geraccedilatildeo de ACKs [RFCs 1122 2581]

Evento no Receptor

chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos

chegada de segmento em ordem sem lacunas um ACK retardado pendente

chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna

chegada de segmento que preenche a lacuna parcial ou completamente

Accedilatildeo do Receptor TCP

ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK

envia imediatamente um uacutenico ACK cumulativo

envia ACK duplicado indicando no de seqdo proacuteximo byte esperado

ACK imediato se segmento no iniacutecio da lacuna

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 25: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy25

Retransmissatildeo raacutepida bull O intervalo do temporizador

eacute frequumlentemente bastante longo ndash longo atraso antes de

retransmitir um pacote perdido

bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente

envia diversos segmentos ndash Se um segmento se perder

provavelmente haveraacute muitos ACKs duplicados

bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida

retransmite o segmento antes que estoure o temporizador

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 26: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy26

event recebido ACK com valor do campo ACK de y if (y gt SendBase)

SendBase = y if (houver segmentos ainda natildeo reconhecidos)

liga temporizador else desliga temporizador

else

incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3)

retransmita segmento com nuacutemero de sequumlecircncia y

Algoritmo de retransmissatildeo raacutepida

um ACK duplicado para um segmento jaacute reconhecido Retransmissatildeo raacutepida

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 27: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy27

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 28: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy28

Controle de Fluxo do TCP

bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora

r Processo da apl pode demorar a ler do receptor

o transmissor natildeo inundaraacute o buffer do

receptor transmitindo muito e rapidamente

Controle de fluxo

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 29: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy29

Controle de Fluxo do TCP como funciona

(Suponha que o receptor TCP segmentos fora de ordem)

bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy

LastByteRead]

bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos

bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 30: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy30

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 31: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy31

TCP Gerenciamento de Conexotildees

Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados

bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)

bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport

number)

bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()

Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento

de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados

Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq

servidorshygt receptor

Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 32: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy32

TCP Gerenciamento de Conexotildees (cont)

Encerrando uma conexatildeo

cliente fecha soquete clientSocketclose()

Passo 1 sistema cliente envia segmento de controle FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN

cliente servidor

fechar

fechar

fechada

espe

ra

tem

pori

zada

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 33: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy33

TCP Gerenciamento de Conexotildees (cont)

Passo 3 cliente recebe FIN responde com ACK

ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo encerrada

Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos

cliente servidor

fechando

fechando

fechada

espe

ra

tem

pori

zada

fechada

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 34: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy34

TCP Gerenciamento de Conexotildees (cont)

Ciclo de vida de cliente TCP

Ciclo de vida de servidor TCP

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 35: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy35

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 36: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy36

Princiacutepios de Controle de Congestionamento

Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo

bull diferente de controle de fluxo bull manifestaccedilotildees

ndash perda de pacotes (esgotamento de buffers em roteadores)

ndash longos atrasos (enfileiramento nos buffers dos roteadores)

bull um dos 10 problemas mais importantes em redes

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 37: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy37

Causascustos de congestionamento cenaacuterio 1

bull dois remetentes dois receptores

bull um roteador buffers infinitos

bull sem retransmissatildeo

bull grandes retardos qdo congestionada

bull vazatildeo maacutexima alcanccedilaacutevel

unlimited shared output link buffers

Host A λ in original data

Host B

λ out

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 38: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy38

Causascustos de congestionamento cenaacuterio 2

bull Um roteador buffers finitos bull retransmissatildeo pelo remetente de pacote perdido

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 39: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy39

r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas

r retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (do que o caso perfeito) para o mesmo

Causascustos de congestionamento cenaacuterio 2

λ in

λ out =

λ in

λ out gt

λ in

λ out R2

R2 λ in

λ out

b

R2

R2 λ in

λ out

a

R2

R2 λ in

λ out

c

R4

R3

ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 40: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy40

Causascustos de congestionamento cenaacuterio 3

bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo

λ in

P o que acontece agrave medida que e crescem λ

in

finite shared output link buffers

Host A λ in original data

Host B

λ out

λ in original data plus retransmitted data

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 41: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy41

Causascustos de congestionamento cenaacuterio 3

Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada

(antes do descarte) para esse pacote foi desperdiccedilada

H o s t A

H o s t B

λ o u t

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 42: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy42

Abordagens de controle de congestionamento

Controle de congestionamento fim a fim

bull natildeo tem realimentaccedilatildeo expliacutecita pela rede

bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal

bull abordagem usada pelo TCP

Controle de congestionamento com apoio da rede

bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)

ndash taxa expliacutecita p envio pelo remetente

Duas abordagens amplas para controle de congestionamento

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 43: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy43

Estudo de caso controle de congestionamento no ABR da ATM

ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente

ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel

bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida

ceacutelulas RM (resource management)

bull enviadas pelo remetente intercaladas com ceacutelulas de dados

bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)

ndash bit CI indicaccedilatildeo de congestionamento

bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 44: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy44

Estudo de caso controle de congestionamento em ABR da ATM

bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os

comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado

ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 45: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy45

Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 UDP Transporte natildeo orientado a conexatildeo

bull 34 Princiacutepios da transferecircncia confiaacutevel de dados

bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 46: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy46

Controle de Congestionamento do TCP

bull controle fimshyashyfim (sem assistecircncia da rede)

bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked

le CongWin

bull Praticamente

bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede

Como o transmissor percebe o congestionamento

bull evento de perda = estouro do temporizador ou 3 acks duplicados

bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda

trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos

de estouro de temporizaccedilatildeo

taxa = CongWin RTT Bytesseg

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 47: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy47

AIMD do TCP

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion window

decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda

crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem

Conexatildeo TCP de longa duraccedilatildeo

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 48: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy48

Partida Lenta do TCP

bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg

ndash taxa inicial = 20 kbps

bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel

r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 49: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy49

r No iniacutecio da conexatildeo aumenta a taxa

exponencialmente ateacute o primeiro evento de

perda m duplica CongWin a cada

RTT m atraveacutes do incremento da CongWin para cada ACK

recebido r Resumo taxa inicial eacute

baixa mas cresce rapidamente de forma

exponencial

TCP Partida lenta (mais) Estaccedilatildeo A

RTT

Estaccedilatildeo B

tempo

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 50: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy50

Refinamento bull Apoacutes 3 ACKs duplicados

ndash corta CongWin pela metade

ndash a janela depois cresce linearmente

bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS

ndash janela cresce exponencialmente

ndash ateacute um limiar depois cresce linearmente

bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo

Filosofia

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 51: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy51

Refinamento (mais) P Quando o crescimento

exponencial deve mudar para linear

R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador

Implementaccedilatildeo bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar

passa a ser 12 da CongWin imediatamente anterior agrave perda

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 52: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy52

Resumo Controle de Congestionamento do TCP

bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente

bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente

bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar

bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 53: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy53

Controle de congestionamento do transmissor TCP

CongWin e Threshold natildeo se alteram

Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido

qualquer ACK duplicado

Entra estado de ldquopartida lentardquo

Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo

qualquer Estouro de temporizador

Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS

Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo

qualquer Perda detectada por ACKs triplicados

Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT

CongWin = CongWin+MSS (MSSCongWin)

Evitar congestion amento

ACK recebido para dados ainda natildeo reconhecidos

Resulta na duplicaccedilatildeo da CongWin a cada RTT

CongWin = CongWin + MSS If (CongWin gt Limiar)

seta estado para ldquoEvitar congestionamentordquo

Partida lenta

ACK recebido para dados ainda natildeo reconhecidos

Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 54: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy54

Vazatildeo (throughput) do TCP

bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta

bull Seja W o tamanho da janela quando ocorre a perda

bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT

bull Vazatildeo meacutedia = 075 WRTT

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 55: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy55

Futuro do TCP

bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps

bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas

bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades

L RTT MSS sdot 22 1

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 56: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy56

Equidade (Fairness) do TCP

Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK

TCP conexatildeo 1

Roteador gargalo

capacidade R

TCP conexatildeo 2

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 57: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy57

Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente

R

R

compartilhamento igual da banda

Vazatildeo da conexatildeo 1

Vazatilde

o da

con

exatildeo

2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

evitar congestionamento aumento aditivo perda diminui janela por fator de 2

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 58: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy58

Justeza (mais) Justeza e UDP bull Apls multimiacutedia

frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa

regulada pelo controle de congestionamento

bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma

taxa constante tolera perda de pacotes

bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)

Justeza e conexotildees TCP em paralelo

bull nada impede que as apls abram conexotildees paralelas entre 2 hosts

bull Os browsers Web fazem isto bull Exemplo canal com taxa R

compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe

taxa R10 ndash nova apl pede 11 TCPs recebe

taxa R2

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 59: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy59

TCP modelagem de latecircncia

P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido

bull Estabelecimento de conexatildeo TCP

bull retardo de transferecircncia de dados

Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e

servidor de taxa R bull Supomos janela de

congestionamento fixo W segmentos

bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas

sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela

chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos

os dados na janela

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 60: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy60

Janela de congestionamento fixa (1)

Primeiro caso WSR gt RTT + SR ACK para

o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados

latecircncia = 2RTT + OR

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 61: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy61

Janela de congestionamento fixa (2)

Segundo caso bull WSR lt RTT + SR

espera por ACK apoacutes transmitir uma janela completa de dados

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

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 62: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy62

TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute

R S

R S RTT P

R O RTT Latecircncia P ) 1 2 ( 2 minus minus

+ + + =

onde P eacute o nuacutemero de vezes que o TCP para no servidor

1 min minus = K Q P

shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito

shy e K eacute o nuacutemero de janelas que cobrem o objeto

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 63: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy63

TCP modelagem de latecircncia partida lenta (cont)

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2

Servidor ocioso P=2 unidades de tempo

Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta

Servidor ocioso P = minK-1Q unidades de tempo

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 64: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy64

TCP modelagem de latecircncia partida lenta (cont)

R S

R S RTT P RTT

R O

R S RTT

R S RTT

R O

o Tempoparad RTT R O

P

P

k

k

P

p p

) 1 2 ( 2

2 2

2 latecircncia

1

1

1

minus minus

+ + + =

minus + + + =

+ + =

sum

sum

=

minus

=

janela eacutesima a apoacutes parado tempo

2 1

minus

=

minus +

+ minus

k R S RTT

R S k

entos reconhecim os receba servidor o que ateacute

segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S

janela eacutesima shy k a r transmiti para tempo 2 1 = minus

R S k

RTT

initiate TCP connection

request object

first window = SR

second window = 2SR

third window = 4SR

fourth window = 8SR

complete transmission object

delivered

time at client

time at server

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 65: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy65

Modelagem de Latecircncia do TCP (4)

+ =

+ ge =

ge minus =

ge + + + =

ge + + + = minus

minus

) 1 ( log

) 1 ( log min

1 2 min

2 2 2 min 2 2 2 min

2

2

1 1 0

1 1 0

S O

S O k k

S O k

S O k O S S S k K

k

k

k

L

L

Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)

Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 66: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy66

Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por

ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)

bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos

bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos

bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 67: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy67

0 2 4 6 8 10 12 14 16 18 20

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5

Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas

em segundos

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 68: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy68

0

10

20

30

40

50

60

70

28 Kbps

100 Kbps

1 Mbps

10 Mbps

nonshypersistent

persistent

parallel nonshy persistent

RTT =1 sec O = 5 Kbytes M=10 e X=5

Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lenta Conexotildees persistentes apresentam um melhor desempenho particularmente em redes com valor alto do produto atraso largura de banda

Tempo de resposta do HTTP

em segundos

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede

Page 69: MBA, ITIL V3, Perito computacional Forense · 3: Camada de Transporte 3b29 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) • espaço

3 Camada de Transporte 3bshy69

Capiacutetulo 3 Resumo

bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo

ndash transferecircncia confiaacutevel de dados

ndash controle de fluxo ndash controle de congestionamento

bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP

Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da

rede (camadas de aplicaccedilatildeo e transporte)

bull entramos no ldquonuacutecleordquoda rede