1 / 25

Redes de Computadores I

Redes de Computadores I. Prof. Mateus Raeder. Universidade do Vale do Rio dos Sinos - São Leopoldo -. TCP – Controle de congestionamento. Quando ocorre um congestionamento? Quando a carga enviada para a rede é maior que sua capacidade

Download Presentation

Redes de Computadores I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos- São Leopoldo -

  2. TCP – Controle de congestionamento • Quando ocorre um congestionamento? • Quando a carga enviada para a rede é maior que sua capacidade • A idéia, então, é não enviar um novo pacote até que um antigo tenha saído da rede • A tentativa de evitar congestionamentos é manipulando dinamicamente o tamanho da janela • O primeiro passo para gerenciar congestionamento é detectá-lo Redes de Computadores I – Prof. Mateus Raeder

  3. TCP – Controle de congestionamento • Antigamente, detectar congestionamentos era mais difícil • Timeouts eram causados ou por ruído na rede ou descarte por um roteador congestionado • Difícil saber a diferença entre os dois casos • Hoje em dia, a perda de pacotes devido a erros de transmissão é rara • Maioria dos timeouts da Internet é devido a congestionamentos Redes de Computadores I – Prof. Mateus Raeder

  4. TCP – Controle de congestionamento • Como o TCP evita congestionamentos? • Na conexão, deve-se escolher um tamanho de janela adequado • O remetente evita congestionamentos enviando pacotes dentro do tamanho da janela do receptor • Entretanto, ainda podem ocorrer devido a congestionamentos internos da rede • A solução é entender que existem estes dois tipos de congestionamentos (capacidade da rede e capacidade do receptor) Redes de Computadores I – Prof. Mateus Raeder

  5. TCP – Controle de congestionamento • Cada remetente possui 2 janelas • A do receptor • A de congestionamento • Cada uma delas indica o número de bytes que o remetente pode enviar • O número de bytes que podem ser transmitidos é o mínimo entre as duas janelas • Se receptor pedir 10KB e o remetente sabe que com mais de 6KB congestiona a rede, ele enviará 6KB • Se o remetente souber que até 32KB não congestiona a rede, enviará 8KB para não saturar o receptor Redes de Computadores I – Prof. Mateus Raeder

  6. TCP – Controle de congestionamento • Quando a conexão é estabelecida, janela de congestionamento é ajustada ao tamanho máximo do segmento em uso na conexão • Envia um segmento máximo • Se o segmento for confirmado antes do timeout • Coloca na janela de congestionamento mais um tamanho máximo de segmento • Assim, a janela de congestionamento agora possui capacidade equivalente a dois segmentos máximos • Em seguida, envia 2 segmentos Redes de Computadores I – Prof. Mateus Raeder

  7. TCP – Controle de congestionamento • Quando a janela de congestionamento chegar em n segmentos • se todos os n segmentos forem confirmados a tempo, a janela de congestionamento será aumentada em n segmentos • Assim sendo, cada rajada confirmada duplica a janela de congestionamento • O crescimento é exponencial, até que ocorra um timeout ou que a janela do receptor seja alcançada • Para evitar congestionamentos, então, quando ocorre um timeout a janela anterior é a que prevalece Redes de Computadores I – Prof. Mateus Raeder

  8. TCP – Controle de congestionamento • Inicialização lenta • É utilizada para determinar o que a rede é capaz de gerenciar • Quando um timeout ocorre, a janela fica com a metade do último tamanho (o que gerou timeout) • A partir de então, cada rajada (tentativa de envio) não é mais exponencial (dobro), mas sim linear (um MSS) • Ou seja, a janela cresce exponencialmente até quando pode, e segue crescendo linearmente depois Redes de Computadores I – Prof. Mateus Raeder

  9. TCP – Gerenciamento de timers • Dos vários timers que utiliza, o mais importante é o de retransmissão • Quando um segmento é enviado, um timer de transmissão é ativado • Se a confirmação do segmento chegar antes to final do timer, ele será interrompido • Senão, o segmento será retransmitido (mais um timer) • Obviamente surge a pergunta: • Qual deve ser o intervalo do timer? Redes de Computadores I – Prof. Mateus Raeder

  10. TCP – Gerenciamento de timers • Não é fácil e é crítico • Se for muito pequeno: retransmissões desnecessárias • Se for muito grande: quando o pacote se perde demora-se muito a saber (retardo de retransmissão) • Solução: algoritmo altamente dinâmico, que ajusta os intervalos de timeout com base na avaliação contínua da rede • Descrito por Jacobson Redes de Computadores I – Prof. Mateus Raeder

  11. TCP – Gerenciamento de timers • Algoritmo de Jacobson • Para cada conexão, guarda-se um valor RTT (melhor estimativa no momento para a ida e volta de 1 segmento) • O timer é disparado transmissão • Se voltar o ACK antes do timer, o TCP mede o tempo necessário, que será M • Assim, de acordo com a fórmula RTT = αRTT + (1 –α)M • onde αé um fator de suavização que determina o peso dado ao antigo valor Redes de Computadores I – Prof. Mateus Raeder

  12. TCP – Gerenciamento de timers • O que fazer quando um pacote é retransmitido? • Pois não necessariamente a confirmação é do último pacote • Phil Karn sugeriu o seguinte: • Não atualizar o RTT em qualquer segmento enviado • Ao invés disso, duplica-se o timeout a cada falha ocorrida, até chegarem no destino pela primeira vez Redes de Computadores I – Prof. Mateus Raeder

  13. TCP – Gerenciamento de timers • Existe ainda o timer de persistência • Receptor envia janela 0 • Remetente para de enviar (timer) • Receptor atualiza a janela para continuar recebendo (envia mensagem) • Mensagem do receptor se perde • Ambas as extremidades aguardando a outra fazer alguma coisa • Quando o timer de persistência expirar, envia teste ao receptor. A resposta fornece o tamanho da janela. Redes de Computadores I – Prof. Mateus Raeder

  14. TCP – Máquina de estados • A conexão e desconexão podem ser representadas por uma máquina de estados finito com 11 estados • A cada estado, eventos podem ocorrer e gerar determinadas ações • TCP possui estados, UDP não Redes de Computadores I – Prof. Mateus Raeder

  15. TCP – Máquina de estados • Estados e significados Redes de Computadores I – Prof. Mateus Raeder

  16. TCP – Máquina de estados Redes de Computadores I – Prof. Mateus Raeder Fonte: slides Prof. Luiz Arthur

  17. TCP x UDP • UDP • Entrega não confiável • Não ordenada • Sem controle nenhum sobre os dados • Erro, fluxo, congestionamento, retransmissão, etc. • TCP • Entrega confiável • Ordenada • Controle de fluxo, congestionamento, retransmissão de pacotes, controle de erros Redes de Computadores I – Prof. Mateus Raeder

  18. Mas por que existe o UDP? • Elimina retardos de conexão • Não mantém estado entre o transmissor e receptor • Cabeçalho muito mais simples • Como não controla congestionamento, transfere o mais rápido possível • Utilizado para aplicações com a idéia de continuidade (vídeo, áudio) • Quem deve controlar a confiabilidade no UDP? • A própria aplicação! Redes de Computadores I – Prof. Mateus Raeder

  19. Questão para discussão • Por que foram criadas camadas de protocolos? • Independência entre as camadas • Cada uma com suas funções • Cite um aspecto da Camada de Transporte que rompe este objetivo. • Checksum • PseudoHeader (informações da camada de rede) Redes de Computadores I – Prof. Mateus Raeder

  20. Exemplo de checksum • Transmissor • Coloca checksum em 0 • Soma com complemento de 1 todos os campos • Coloca complemento de 1 no campo checksum • Envia • Receptor • Calcula checksum • Verifica se é zero • Se SIM, pacote correto; se NÃO, erro detectado Redes de Computadores I – Prof. Mateus Raeder

  21. Exemplo de checksum • Exemplo: Três palavras de 16 bits enviadas: 0011000110101101 0100111011100101 0000010110100110 Somando as duas primeiras: Redes de Computadores I – Prof. Mateus Raeder

  22. Lembrando somas de bits • Soma de bits utilizada nos protocolos: 0 + 0 = 0 = 00 (“vai zero”) 1 + 0 = 1 = 01 (“vai zero”) 0 + 1 = 1 = 01 (“vai zero”) 0 + 1 = 1 = 01 (“vai zero”) 1 + 1 = 2 = 10 (“vai um”) 1 + 1 + 1 = 3 = 11 (“vai um”) 0¹0¹1¹1¹0¹0¹0¹1 0 1 0 1 1 1 1 1 --------------- 1 0 0 1 0 0 0 0 Redes de Computadores I – Prof. Mateus Raeder

  23. Lembrando carry • Quando ocorre carry, a o bit é adicionado ao resultado: 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 --------------- 1 0 0 0 0 0 1 1 0 1 --------------- 0 0 0 0 0 1 1 1 + + Redes de Computadores I – Prof. Mateus Raeder

  24. Voltando... Exemplo de checksum • Exemplo: Três palavras de 16 bits enviadas: 0011000110101101 0100111011100101 0000010110100110 Somando as duas primeiras: 0011000110101101 0100111011100101 ---------------- 1000000010010010 1000000010010010 0000010110100110 ---------------- 1000011000111000 Somando com a última: checksum 0111100111000111 Complemento de 1: inverter bits Redes de Computadores I – Prof. Mateus Raeder

  25. Exemplo de checksum • No receptor, todos os campos são somados, inclusive o checksum • Se não houver erros, a soma deve resultar em 1111111111111111 • O complemento de 1 será 0000000000000000 Redes de Computadores I – Prof. Mateus Raeder

More Related