Professional Documents
Culture Documents
ponto a ponto:
1 remetente, 1 receptor
no estruturado em msgs tam. da janela ajustado por controle de fluxo e congestionamento do TCP
application reads data TCP receive buffer
segment
dutado:
fluxo de dados bidirecional na mesma conexo MSS: tamanho mximo de segmento handshaking (troca de msgs de controle) inicia estado de remetente, receptor antes de trocar dados receptor no ser afogado
3: Camada de Transporte 3b-1
nmero de reconhecimento
janela receptor ptr dados urg. checksum
contagem de dados por bytes (no segmentos!) no. bytes rcpt quer aceitar
orientado a conexo:
socket door
estabelecimento, liberao)
checksum Internet (como UDP)
fluxo controlado:
3: Camada de Transporte
3b-2
, A CK =79, d a
Seq=
Seq=4 3
, ACK =80
tempo
note: RTT pode variar muito curto: temporizao prematura retransmisses so desnecessrias muito longo: reao demorada perda de segmentos
entre a transmisso do segmento e o recebimento do ACK correspondente ignora retransmisses, segmentos com ACKs cumulativos RTTamostra vai variar, queremos amaciador de RTT estimado usa vrias medies recentes, no apenas o valor corrente (RTTamostra)
3b-3
3: Camada de Transporte
3b-4
Host A
Seq=9 2
Host B
, 8 by tes da
temporizao
dados
timeout
perda
Seq=9 2 , 8 by tes de dados
=100 A CK
ta
Seq=1 0
loss
AC K =120
Seq=9 2
, 8 by tes de
Temp.p/ Seq=92
dados
SendBase = 120
=100 AC K
AC
2 K=1
tempo
tempo
temporizao prematura,
3: Camada de Transporte 3b-5
time
ACKs cumulativos
3: Camada de Transporte 3b-6
Ao do receptor TCP
ACK retardado. Espera at 500ms p/ prx. segmento. Se no chegar segmento, envia ACK envia imediatamente um nico ACK cumulativo envia ACK duplicado, indicando no. de seq.do prximo byte esperado ACK imediato se segmento no incio da lacuna
3: Camada de Transporte 3b-7
com o tempo
valor tpico de x: 0.125
3: Camada de Transporte
3b-8
300
RTT (milliseconds)
250
-> margem de segurana maior Temporizao = RTT_estimado + 4*Desvio Desvio = (1-y)* Desvio + y*|RTT_amostra - RTT_estimado| (tipicamente, y = 0.25) Logo o intervalo de temporizao (timeout):
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) SampleRTT Estimated RTT
200
150
100
receptor: explicitamente avisa o remetente da quantidade de espao livre disponvel (muda dinamicamente) campo RcvWindow no segmento TCP remetente: mantm a quantidade de dados transmitidos, porm ainda no reconhecidos, menor que o valor mais recente de RcvWindow
explcita pela rede congestionamento inferido das perdas, retardo observados pelo sistema terminal abordagem usada por TCP
roteadores realimentam as
estaes bit nico indicando congestionamento (SNA, DECbit, TCP/IP ECN, ATM) taxa explcita p/ envio pelo remetente
duas fases
idealmente: transmitir o mais rpido possvel (Congwin o mximo possvel) sem perder pacotes. aumentar Congwin at sinais de congestionamento. Qdo TCP detecta congestionamento diminui Congwin, depois volta sondagem (aumento) novamente.
Evento de perda = timeout ou 3 acks repetidos O emissor TCP reduz a taxa (CongWin) aps um evento de perda.
variveis importantes:
Congwin threshold: define limiar entre fases de partida lenta, controle de congestionamento
AADM (Aumento Aditivo, Decremento Multiplicativo) Partida lenta (slow start) Comportamento conservador aps eventos de timeout
3: Camada de Transporte 3b-16
TCP AADM
Aumento aditivo:
Exemplo: MSS = 500 bytes & RTT = 200 msec Taxa inicial = 20 kbps
16 Kbytes
8 Kbytes
Refinamento
Estao A Estao B
um segmen to
dois segm
entos
tempo
Aps 3 ACKs repetidos: CongWin cortada pela metade Em seguida, a janela cresce linearmente. Porm aps evento de timeout: CongWin ajustada para 1 MSS; A janela ento cresce exponencialmente At um valor limite (threshold), depois cresce linearmente.
Filosofia:
3 ACKs repetidos indicam capacidade da rede em entregar segmentos timeout antes de 3 ACKs repetidos mais alarmante
Refinamento (mais)
P:
Refinamento (mais)
14 congestion window size 12 (segments) 10 8 6 4 2 0 1
Implementao:
Threshold varivel Na ocorrncia de evento de perda, Threshold ajustada para 1/2 de valor de CongWin imediatamente antes do evento de perda.
3: Camada de Transporte 3b-21
TCP Reno
Justeza do TCP
Meta de justeza: se N sesses TCP compartilham o mesmo enlace de gargalo, cada uma deve ganhar 1/N da capacidade do enlace
TCP conexo 1
Quando CongWin est abaixo do Threshold, o emissor se encontra na fase de slow-start, janela cresce exponenciamente. Quando CongWin est acima do Threshold, o emissor se encontra na fase de evitar congestionamento, janela cresce linearmente. Quando um triplo ACK repetido ocorre, Threshold ajustada para CongWin/2 and CongWin ajustada para Threshold. Quando ocorre timeout, Threshold ajustada para CongWin/2 and CongWin is set to 1 MSS.
3: Camada de Transporte 3b-23
TCP conexo 2
Notao, suposies:
Supomos um enlace entre cliente e
R
Vazo da conexo 2
perda: diminui janela por fator de 2 evitar congestionamento: aumento aditivo perda: diminui janela por fator de 2 evitar congestionamento: aumento aditivo
servidor de taxa R Supomos: janela de congestionamento fixo, W segmentos S: MSS (bits) O: tamanho do objeto (bits) sem retransmisses (sem perdas, sem erros)
Vazo da conexo 1
R
3: Camada de Transporte 3b-25
Latency = 2 RTT +
O S S + P RTT + ( 2 P 1) R R R
P = min{Q, K 1}
- onde Q o nmero de vezes que o servidor pararia se o objeto for de tamanho infinito.
request object
RTT
2 k 1
request object
RTT
latency =
object delivered time at client time at server complete transmission
P O + 2 RTT + stallTime p R p =1
complete transmission