Vous êtes sur la page 1sur 8

Estratgia de transmisso TCP - 2

Tecnologias de Redes de
Computadores

Gustavo Sousa Pavani

Universidade Federal do ABC (UFABC)


2 Quadrimestre - 2016
Aula 16

Gustavo S. Pavani

Estratgia de transmisso TCP - 3


z

Os transmissores no so obrigados a transmitir os dados


to logo eles cheguem da aplicao.

Eles podem ser colocados no buffer at que mais dados cheguem.


z

Aumenta o desempenho, principalmente quando a banda escassa.


Exemplo: aplicao telnet. Cada caractere envia um pacote de 41
bytes e recebe uma confirmao de 40 bytes.

O gerenciamento da janela no TCP no diretamente


ligado as confirmaes como na maioria dos protocolos de
camada de enlace.

Exemplo: receptor com buffer de 4.096 bytes.


z

Atrasar as confirmaes e atualizaes do tamanho de janela por


um intervalo (por exemplo, 500 ms) na esperana de adquirir mais
dados.
z

Estratgia de transmisso TCP - 1

Ainda h desperdcio, pois se envia pacotes de mais de 40 bytes, com


um byte de dados.

Algoritmo de Nagle (1984).

Quando os dados entram no transmissor, um byte de cada vez,


simplesmente envie o primeiro byte e coloque no buffer os demais
bytes, at que a confirmao do byte venha.
Gustavo S. Pavani

Se o emissor transmite um segmento de 2.048 bytes que


corretamente recebido, o receptor ir confirmar o segmento. Como
somente restam mais 2.048 bytes no buffer, ele ir anunciar uma
janela de 2.048 bytes comeando no prximo byte esperado.
Se o emissor transmite outros 2.048 bytes, que so confirmados, mas
a janela anunciada ser igual a 0.
O emissor deve esperar at que a aplicao no host receptor remova
algum dado do buffer, para que o TCP possa anunciar uma janela
maior.
Quando a janela tem tamanho 0, o emissor no pode enviar
segmentos, a no ser que sejam dados urgentes ou um segmento de
1 byte para que o receptor anuncie novamente o prximo byte
esperado e o tamanho da janela (evita deadlock).
Gustavo S. Pavani

Estratgia de transmisso TCP - 6

A soluo de Clark evitar que o receptor envie uma atualizao


do tamanho da janela de 1 byte.
z
z

Estratgia de transmisso TCP - 4

Ele deve ser forado a esperar at que uma quantidade de espao


razovel esteja disponvel para ser anunciada.
Mais especificamente, o receptor no deve enviar uma atualizao do
tamanho da janela at que possa receber o tamanho mximo de
segmento anunciado quando a conexo foi estabelecida ou quando o
buffer estiver meio vazio, o que for menor.
Alm disso, o transmissor pode ajudar, evitando enviar segmentos
pequenos. Por isso, deve acumular espao na janela suficiente para
enviar um segmento cheio ou, pelo menos, um com a metade do
tamanho do buffer do receptor.

Nagle tentou resolver o problema da aplicao no emissor que


entrega dados ao TCP de byte em byte.
Clark tentou resolver o problema da aplicao no receptor que
remove dados do TCP de byte em byte.
Ambas as solues so vlidas e podem trabalhar em conjunto.
Gustavo S. Pavani

Se o buffer do receptor fica cheio, causa anncios de janela igual a 1


byte, forando o envio de somente um byte pelo transmissor.
Gustavo S. Pavani

Estratgia de transmisso TCP - 5

TCP manipula dinamicamente o tamanho da janela para


controlar o congestionamento.

Antigamente, a deteco do congestionamento era difcil, pois


haviam duas situaes possveis:
z
z

Timeout causado por um pacote perdido devido ao rudo na linha de


transmisso.
Timeout causado por um pacote descartado em um roteador
congestionado.

Hoje em dia, uma perda de pacote devido a um erro de


transmisso muito raro, principalmente devido ao uso de fibra.
z
z

