43
Artur Arsenio Redes de Computadores 2010/2011 Departamento de Engenharia Informática 1 Redes de Computadores Redes de Computadores Camada Transporte

3b Transporte 2010 - Técnico Lisboa - Autenticação · O emissor fica restrito a enviar somente pacotes com números de sequência contidos dentro de um determinado intervalo

Embed Size (px)

Citation preview

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica1

Redes de ComputadoresRedes de Computadores

Camada Transporte

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica2 Camada de Transporte

Camada Transporte

Servios da camada de transporte

Multiplexagem e desmultiplexagem

Transporte no orientado ligao: UDP

Princpios da transferncia fivel de dados

Transporte com ligao: TCP

transferncia fivel de dados

controlo do fluxo

Gesto de ligaes

Principios do controlo do congestionamento

Controlo de congestionamento do TCP

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica3 Camada de Transporte

Resumo dos Mecanismos de Transferncia Fivel de Dados

O emissor fica restrito a enviar somente pacotes com nmeros de sequncia contidos dentro de um

determinado intervalo. Permitindo a transmisso de vrios pacotes, ainda que no reconhecidos, a

utilizao do emissor pode aumentar em relao ao modo de operao Para e Espera.

Janela, paralelismo

Usado pelo destinatrio para avisar o emissor de que um pacote no foi recebido correctamente.

Reconhecimentos negativos normalmente contm o nmero de sequncia do pacote que no foi

recebido correctamente.

Reconhecimento negativo

(NAK negative

acknowledgement)

Usado pelo destinatrio para avisar o emissor de que um pacote ou conjunto de pacotes foi

recebido correctamente. Reconhecimentos normalmente contm o nmero de sequncia do pacote,

ou pacotes, que esto a ser reconhecidos. Reconhecimentos podem ser individuais ou cumulativos,

dependendo do protocolo.

Reconhecimento

(Acknowledgement)

Usado para numerar em sequncia os pacotes de dados enviados do emissor ao destinatrio.

Gaps nos nmeros de sequncia de pacotes recebidos permitem que o destinatrio detecte um

pacote perdido. Pacotes com nmeros de sequncia duplicados permitem que o destinatrio

detecte cpias duplicadas de um pacote.

Nmero de sequncia

Usado para controlar a temporizao / retransmitir um pacote, possivelmente porque o pacote (ou o

seu ACK) foi perdido dentro do canal. Como pode ocorrer o timeout do temporizador quando um

pacote est atrasado, mas no perdido (timeout prematuro), ou quando um pacote foi recebido pelo

destinatrio mas o ACK emissor-destinatrio foi perdido, um destinatrio pode receber cpias

duplicadas de um pacote

Temporizador (timer)

Usado para detectar erros nos bits de um pacote transmitidoSoma de verificao

(checksum)

Utilizao, ComentriosMecanismo

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica4 Camada de Transporte

Transmisso full duplex Transmisso de dados bidirecional na

mesma ligao

os segmentos tm um tamanho mximo MSS (Maximum Segment Size)

Protocolo orientado ligao (3-way) handshaking (troca de mensagens

de controlo) para estabelecer ligao (com inicializao do emissor e do receptor) antes da transferncia de dados

Controlo do fluxo Transmisses do emissor em funo da

capacidade de memria do receptor

Ligao Ponto a ponto 1 emissor, 1 receptor

Fluxo de bytes, ordenado e fivel

no h delimitao de mensagens

Controlo por janela (Pipelined) dimenso da janela definida

pelo algoritmo de controlo da congesto e do fluxo do TCP

Buffers no emissor e receptor

socket

door

TCP

send buffer

TCP

receive buffer

socket

door

segment

application

writes dataapplication

reads data

TCP: Viso geral

RFCs: 793, 1122, 1323, 2018, 2581

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica5 Camada de Transporte

n porto origem n porto dest32 bits

dados daaplicao

(tam. varivel)

nmero de sequncianmero de reconhecimento

(ackowledgement number)

janela receptor

ptr dados urg.checksum

FSRPAUtam.cab.

semuso

Opes (tam. varivel)

URG: dados urgentes(pouco usados)

ACK: n ACK vlido

PSH (push data now): envia dados j (pouco usado)

