Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 29 de junho de 2017
Visão Geral 1 Controle de Congestionamento 2
Princípios do Controle de Congestionamento Congestionamento: informalmente: quando muitos emissores enviam dados demais para a rede manipular diferente de controle de fluxo! como se manifesta: perda de pacotes (estouro de buffer nos roteadores) alto atraso (enfileiramento nos buffers dos roteadores) um problema de redes top-10!
Congestionamento: Cenário 1 dois emissores e dois receptores um roteador com buffer infinito capacidade do enlace de saída: R sem retransmissão
Congestionamento: Cenário 1 λ in : vazão de saída do emissor λ out : vazão recebida pelo receptor a vazão máxima é R/2 porque temos duas conexões concorrentes o atraso tende ao infinito, porque temos um buffer infinito, logo, o atraso tende ao infinito quanto maior a taxa de transmissão.
Congestionamento: Cenário 2 emissor retransmite pacotes com tempo expirado entrada na camada de aplicação = saída da camada de aplicação: λ in = λ out entrada da camada de transporte inclue retransmissões: λ in λ in
Congestionamento: Cenário 2 Situação (a): emissor envia somente quando o buffer está disponível (conhecimento perfeito!) Situação (b): emissor conhece os pacotes que serão perdidos (buffer cheio) e reenvia somente eles. (0, 333R bytes/s de dados e 0, 166R bytes/s de retransmissões) Situação (c): timeout prematuro no emissor faz com que ele reenvie pacotes ainda nem recebidos, fazendo com que a média de envio/reenvio de pacotes seja de duas vezes por pacote.
Congestionamento: Cenário 2 Custos do congestionamento: mais trabalho (retransmissões) para alcançar um goodput (tráfego bom) retransmissões desnecessárias: enlace transportando múltiplas cópias de um pacote reduz o goodput
Congestionamento: Cenário 3 quatro emissores múltiplos caminhos timeout e retransmissão Pergunta: O que acontece se λ in e λ in aumentarem? (vazão de A C) Resposta: Todos os pacotes recebidos no roteador R1 terão mais chance de ser da conexão entre A C do que da conexão entre B D, causando descarte de pacotes e levando a vazão entre B e D à 0.
Congestionamento: Cenário 3 Outro custo do congestionamento é que quando um pacote é descartado (dropado), qualquer capacidade de transmissão anterior usada pelo pacote terá sido desperdiçada
Mecanismos de Controle de Congestionamento Controle de congestionamento fim-a-fim: sem apoio expĺıcito da rede congestionamento inferido pelo atraso e perda de pacotes no sistema final abordagem usada pelo TCP Controle de congestionamento assistido pela rede: roteadores fornecem feedback dos roteadores para os sistemas finais bit único sinalizando congestionamento (SNA, DECbit, ATM) taxa expĺıcita do emissor para quem ele envia
Aumento Aditivo, Redução Multiplicativa abordagem: emissor aumenta a taxa de transmissão (e o tamanho da janela de congestionamento cwnd), procurando pela largura de banda útil, até que uma perda ocorra. aumento aditivo (additive increase): aumenta cwnd em 1 MSS a cada RTT até que uma perda seja detectada redução multiplicativa (multiplicative decrease): corta cwnd pela metade depois de uma perda
Mecanismos de Controle de Congestionamento Em que cwnd é a janela de congestionamento e rwnd é a janela de recepção cwnd é dinâmico e varia em função da percepção de congestionamento da rede os limites de transmissão do emissor: LastByteSent LastByteAcked min{cwnd, rwnd} Taxa de envio do TCP: grosseiramente: envia cwnd bytes, espera RTT para ACKs, então envia mais bytes taxa cwnd RT T bytes/s
TCP Slow Start quando a conexão inicia, a taxa de transferência aumenta exponencialmente até que o primeiro evento de perda ocorra: inicialmente cwnd = 1 MSS dobra o cwnd a cada RTT termina o incremento de cwnd para cada ACK recebido sumário: começa devagar, mas vai acelerando exponencialmente
TCP: detectando e reagindo a perdas (recuperação rápida) perdas indicadas por timeout: cwnd é definido para 1 MSS ssthresh é definido para metade do valor de cwnd no momento que ocorreu a perda janela cresce exponencialmente (como no slow start) até um certo limiar (ssthresh) e depois cresce linearmente perdas são indicadas por ACKs duplicado triplo: TCP Reno cwnd é cortado pela metade e então cresce linearmente TCP Tahoe sempre define cwnd para 1 (timeout ou duplicação tripla de ACKs)
TCP: Partida Lenta para Adição Cumulativa o crescimento da janela é exponencial até ssthresh e depois linear (rodada 1 a 4) a janela cresce linearmente até a rodada 8 (janela alcança tamanho 12) na rodada 8 temos uma perda ssthresh é definido para cwnd 2 = 6 Tahoe: reinicia o cwnd para 1 Reno: reinicia o cwnd para ssthresh Figura: Imagem correta. No livro está errado
Justiça do TCP Se K sessões TCP compartilharem o mesmo enlace gargalo, a largura de banda R de cada um deve ser a taxa média de R K
Por que o TCP é justo? duas sessões competindo: o aumento aditivo aumenta em 1, conforme a vazão aumenta o decaimento multiplicativo reduz a vazão proporcionalmente
Exercício 1: Verdadeiro ou Falso Um host A enviando um grande arquivo para um host B sobre uma conexão TCP. Assuma que B não tem qualquer dado para enviar para A. B não enviará reconhecimentos para A, porque B não pode enviar dados de reconhecimento usando os dados como carona.
Exercício 1: Verdadeiro ou Falso Um host A enviando um grande arquivo para um host B sobre uma conexão TCP. Assuma que B não tem qualquer dado para enviar para A. B não enviará reconhecimentos para A, porque B não pode enviar dados de reconhecimento usando os dados como carona. Solução Falso
Exercício 2: Verdadeiro ou Falso O tamanho da tanela TCP rwnd nunca muda durante a duração de uma conexão.
Exercício 2: Verdadeiro ou Falso O tamanho da tanela TCP rwnd nunca muda durante a duração de uma conexão. Solução Falso
Exercício 3: Verdadeiro ou Falso Suponha que um host A está enviando um arquivo grande para um host B usando uma conexão TCP. O número de bytes não reconhecidos que A envia não podem exceder o tamanho do buffer de recepção.
Exercício 3: Verdadeiro ou Falso Suponha que um host A está enviando um arquivo grande para um host B usando uma conexão TCP. O número de bytes não reconhecidos que A envia não podem exceder o tamanho do buffer de recepção. Solução Verdadeiro
Exercício 4 Suponha que um host A envia dois segmentos TCP um atrás do outro para o host B por uma conexão TCP. O primeiro segmento tem número de sequência 90; o segundo tem número de sequência 110. 1 Quantos dados foram enviados no primeiro segmento? 2 Suponha que o primeiro segmento foi perdido, mas o segundo chegue a B. No reconhecimento que B envia para A, qual será o número de reconhecimento?
Exercício 4 Suponha que um host A envia dois segmentos TCP um atrás do outro para o host B por uma conexão TCP. O primeiro segmento tem número de sequência 90; o segundo tem número de sequência 110. 1 Quantos dados foram enviados no primeiro segmento? 2 Suponha que o primeiro segmento foi perdido, mas o segundo chegue a B. No reconhecimento que B envia para A, qual será o número de reconhecimento? Solução 1 20 bytes 2 ACK = 90
Perguntas?