Esse problema ocorre quando os dados so passados para


entidade TCP de envio em blocos grandes, mas uma aplicao
interativa no lado do receptor l os dados em um byte de cada vez.
z

Controle de congestionamento TCP - 1

Se usado no X, pode causar o envio de movimentos do mouse em


rajadas, fazendo o cursor se mover erraticamente pela tela.

Sndrome da janela boba (Silly Window Syndrome), Clark


(1982).

Se o usurio estiver digitando rapidamente e a rede lenta, um


nmero substancial de caracteres deve ir em cada segmento,
reduzindo a banda usada.

O algoritmo de Nagle amplamente usado nas implementaes


TCP, mas h casos em que melhor desabilit-lo.
z

Os algoritmos de Nagle e Clark so complementares.

Ento, envie todos os caracteres do buffer e comece novamente a


guardar os prximos no buffer, at que todos sejam confirmados.

A maioria dos timeouts na rede so devidos ao congestionamentos.


Assim, os timeouts so monitorados pelos algoritmos de TCP como
indicativos de congestionamento na rede.

Quando uma conexo estabelecida, um tamanho de


janela apropriado deve ser escolhido.

O receptor pode especificar a janela baseado no seu tamanho de


buffer. Se o emissor respeita esse tamanho de janela, problemas
ainda podem ocorrer devido ao congestionamento na rede.
Gustavo S. Pavani

Gustavo S. Pavani

Controle de congestionamento TCP - 4

A janela de congestionamento cresce exponencialmente at que


ocorra um timeout ou o tamanho da janela do receptor
alcanado.
Esse algoritmo conhecido como slow start (Jacobson, 1988).
z

Controle de congestionamento TCP - 2

Todas as implementaes de TCP devem suport-lo.

Terceiro parmetro: limiar (threshold).

Inicialmente em 64 KB.
Quando ocorre um timeout, o limiar estabelecido como metade
da janela de congestionamento corrente, sendo que a janela de
congestionamento recebe o valor do tamanho mximo do
segmento.
z
z

No ponto do limiar, as transmisses com sucesso fazem com que a


janela de congestionamento cresa de forma linear.
Supe que cortar a janela de congestionamento pela metade e depois
aument-la gradualmente deve ser uma boa alternativa.
Gustavo S. Pavani

Gustavo S. Pavani

11

Controle de congestionamento TCP - 5

Controle de congestionamento TCP - 3

Dois problemas existem: capacidade do receptor e capacidade da


rede.
z

Uma janela que foi permitida pelo receptor.


Uma janela de congestionamento.

Assim, o nmero de bytes enviados deve ser o mnimo dessas


duas janelas.

Quando uma conexo estabelecida, o emissor inicializa


a janela de congestionamento com o tamanho do mximo
segmento em uso na rede.

Toda vez que um segmento de tamanho mximo enviado


confirmado, o tamanho da janela de congestionamento acrescida
do tamanho do segmento de tamanho mximo.
z

12

Devem ser tratados de forma separada.

Cada transmissor deve manter duas janelas:


z

Gustavo S. Pavani

Cada rajada de confirmaes dobra a janela de congestionamento.


Gustavo S. Pavani

10

Gerenciamento de timer TCP - 3


z

Algoritmo de Karn.

No se sabe se a confirmao est relacionada a primeira


transmisso ou a uma retransmisso.
Soluo: no atualizar o RTT em qualquer segmento que foi
retransmitido. Ao invs disso, o timeout dobrado a cada falha at
que os segmentos comecem a ser recebidos corretamente.

(a) Enlace de dados


(b) Transporte

Quando o timer de persistncia expira, o emissor transmite um pacote


para o receptor. A resposta a esse pacote d o tamanho da janela.

Se a conexo est inativa por muito tempo, uma das partes checa
se a outra est do outro lado. Se no h resposta, a conexo
encerrada.

Estado TIMED WAIT.

Gustavo S. Pavani