RST, SYN, FIN:gesto da ligao

(comandos deestabelecimento,

libertao)

n bytes rcpt que o receptor aceita(rcvWindow)

contagemde dadospor bytes (no segmentos)

checksum Internet

(como UDP)

TCP: estrutura do segmento

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica6 Camada de Transporte

0 1 ... 1000 ... 1999 ... 499999

Dados para o primeiro segmento Dados para o segundo segmento Ficheiro

TCP: Nmeros de Sequncia e ACKs

Ns de sequncia Nmero do primeiro byte

de dados do segmento

ACKs N de sequncia do

prximo byte esperado no receptor

ACK cumulativo: um ACK confirma a recepo correcta dos bytes anteriores

Segmentos fora da ordem depende da

implementao

Estao A Estao B

Seq=42, ACK=79, data = C

Seq=79, A

CK=43, d

ata = C

Seq=43, ACK=80

Utilizador primeteclaC

A reconhecechegadado C

replicado

B reconhecechegada de C, enviaC de volta

tempocenrio simples de telnet

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica7 Camada de Transporte

Determinao da durao do

temporizador (timeout)

TCP: Tempo de Resposta (RTT RoundTrip Time) e Temporizao (Timeout)

maior que o RTT mas o RTT varia durante

uma ligao TCP

demasiado curto temporizao expira

prematuramente

retransmisses que so desnecessrias

demasiado longo reaco lenta perda de

segmentos

Estimativa do RTTSampleRTT: intervalo de tempo medido

desde a transmisso de um segmento at recepo do seu ACK

ignora retransmisses

valor medido varia muito de segmento para segmento

quer-se uma estimativa do RTT com variaes suaves

usar vrias medies recentes para extrair o valor mdio, no apenas o valor actual de SampleRTT

Estimativa do RTTSampleRTT: intervalo de tempo medido

desde a transmisso de um segmento at recepo do seu ACK

ignora retransmisses

valor medido varia muito de segmento para segmento

quer-se uma estimativa do RTT com variaes suaves

usar vrias medies recentes para extrair o valor mdio, no apenas o valor actual de SampleRTT

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica8 Camada de Transporte

EstimatedRTT = (1-) * EstimatedRTT + *SampleRTT mdia deslizante com pesos exponenciais

exponential weighted moving average

influncia de cada amostra diminui

exponencialmente com o tempo

valor tpico de = 0,125, = 0,25

TCP: Tempo de Resposta e Temporizao

Determinao do valor de temporizao EstimatedRTT + margem de segurana

grandes variaes no EstimatedRTT adicionar maior margem de segurana

primeiro estimar o quanto a SampleRTT desvia do EstimatedRTT

Timeout = EstimatedRTT + 4*Desvio_RTT

Desvio_RTT = (1-)* Desvio_RTT + * |RTT_amostra - EstimatedRTT|

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100

150

200

250

300

350

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

time (seconnds)

RT

T (

mil

lis

eco

nd

s)

SampleRTT Estimated RTT

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica9 Camada de Transporte

Transferncia Fivel de Dados no TCP

O TCP cria um servio rdt sobre o servio no fivel do IP

Segmentos em srie (pipelined)

Acks cumulativos

O TCP usa um nico temporizador para retransmisses

As retransmisses so disparadas por:

Final do temporizador (timeout)

acks duplicados

Emissor TCP simplificado transferncia unidireccional

sem controlo de fluxo

sem controlo de

congestionamento

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica10 Camada de Transporte

NextSeqNum = nmero de sequncia inicial

SendBase = nmero de sequncia inicial

repita (sempre) {

switch(event)

Evento: Dados recebidos da aplicao acima

Cria e envia segmento TCP com n de sequncia NextSeqNum/* NextSeqNum o nmero de sequncia do 1 byte do segmento*/

se (temporizador estiver desligado)

liga o temporizador

passa segmento para IP

NextSeqNum = NextSeqNum + comprimento(dados)

Evento: Temporizador expirado (timer timeout)

/* retransmisso do segmento que causou o timeout */

retransmite segmento ainda no reconhecido com o menor

nmero de sequncia

reinicia o temporizador

Evento: ACK recebido, com valor de campo ACK de y

/* se reconhecer segmentos ainda por reconhecer*/

se (y > SendBase) { /* ACK cumulativo de todos dados at y */

/*actualiza informao sobre o que foi reconhecido*/

SendBase = y

se (houver segmentos ainda no reconhecidos)

liga o temporizador

} seno desliga o temporizador

} /* fim do repita sempre */

