A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Transmission Control Protocol TCP

Apresentações semelhantes


Apresentação em tema: "Transmission Control Protocol TCP"— Transcrição da apresentação:

1 Transmission Control Protocol TCP
Controle de fluxo

2 Janela deslizante O protocolo básico usado pelo TCP é chamado Janela Deslizante. Quando envia um segmento, o TCP dispara um temporizador. O tempo em que ele aguardará por uma confirmação. Com que frequência os pacotes são retransmitidos. Quando o segmento chega, o receptor retorna um segmento com número de confirmação igual ao valor do próximo byte que ele espera receber. Esse segmento pode conter dados ou não de acordo com a circunstância. Desvincula a confirmação da alocação de buffers pelo receptor.

3 Impasses Suponha que o receptor tenha uma janela de bytes. Se o transmissor enviar um segmento de 2048 bytes e este for recebido de forma correta, o receptor confirmará o segmento e anunciará uma janela de 2048 bytes.

4 Impasses (2) Agora o transmissor envia outros 2048 bytes que são confirmados e a janela passa a ter tamanho zero. O transmissor deve esperar até que o processo da aplicação receptora retire alguns bytes do buffer e anuncie o novo tamanho para que o transmissor possa enviar mais bytes.

5

6 Exceções Janela de tamanho zero. Duas exceções: Dados urgentes.
Exemplo: Encerramento da conexão. Windows Probe. Transmissor envia um segmento de um byte para forçar o receptor a anunciar novamente o tamanho da janela.

7 Confirmações adiadas Retardar as confirmações (e atualizações de janelas) em 500 ms esperando algum dado que lhe dê carona.

8 Algoritmo de Nagle Como sabemos, o comando telnet envia um único byte de dados por pacote transmitido. Mais um cabeçalho TCP de 20 bytes. Mais um cabeçalho IP de 20 bytes. 41 bytes de dados. Normalmente isto não representa um problema em redes pequenas, porém, em redes grandes há uma tendência de congestionamento. Pacotes pequenos podem representar um problema. Uma solução simples e elegante foi proposta em Nagle [1984]. 08/04/2017 André Luiz Silva

9 Conceito do Nagle Este algoritmo afirma que somente um único pequeno segmento pode ser enviado até o recebimento do ACK correspondente. Um segmento TCP pequeno é aquele que não preenche o espaço inteiro do payload (campo de dados). Nenhum próximo pequeno segmento pode ser enviado até a chegada do ACK do primeiro segmento enviado. Pequenas porções de dados são coletadas pelo TCP e enviadas em um único segmento simples, quando o ACK do primeiro segmento é recebido. 08/04/2017 André Luiz Silva

10 Desabilitando o Nagle Em certos casos, torna-se necessário desabilitar o algoritmo Nagle. X windows. Pequenos movimentos do mouse. Teclas de funções. Vários comandos são enviados. Os soquetes API usam a opção  TCP_NODELAY para desabilitar o algoritmo. Mogul e Minshall (2001). 08/04/2017 André Luiz Silva

11 Síndrome do Janelamento inútil
Clark, 1982. Dados são passados para o transmissor em grandes blocos, mas o receptor lê os dados somente um byte por vez. Aplicação interativa. Inicialmente o buffer do receptor está cheio. Janela zero e o transmissor sabe disso.

12 Síndrome do Janelamento inútil (2)

13 Síndrome do Janelamento inútil (3)
Em seguida a aplicação lê um caractere. Receptor envia uma confirmação com janela de um byte. Transmissor envia um byte e o buffer enche outra vez. Receptor confirma e anuncia janela = 0. Situação se repete indefinidamente.

14 Solução A solução é evitar que o receptor envie uma atualização de janela de um byte. O receptor passa a esperar: Um tamanho de janela de um segmento (conforme foi acordado no início) para confirmar o segmento recebido ou, Que o seu buffer tenha metade de sua capacidade livre. O que for menor.