Gustavo S. Pavani

15

TCP transacional - 1

TCP pouco eficiente nesse caso.


Mas se essas condies no forem satisfeitas?

Primeiro pacote do cliente contm o bit SYN, a solicitao e o bit FIN.


Se a resposta cabe em um pacote, ele transmite a resposta,
confirmando o FIN. Se no couber, ele responde com vrios pacotes
antes de fechar a conexo.

z
z

16

Para cada conexo, o TCP mantm a varivel RTT, que a melhor


estimativa atual do tempo de ida e volta para o destino em questo.
Seja M o tempo entre o envio do segmento e a chegada da
confirmao, medido pelo timer de retransmisso.
RTT = DRTT + (1 - D)M , onde D um fator de reduo. Tipicamente,
D = 7/8.

Mesmo com um bom valor de RTT, a escolha do intervalo de


retransmisso no uma tarefa fcil.
z

Inclui preservao dos limites de mensagens, vrios modelos de


entrega, multihoming e confirmaes seletivas.
Gustavo S. Pavani

Algoritmo de Jacobson (1988).


z

Outra proposta: SCTP (Stream Control Transmission


Protocol).

Soluo: usar um algoritmo que ajusta dinamicamente o


intervalo do timeout, baseado em medidas constantes do
desempenho da rede.

Definido nas RFCs 1379 e 1644.


A ideia modificar a sequncia normal de configurao da conexo
para permitir a transferncia de dados durante a configurao.
z

Variante do TCP: TCP transacional ou T/TCP.

13

Gerenciamento de timer TCP - 2

UDP usado em aplicaes cliente-servidor quando as


mensagens so pequenas e a operao idempotente.

Se a confirmao do segmento chega antes que esse timer expire,


o timer parado. Entretanto, se o timer expira antes que a
confirmao chegue, o segmento retransmitido.
Mas qual deve ser o valor desse timer?

Timer keeapalive.

Toda vez que um segmento enviado, um timer de


retransmisso disparado.

Preveno do deadlock que pode acontecer se o receptor envia


uma confirmao com o tamanho da janela igual a 0, dizendo ao
transmissor para esperar. Depois, o receptor atualiza a janela, mas
o pacote com a atualizao perdido.
z

Timer de persistncia.

Gerenciamento de timer TCP - 1

Clculo do desvio mdio D = DD + (1 - D) |RTT - M|


Timeout = RTT + 4D
Menos de 1% dos pacotes gastam mais que 4 vezes o desvio padro.
Gustavo S. Pavani

14

Questes de desempenho - 2

TCP transacional - 2

(a)

(a) T = 0; (b) Aps 500 Ps; (c) Aps 20 ms; (d) Aps 40 ms.
Gustavo S. Pavani

(b)

Gustavo S. Pavani

19

Questes de desempenho - 3

Roteador recebe um trfego maior do que pode manipular.


z

Capacidade do canal desde o transmissor at o receptor (ida e


volta).
No exemplo anterior, o produto largura de banda pelo retardo
igual a 40 milhes de bits.
z

Problemas de desempenho em redes.

Importante em sinais de udio e de vdeo.

Anlise do produto largura de banda pelo retardo.

Dimensionamento dos buffers.


Ajuste dos timeouts.

Protocolos antigos sobre linhas de alta capacidade.


z
z

20

TPDU inadequada que gera erros.


Falha no fornecimento da rede eltrica.

Falta de ajuste do sistema.


z

A janela do receptor deve ser to grande quanto o produto largura


de banda pelo retardo.

Congestionamento.

Sobrecarga sincronizada.
z

Ou seja, so necessrios todos esses bits para encher o canal.

Gustavo S. Pavani

17

Questes de desempenho - 1

Obter uma tempo de transmisso curto juntamente com um desvio


padro pequeno.
z

RPC usando o TCP convencional.


RPC usando o T/TCP.

A janela do receptor demora a receber uma atualizao, reduzindo