SendBase-1: ltimo byte reconhecido de forma cumulativaExemplo: SendBase-1 = 71; y= 73, portanto o receptor quer receber 73+; y > SendBase, portanto novos dados foram reconhecidos.

Emissor

Nota

(simplificado)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica11 Camada de Transporte

Retransmisso rpida Se o emissor receber 3 ACKs para os mesmos dados,

supe que o segmento aps os dados confirmados se perdeu

retransmite o segmento antes que o temporizador expire

event: recebido ACK, com valor do campo ACK de y

if (y > SendBase) {

SendBase = y

if (houver segmentos ainda no reconhecidos)

liga temporizador

else desliga temporizador

}

else {

incrementa contador de ACKs duplicados recebidos para y

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

retransmite segmento com nmero de sequncia y

}

ACK duplicado para um segmento j confirmado

Retransmisso rpida

Algoritmo de retransmisso rpida

O intervalo do temporizador normalmente longo:

atraso longo antes de reenviar o pacote perdido

Detectar segmentos perdidos atravs de ACKs duplicados.

emissor normalmente envia diversos segmentos seguidos

Se um segmento se perder, provavelmente haver muitos ACKsduplicados.

Retransmisso rpida (Fast Retransmit)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica12 Camada de Transporte

Host A

Seq=100, 20 bytes data

ACK=

100

tempo

timeout prematuro

Host B

Seq=92, 8 bytes data

ACK=

120

Seq=92, 8 bytes data

Seq=9

2 timeo

ut

ACK=

120

Host ASeq=92, 8 bytes data

ACK=10

0

loss

timeo

ut

cenrio de ACK perdido

Host B

X

Seq=92, 8 bytes data

ACK=100

tempo

Seq=9

2 timeo

ut

TCP: Cenrios de Retransmisso

Host A

Seq=92, 8 bytes data

ACK=10

0

loss

timeo

ut

ACK cumulativo

Host B

X

Seq=100, 20 bytes data

ACK=120

tempo

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica13 Camada de Transporte

TCP Gerar ACKs Cumulativos no Receptor [RFCs 1122, 2581]

Evento no Receptor

chegada de segmento na ordem,

tudo o resto j confirmado

chegada de segmento na ordem,

uma confirmao ACK atrasada

chegada de segmento fora de

ordem, com n de sequncia

superior ao esperado gap

chegada de segmento que

completa parcial ou totalmente um

buraco (gap) existente

Aco do Receptor TCP

Espera at 500ms pela chegada do

prximo segmento. Se no chegar, envia

ACK

envia imediatamente um nico ACK

cumulativo

envia um ACK duplicado, indicando n de

sequncia do prximo byte esperado

Envia imediatamente ACK se o

segmento segue o ltimo bem recebido

na ordem (no incio do gap)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica14 Camada de Transporte

Controlo do Fluxo do TCP

Receptor: anuncia o espao livre incluindo o valor da RcvWindow (campo no segmento TCP)

Emissor: limita os dados transmitidos e ainda no confirmados ao tamanho da RcvWindow (LastByteSent-LastByteAcked RcvWindow)

Garante que o buffer do receptor no transbordar

O emissor no excede a capacidade do receptor

Controlo do fluxo

RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead]

(tamanho da memria de recepo)

(espao livre na memria de recepo)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica15 Camada de Transporte

TCP: Gesto de Ligaes

Inicializao da Ligao em 3 passos

Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor

especifica no. inicial de seq

no envia dados

Passo 2: o servidor recebe SYN, responde com segmento de controle SYNACK

aloca buffers

especifica no. inicial de sequncia servidor => receptor

Passo 3: cliente recebe SYNACK, responde com segmento ACK que pode conter dados.

cliente

SYN

servidor

SYN, AC

K

ACK

A

estabelecer

ligao

Ligao estabelecidaLigao

estabelecida

Cliente inicia ligao: Socket clientSocket = new