15 Conclusões O algoritmo de Nagle e a solução de Clark são complementares. Nagle tenta resolver o problema da aplicação enviar apenas um byte por vez. Clark tenta resolver o problema da aplicação retirar apenas um byte por vez.

16 Segmentos fora de ordem
Receptor armazena os segmentos até que possam ser passados para a aplicação em ordem. Se o receptor receber os segmentos 1, 2, 4, 5, 6 e 7, ele confirma até o último byte do segmento 2. Quando o transmissor sofrer um timeout, ele retransmite o segmento 3. O receptor ao recebe-lo poderá confirmar até o segmento 7.

17 Tráfego de dados Taxa média de dados
Quantidade de bits enviados dividida pelo intervalo de tempo decorrido durante a transmissão x 100. 08/04/2017 Profº André Luiz Silva

18 Congestionamento O congestionamento pode ocorrer se a carga (quantidade de pacotes enviados para a rede) superar a capacidade da rede (quantidade de pacotes que uma rede consegue controlar). O congestionamento ocorre em sistemas que envolvem algum tipo de espera. 08/04/2017 Profº André Luiz Silva

19 Soluções A solução é diminuir a taxa de transmissão dos dados.
A idéia é não incluir um novo pacote na rede até que o anterior a tenha deixado. O TCP tenta alcançar esse objetivo manipulando dinamicamente o tamanho da janela. 08/04/2017 Profº André Luiz Silva

20 Detectando o congestionamento
O primeiro passo é detectar o congestionamento Pacotes perdidos devido a ruídos na rede. Esgotamento de buffers nos roteadores. Atualmente todos os algoritmos TCP que atuam na Internet presumem que os timeouts são provocados por congestionamentos. 08/04/2017 Profº André Luiz Silva

21 Atrasos em uma rede De empacotamento De processamento De propagação
08/04/2017 Profº André Luiz Silva

22 Mecanismos de controle de congestionamento
Fim-a-fim A camada de rede não oferece nenhum suporte explícito à camada de transporte A perda de segmentos TCP é tomada como uma indicação de congestionamento. Assistido pela rede A rede informa sobre o congestionamento Roteador envia ao remetente um pacote de congestionamento (choke packet). Roteador marca um campo em um pacote indicando o congestionamento. 08/04/2017 Profº André Luiz Silva

23 Controle de congestionamento em malha aberta
Evitam o congestionamento antes que ele ocorra. Política de retransmissão Política de janelas Política de confirmação imposta pelo receptor Política de descarte de pacotes Política de admissão (qualidade de serviço) 08/04/2017 Profº André Luiz Silva

24 Reação do TCP à congestionamentos
No momento do estabelecimento da conexão (apresentação em três vias) o tamanho da janela é escolhido. O receptor especifica o tamanho da janela de acordo com o espaço livre em seu buffer. Se o transmissor se mantiver dentro do tamanho da janela, não haverá problemas causados por sobrecargas nos buffers do receptor. 08/04/2017 Profº André Luiz Silva

25 Causas dos congestionamentos
Dois problemas potenciais: A capacidade da rede A capacidade do receptor Duas soluções: A janela de recepção (RcvWindow) A janela de congestionamento (CongWin) 08/04/2017 Profº André Luiz Silva

26 Duração do temporizador
RTT (Round Trip Time). Tempo de viagem de ida e volta do pacote. RTO (Retransmission Timeout). Temporizador de retransmissão. SRTT (Smoothed Round-Trip Time). Melhor estimativa atual do tempo de ida e volta ao destino. 08/04/2017 Profº André Luiz Silva

27 SRTT (Smoothed Round Trip Time)
Estimativa relacionada ao RTT. SRTT = α SRTT + (1 – α) RTT. α é um fator de nivelamento que determina a rapidez com que os valores antigos são esquecidos. Ou seja, uma média ponderada que leva em consideração principalmente os últimos RTTs. Normalmente α = 7/8.


Carregar ppt "Transmission Control Protocol TCP"

Apresentações semelhantes


Anúncios Google