enormemente a eficincia da transmisso.
Ex: Rajada de dados de 64 KB de San Diego a Boston para preencher o
buffer de 64 KB do receptor. A 1 Gbps, em 500 Ps todos os dados esto
na fibra, mas somente aps 40 ms a confirmao chega ao transmissor
de forma que a segunda rajada pode ser transmitida. Eficincia igual a
0,5 ms / 40 ms = 1,25%.Gustavo S. Pavani

18

Questes de desempenho - 6
z

Questes de desempenho - 4

Projeto de sistemas para obter melhor desempenho.

A velocidade da CPU mais importante que a velocidade da rede.


z
z

O gargalo est normalmente nos hosts.


O sistema operacional e o overhead do protocolo dominam o tempo
real no cabo.

Vrias variveis alteram a medida: rede, sistema operacional, placas


de interface, drivers, etc...

Cuidado para no extrapolar os resultados.


z

Exemplo: enfileiramento que depende de 1/(1 - U).


Gustavo S. Pavani

23

Questes de desempenho - 7

21

Questes de desempenho - 5

Minimizao do nmero de cpias.


z

Armazenamento em buffer pode causar um efeito semelhante.

Compreender o que se est medindo.


z

Mudanas de contexto (modo ncleo para o modo usurio) tem muito


overhead, que acabam por desperdiar o tempo de CPU, reduzindo o
desempenho da rede.

Usar dias e horrios distintos.

Cuidado ao se usar o relgio do computador.


Certificar-se de que nenhum evento inesperado est ocorrendo
durante os testes.
Uso de cache pode arruinar as medies.
z

Reduo da incerteza na medida do mdia e do desvio padro.

Certificar-se de que as amostras so representativas.


z

Overhead para o processamento da TPDU e overhead para


processamento por byte. TPDUs pequenas vo gerar mais overhead
para transportar um mesmo volume de dados.
H tambm o overhead das camadas mais baixas. Cada pacote que
chega gera uma interrupo.

Gustavo S. Pavani

Certificar-se de que o tamanho da amostra grande o suficiente.


z

Minimizao das mudanas de contexto.


z

Medio do desempenho da rede.

Reduo do nmero de pacotes para reduzir o overhead do


software.
z

O pacote copiado para um buffer de hardware depois de recebido


pela interface de rede. Depois copiado para um buffer do ncleo e
da para o buffer da camada de rede, depois para o buffer da camada
de transporte e finalmente para o processo de aplicao receptor.

possvel ter mais largura de banda, mas no um retardo mais


baixo.
z

Limitado pelo tempo de transmisso, mesmo com melhorias no


software do protocolo, no sistema operacional ou na interface de rede.
Gustavo S. Pavani

z
24

Parece linear at U = 0,4!


Gustavo S. Pavani

22

Questes de desempenho - 10
z

Questes de desempenho - 8

O cabealho e dados so passados a um procedimento especial do


IP, que copia seu prottipo de cabealho para o buffer, preenche o
campo Identification e calcula o seu total de verificao.

A preveno do congestionamento melhor do que lutar quando


ele j est estabelecido.
Minimizao do uso de timeouts.
z

Processamento rpido de TPDUs.

Maior obstculo para aumentar a velocidade das redes o


software de protocolo.
Separar a situao normal e dar a ela um tratamento especial.
z

No lado do receptor, a primeira etapa localizar o registro de


conexo para a TPDU recebida.
z
z

Otimizao: manter um ponteiro para a ltima conexo usada.


No caso normal, o estado ESTABLISHED, nenhum dos lados est
tentando encerrar a conexo, a TPDU est completa e no tem flags
especiais definidos e o nmero de sequncia o esperado.
Gustavo S. Pavani

25

Questes de desempenho - 9

O caminho rpido atualiza o registro da conexo e copias os dados


para o usurio. Enquanto copia, ele calcula o total de verificao,
eliminando uma passagem extra pelos dados. Se o resultado do total
de verificao estiver correto, o registro de conexo ser atualizado e
uma confirmao ser enviada de volta. Esse esquema
normalmente chamado de prognstico de cabealho.