Socket("hostname","port number");

Servidor: Socket connectionSocket =

welcomeSocket.accept();

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica16 Camada de Transporte

Fecho de Ligao

Passo 1: o cliente envia um segmento de controle (TCP FIN) ao servidor

Passo 2: servidor recebe o FIN e responde com ACK. Envia separadamente um FIN para o cliente

Passo 3: o cliente recebe o FIN e responde com um ACK. Entra no estado de espera temporizada (timed wait) respondendo com ACK a FINs recebidos

Passo 4: o servidor recebe o ACK e fecha a ligao.

TCP: Gesto de Ligaes (cont.)

cliente fecha socket: clientSocket.close();

cliente

FIN

servidor

ACK

ACK

FIN

A fechar

ligao

A fecharligao

Ligao fechadaespe

ratemporizada

Ligaofechada

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica17 Camada de Transporte

Ciclo de vida do cliente TCP

Ciclo de vida do servidor TCP

TCP: Gesto de Ligaes (cont.)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica18 Camada de Transporte

Princpios da transferncia fivel de dados Reviso

Servios da camada de transporte

Multiplexagem e desmultiplexagem

Transporte no orientado ligao: UDP

Princpios da transferncia fivel de dados

Transporte orientado ligao: TCP

transferncia fivel de dados

controlo do fluxo

Gesto de ligaes

Principios do controlo do congestionamento

Controlo de congestionamento do TCP

Viso Geral

Estrutura do Segmento

Tempo de Resposta e

Temporizao

Transferncia fivel de

dados

Emissor TCP

simplificado

Cenrios de

retransmisso

Controle de Fluxo do

TCP

Gesto de Ligaes

Viso Geral

Estrutura do Segmento

Tempo de Resposta e

Temporizao

Transferncia fivel de

dados

Emissor TCP

simplificado

Cenrios de

retransmisso

Controle de Fluxo do

TCP

Gesto de Ligaes

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica19 Camada de Transporte

Princpios do Controlo de Congestionamento

Congestionamento Informalmente: demasiadas fontes enviando demasiados

dados, demasiado depressa, para uma rede com capacidade limitada

Refere-se ao que se passa no interior da rede

no confundir com o problema de controlo de fluxo

Manifestaes:

perda de pacotes (excesso de trfego em relao capacidade de memria nos ns da rede)

grandes atrasos (tempo de espera nas filas dos ns)

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica20 Camada de Transporte

Causas e Custos do congestionamento: Cenrio 1

Grandes atrasos para trfego intenso, ligao congestionada

Existe um valor mximo para o throughput

Router with unlimited

shared output link buffers

Host A in : original data

Host B

out Dois emissores e dois

receptores

Um n de encaminhamento com memria (buffers)infinitos

sem retransmisses

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica21 Camada de Transporte

R/2

R/2in

ou

t

R/2

R/2in

ou

t

R/2

R/2in

ou

t

R/4R/3

Custos do congestionamento

para um dado goodput h mais

trabalho nos ns (retransmisses)

h retransmisses desnecessrias:

uma ligao transporta vrias

cpias de um pacote

Cenrio 2finite shared output

link buffers

Host

Ain : original data

Host

B

out

'in : original data, plus retransmitted data

Um router, buffers finitos

Retransmisso pelo emissor de pacotes perdidos

Tem-se sempre: (goodput)

Retransmisso perfeita apenas com perdas:

Se h retransmisso de pacotes atrasados (no perdidos) ento maior

do que no caso anterior para o mesmo

in out= in

out

>in

out

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica22 Camada de Transporte

Cenrio 3

quatro emissores

caminhos origem/destino com mais de uma ligao

retransmisses/ timeouts

finite shared output

link buffers

Host

A in : original data

Host

B

out

'in : original data, plus retransmitted data

Custo de congestionamento adicional

quando um pacote descartado num n,

a capacidade gasta nos ns a montante

para a sua transmisso foi desperdiada!

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica23 Camada de Transporte

Controlo extremo a extremo (abordagem usada TCP)

no h informao explcita fornecida pela rede

o estado de congestionamento inferido pela observao no sistema terminal das perdas e do atraso

Controlo com interveno da rede

Os ns informam explicitamente os sistemas terminais do estado da rede

