3b transporte 2010 - técnico lisboa - autenticação · o emissor fica restrito a enviar somente...
TRANSCRIPT
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