Gerenciamento de buffers.
z

Exemplo de caso normal: o estado ESTABLISHED, nenhum dos


lados est tentando fechar a conexo, uma TPDU regular completa
est sendo transmitida e h espao suficiente de janela no receptor.
Cabealhos de TPDUs de dados consecutivas so quase idnticos.
Uso de um prottipo de cabealho, onde os dados diferentes so
sobregravados no buffer. Em seguida, um ponteiro para o cabealho
da TPDU e um ponteiro para os dados do usurio so passados
camada de rede.
Gustavo S. Pavani

27

Questes de desempenho - 11

Timers devem ser programados de forma conservadora.

Evitar cpias desnecessrias.

Gerenciamento de timers.
z

Uso de lista encadeada contendo os eventos de timers ordenados por


hora de expirao. A entrada do cabealho contm um contador que
informa quantos pulsos faltam para a expirao. Cada entrada
sucessiva contm um contador que informa quantos pulsos a separa
da anterior.
A cada pulso de relgio o contador da entrada do cabealho
decrementado. Quando ele chega a zero, seu evento processado e
o prximo item se torna o cabealho. Custo de insero e remoo
proporcional ao tamanho da lista.
Esquema melhor: roda de sincronizao, onde cada slot
corresponde a um pulso do relgio.
Gustavo S. Pavani

No caso do TCP/IP, uso do prottipo de cabealho no buffer de


sada, com a atualizao do nmero de sequncia e clculo do
total de verificao.
z

28

O nmero de sequncia incrementado em memria.


Gustavo S. Pavani

26

Protocolos para redes gigabits - 2

Questes de desempenho - 12

Tempo de transferncia e confirmao de um arquivo de 1


megabit por uma linha de 4.000 km.
Gustavo S. Pavani

Gustavo S. Pavani

31

Protocolos para redes gigabits - 3


z

Protocolos para redes gigabits - 1

Maneiras de se aumentar a velocidade.

Protocolos mais simples, como o IPv6.

Evita tambm o problema da flutuao.


Cabealho com o mnimo de campos, sendo que esses campos sejam
grandes o suficiente e tenham alinhamento de palavras.
O cabealho e os dados devem ter totais de verificao distintos.

Tamanho mximo dos pacotes deve ser grande, destinando uma


menor frao da largura de banda aos cabealhos.
Minimizar o tempo de processamento quando tudo estiver correto.
Minimizar o tempo de cpia, com cdigo especialmente
desenvolvido e com uso de bloco contguo de dados.
Gustavo S. Pavani

A 56 kbps, um nmero de sequncia de 232 tem se um tempo de


repetio de cerca de uma semana. Com a Ethernet de 10 Mbps,
esse tempo passou a ser de 57 minutos.
z

Usar protocolo baseado na taxa ao invs de um protocolo de janela


deslizante.

Layout de pacotes.
z

Usar reserva de recursos no momento de estabelecer a conexo.


z

Nmero de sequncia de 32 bits.

Devido ao retardo, evitar o uso de feedback.


z

Criar interfaces de rede rpidas em hardware.


z

29

Atualmente, h menos tempo disponvel para o processamento de


protocolos do que havia antes, de forma que os protocolos devem
se tornar mais simples.
Protocolo go back n tem um desempenho ruim em linhas com um
grande produto largura de banda pelo retardo.
As linhas gigabits so limitadas pelo retardo e no pela largura de
banda.
z

32

Mas em uma rede Gigabit Ethernet so necessrios 34 segundos para


circular todos os nmeros de sequncia, um valor menor que a
durao mxima de um pacote na Internet (120 segundos).

Limite superior ao desempenho em longa distncia.

Em vrias aplicaes, como as de multimdia, a varincia to


importante quanto o retardo mdio.
Gustavo S. Pavani

30

Vous aimerez peut-être aussi