enviando apenas um bit (SNA, DECbit, TCP/IP ECN, ATM)

enviando a taxa a que o emissor deve trabalhar (ATM)

Dos tipos de abordagens

Abordagens ao controlo de congestionamento

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica24 Camada de Transporte

ABR (available bit rate)

servio elstico

se caminho do emissor subcarregado:

emissor deveria usar banda disponvel

se caminho do emissor congestionado:

emissor reduzido taxa mnima garantida

clulas RM (resource management)

enviadas pelo emissor, intercaladas com clulas de dados

bits na clula RM iniciados por comutadores (apoio da rede)

bit NI: no aumente a taxa (congestionamento moderado)

bit CI: indicao de congestionamento

clulas RM devolvidas ao emissor pelo receptor, sem alterao dos bits

Case-study: controlo do congestionamento em ABR da ATM

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica25 Camada de Transporte

Case-study: controlo do congestionamento em ABR da ATM

Campo ER (explicit rate) de 2 bytes na clula RM comutador congestionado pode diminuir valor ER na clula

taxa do emissor assim ajustada para o menor valor possvel entre os comutadores do caminho

bit EFCI em clulas de dados ligado por comutador congestionado se EFCI ligado na clula de dados antes da clula RM, receptor liga bit

CI na clula RM devolvida

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica26 Camada de Transporte

Controlo do Congestionamento do TCP

Emissor limita a transmisso:LastByteSent-LastByteAcked CongWin

Praticamente,

CongWin dinmica, em funo do congestionamento percebido da rede

evento de perda = temporizador expira ou 3 acks duplicados

emissor TCP reduz a taxa (CongWin) aps evento de perda

taxa =CongWinRTT

Bytes/segtrs mecanismos:

AIMD

Partida lenta (Slow start)

Congestion avoidance

trs mecanismos:

AIMD

Partida lenta (Slow start)

Congestion avoidance

Deteco do congesto pelo emissor

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica27 Camada de Transporte

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion

window

Ligao TCP de longa durao

Aumento aditivo

aumento do tamanho da janela de uma unidade (segmento 1MSS) por

cada RTT na ausncia de eventos de perda: Teste de banda disponvel

(probing for bandwidth)

idealmente: ritmo de transmisso to grande quanto possvel (Congwin to

grande quanto possvel) sem perdas

AIMD (Additive Increase, Multiplicative Decrease) do TCP

Reduo multiplicativa

diminuio do tamanho da janela de congestionamento (CongWin Congestion

Window) para metade (diminuio de um factor de 2) quando se perde um

segmento (assume-se deteco por ACKs consecutivos) reincio da fase de teste de banda, aumentando gradualmente o tamanho da janela

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica28 Camada de Transporte

AIMD e Justia (Fairness) no protocoloTCP Exemplo 2 sesses simultneas

Exemplo: duas sesses simultneas; capacidade disponvel R

o crescimento aditivo (additive increase - AI) traduz-se pelo aumento de ambos os throughput ao longo de uma recta de derivada 1

a diminuio multiplicativa (multiplicative decrease - MD) traduz-se na reduo proporcional do throughput de cada sesso

equal bandwidth share

Connection 1 throughput R

Co

nn

ectio

n 2

th

rou

gh

pu

t R

evitar congestionamento: aumento aditivoperda: diminui janela por factor de 2

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica29 Camada de Transporte

Justia (Fairness) no protocolo TCP

Justia (Fairness): objectivo

se N sesses TCP partilharem a mesma ligao congestionada R, cada uma deve poder usar R/N da capacidade total

TCP connection 1

Bottleneck router

capacity RTCP Connection 2

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica30 Camada de Transporte

Justia (Fairness) no protocolo TCP

Justia e o UDP

Aplicaes. multimedianormalmente no usam TCP

no desperdiam o ritmo de transmisso de acordo com o controlo de congestionamento

Preferem usar o UDP

Injecta udio/vdeo a uma taxa constante, tolera perda de pacotes

Justia e ligaes TCP em paralelo

nada impede que as aplicaes abram ligaes paralelas entre 2 sistemas terminais

browsers Web j o fazem

Exemplo: canal com largura de banda R partilhado por 9 ligaes;

nova aplicao pede 1 TCP, recebe taxa R/10

nova aplicao pede 9 TCPs, recebe taxa R/2 !

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica31 Camada de Transporte

Partida Lenta (Slow Start) do TCP

No incio da ligao, CongWin = 1 MSS Exemplo: MSS = 500 bytes & RTT = 200

mseg taxa inicial = 25 kbps

Largura de banda disponvel pode ser >> MSS/RTT

desejvel um crescimento rpido atuma taxa considervel

No incio da ligao, taxa baixa mas aumenta exponencialmente at o primeiro evento de perda

duplica CongWin a cada RTT atravs do incremento da CongWin para

cada ACK recebido

Estao A

um segmento

RTT

Estao B

tempo

dois segmentos

quqtro segmentos

initialize: Congwin = 1

for (each segment ACKed)

Congwin+=1

until (loss event OR

CongWin > threshold)

Algoritmo Slowstart

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica32 Camada de Transporte

Congestion Avoidance- TCP Tahoe

/* slowstart over: Congwin > threshold */

Until (loss event) {

every w segments ACKed: Congwin++

}

threshold = Congwin/2

Congwin = 1

perform slowstart

/* : verso TCP Reno no executa a fase slow

start depois de 3 ACKs do mesmo segmento */

Detecta as perdasatravs de timeouts

Em caso de perda:

Reduz threshold parametade do valor dajanela

CongWin reduzida a 1 MSS

janela cresce exponencialmente

at um limiar, depois cresce linearmente

Congestion avoidance

Part

ida le

nta

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica33 Camada de Transporte

3 ACKs duplicados (Fast Retransmit)

Perda por timeout: Funciona como TCP Tahoe

Em caso de perda por ACKsduplicados

Reduz threshold para metadedo valor da janela

Reduz a dimenso da janelapara metade

a janela depois cresce linearmente

Congestion Avoidance- TCP Reno

ACKs duplicados indica que a rede capaz de entregar alguns segmentos timeout do temporizador antes de n ACKs duplicados mais alarmante.

Filosofia

Fast retransmission/fast recovery

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica34 Camada de Transporte

Controlo do Congestionamento do TCP

Quando a CongWin est abaixo do limiar (threshold), emissor est na fase de incio lento, janela cresce exponencialmente.

Quando a CongWin est acima do limiar, emissor estna fase de evitar congestionamento, janela cresce linearmente.

Quando chegam 3 ACKs, Limiar passa a ser CongWin/2e CongWin passa ao valor do Limiar.

Quando temporizador chega a timeout, Limiar passa a ser CongWin/2 e CongWin passa a ser 1 MSS.

Resumo

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica35 Camada de Transporte

Controlo do Congestionamento do TCP

Vantagens

Desempenho razovel sobre uma grande variedade de tecnologias

Desvantagens

Nem todas as perdas so motivadas por sobrecarga na rede Ex: em redes wireless o meio muito sujeito a perdas

Soluo possvel: nvel lgico informar o TCP de perdas que no somotivadas por congestionamento

O TCP assume que existem perdas porque a fonte tem uma Janela de Transmisso muito grande e no prev a existncia de fontes mal comportadas

Comportamento oscilatrio das taxas das fontes

Algoritmo muito sensvel aos valores de threshold e s dimenses dos buffers nos pontos de estrangulamento

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica36 Camada de Transporte

Taxa (throughput) do TCP

Taxa mdia do TCP em funo da janela e do RTT (Ignorando a partida lenta)

Seja W o tamanho da janela quando ocorre a perda taxa W/RTT

Imediatamente aps a perda, janela deminui para W/2, taxa reduzida para W/2RTT

Taxa mdia = 0,75 W/RTT

Exemplo: segmentos de 1500 bytes, RTT de 100ms Objectivo: taxa de 10 Gbps

Requer janela de W = 83.333 segmentos em trnsito

Taxa em termos de taxa de perdas:

L = 210-10 Taxa de perdas demasiado baixa!!! So necessrias novas verses do TCP para altas velocidades!

LRTT

MSS22,1

Futuro do TCP

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica37 Camada de Transporte

Modelao da Latncia no TCP

Tempo para receber um ficheiro de um servidor a partir do instante de inicio do pedido?

Estabelecimento da ligao TCP

Tempo de transferncia dos dados

existe apenas uma ligao entre cliente e servidor de capacidade R

janela de congestionamento de tamanho W segmentos

S: MSS (bits)

O: tamanho dos dados (bits)

sem retransmisses (no hperdas nem erros)

Dois casos a considerar: WS/R > RTT + S/R: ACK do primeiro segmento na janela chega antes de

enviar todos dados na janela

WS/R < RTT + S/R: aguarda ACK depois de enviar todos os dados na janela

Hipteses e Notao

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica38 Camada de Transporte

WS/R > RTT + S/R

ACK do primeiro segmento da janela chega ao emissor antes do fim da transmisso de todos os segmentos na janela

latncia = 2RTT + O/R

TCP: Modelao da latncia (W fixo) Cenrio 1

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica39 Camada de Transporte

WS/R < RTT + S/R

necessrio esperar pelo ACK depois de enviar todos os segmentos na janela para retomar a transmisso.

K= O/WS

nmero de janelas necessrias transmisso do objecto

latncia = 2RTT + O/R + (K-1)[S/R + RTT - WS/R]

TCP: Modelao da latncia (W fixo) Cenrio 2

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica40 Camada de Transporte

A latncia de um objecto (ficheiro de dados) de tamanho O :

R

S

R

SRTTP

R

ORTTLatncia P )12(2

+++=

}1,{min = KQP

- onde Q o nmero de vezes que o TCP seria obrigado a parar

se os dados tivessem tamanho infinito (WS/R RTT + S/R) , e

- K o nmero de janelas que contm todos os dados do ficheiro

(2k-1O/S)

Modelao da latncia TCP - fase Slow start

P o nmero de vezes que o TCP obrigado a parar no servidor:

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica41 Camada de Transporte

RTT

initiate TCP

connection

request

objectfirst window

= S/R

second window

= 2S/R

third window

= 4S/R

fourth window

= 8S/R

complete

transmissionobject

delivered

time at

client

time at

server

Modelao da latncia do TCP: faseSlow start Exemplo

O/S = 15 segmentos

K = 4 janelas, Q = 2

P = min{K-1,Q} = 2

Servidor parado P=2 unidades de

tempo

Exemplo

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica42 Camada de Transporte

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

OTempoRTT

R

O

P

P

k

kP

p

p

)12(2

22parado 2latncia

1

1

1

+++=

+++=++=

=

=

janela sima a aps parado tempo2 1 =

+

+ kR

SRTT

R

S k

entosreconhecim

os recebaservidor o que at segmentosenviar a

comeaservidor o que desde tempo=+ RTTR

S

janela sima-k ar transmitipara tempo2 1 =R

Sk

RTT

initiate TCP

connection

request

objectfirst window

= S/R

second window

= 2S/R

third window

= 4S/R

fourth window

= 8S/R

complete

transmissionobject

delivered

time at

client

time at

server

Modelao da latncia: fase Slow start- Calculo da Latncia do TCP

Artur Arsenio

Redes de Computadores 2010/2011

Departamento de Engenharia Informtica43 Camada de Transporte

Controlo do congestionamento Reviso e Resumo

Servios da camada de transporte

Multiplexagem e desmultiplexagem

Transporte no orientado ligao: UDP

Princpios da transferncia fivel de dados

Transporte orientado ligao: TCP

transferncia fivel de dados

controlo do fluxo

Gesto de ligaes

Principios do controlo do congestionamento

Controlo de congestionamento do TCP

Principios do Controlo de

Congestionamento

Causas e Custos do

congestionamento

Cenrios

Abordagens ao controlo de

congestionamento

Controlo de

congestionamento do TCP

AIMD

Partida lenta (Slow start)

Congestion avoidance

TCP Tahoe

TCP Reno

Modelao da latncia TCP

fase Slow start

Principios do Controlo de

Congestionamento

Causas e Custos do

congestionamento

Cenrios

Abordagens ao controlo de

congestionamento

Controlo de

congestionamento do TCP

AIMD

Partida lenta (Slow start)

Congestion avoidance

TCP Tahoe

TCP Reno

Modelao da latncia TCP

fase Slow start