27
Controle de Congestionamento Controle de Congestionamento do TCP Redes de Computadores Prof. Brivaldo Junior Universidade Federal de Mato Grosso do Sul [email protected] 29 de junho de 2017 Brivaldo Junior Redes de Computadores

Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

  • Upload
    others

  • View
    1

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Redes de Computadores

Prof. Brivaldo Junior

Universidade Federal de Mato Grosso do Sul

[email protected]

29 de junho de 2017

Brivaldo Junior Redes de Computadores

Page 2: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Visao Geral

1 Controle de Congestionamento

2 Controle de Congestionamento do TCP

Brivaldo Junior Redes de Computadores

Page 3: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Princıpios do Controle de Congestionamento

Congestionamento:

informalmente: “quando muitos emissores enviam dados demais para arede 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!

Brivaldo Junior Redes de Computadores

Page 4: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 1

dois emissores e dois receptoresum roteador com buffer infinitocapacidade do enlace de saıda: Rsem retransmissao

Brivaldo Junior Redes de Computadores

Page 5: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 1

λin: vazao de saıda do emissor

λout: vazao recebida peloreceptor

a vazao maxima e R/2 porquetemos duas conexoesconcorrentes

o atraso tende ao infinito,porque temos um bufferinfinito, logo, o atraso tendeao infinito quanto maior a taxade transmissao.

Brivaldo Junior Redes de Computadores

Page 6: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 2

emissor retransmite pacotes com tempo expiradoentrada na camada de aplicacao = saıda da camada de aplicacao: λin = λoutentrada da camada de transporte inclue retransmissoes: λ′in ≥ λin

Brivaldo Junior Redes de Computadores

Page 7: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 2

Situacao (a): emissor envia somente quando o buffer esta disponıvel (conhecimento perfeito!)

Situacao (b): emissor conhece os pacotes que serao perdidos (buffer cheio) e reenvia somente

eles. (0, 333R bytes/s de dados e 0, 166R bytes/s de retransmissoes)

Situacao (c): timeout prematuro no emissor faz com que ele reenvie pacotes ainda nem recebidos,

fazendo com que a media de envio/reenvio de pacotes seja de duas vezes por pacote.

Brivaldo Junior Redes de Computadores

Page 8: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 2

Custos do congestionamento:

mais trabalho (retransmissoes) para alcancar um “goodput” (trafego bom)retransmissoes desnecessarias: enlace transportando multiplas copias deum pacote

reduz o goodput

Brivaldo Junior Redes de Computadores

Page 9: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 3

quatro emissores

multiplos caminhos

timeout e retransmissao

Pergunta: O que acontece se λin eλ′in aumentarem? (vazao deA→ C)Resposta: Todos os pacotes recebidos no

roteador R1 terao mais chance de ser da

conexao entre A→ C do que da conexao

entre B → D, causando descarte de pacotes e

levando a vazao entre B e D a 0.

Brivaldo Junior Redes de Computadores

Page 10: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Congestionamento: Cenario 3

Outro custo do congestionamento e que quando um pacote e descartado(dropado), qualquer capacidade de transmissao anterior usada pelo pacotetera sido desperdicada

Brivaldo Junior Redes de Computadores

Page 11: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Mecanismos de Controle de Congestionamento

Controle de congestionamentofim-a-fim:

sem apoio explıcito da rede

congestionamento inferido peloatraso e perda de pacotes nosistema final

abordagem usada pelo TCP

Controle de congestionamento“assistido” pela rede:

roteadores fornecem feedback dosroteadores para os sistemas finais

bit unico sinalizandocongestionamento (SNA, DECbit,ATM)taxa explıcita do emissor para quemele envia

Brivaldo Junior Redes de Computadores

Page 12: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Aumento Aditivo, Reducao Multiplicativa

abordagem: emissor aumenta a taxa de transmissao (e o tamanho dajanela de congestionamento cwnd), procurando pela largura de banda util,ate que uma perda ocorra.

aumento aditivo (additive increase): aumenta cwnd em 1 MSS a cada RTT ateque uma perda seja detectadareducao multiplicativa (multiplicative decrease): corta cwnd pela metade depoisde uma perda

Brivaldo Junior Redes de Computadores

Page 13: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Mecanismos de Controle de Congestionamento

os limites de transmissao doemissor:

LastByteSent− LastByteAcked ≥

min{cwnd, rwnd}

Em que cwnd e a janela decongestionamento e rwnd e ajanela de recepcao

cwnd e dinamico e varia em funcaoda percepcao de congestionamentoda rede

Taxa de envio do TCP:grosseiramente: envia cwnd bytes,espera RTT para ACKs, entao enviamais bytestaxa ≈ cwnd

RTT bytes/s

Brivaldo Junior Redes de Computadores

Page 14: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

TCP Slow Start

quando a conexao inicia, ataxa de transferencia aumentaexponencialmente ate que oprimeiro evento de perdaocorra:

inicialmente cwnd = 1 MSSdobra o cwnd a cada RTTtermina o incremento de cwnd

para cada ACK recebido

sumario: comeca devagar, masvai acelerandoexponencialmente

Brivaldo Junior Redes de Computadores

Page 15: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

TCP: detectando e reagindo a perdas (recuperacao rapida)

perdas indicadas por timeout:cwnd e definido para 1 MSSssthresh e definido para metade do valor de cwnd no momento que ocorreu aperdajanela cresce exponencialmente (como no slow start) ate um certo limiar(ssthresh) e depois cresce linearmente

perdas sao indicadas por ACKs duplicado triplo: TCP Renocwnd e cortado pela metade e entao cresce linearmente

TCP Tahoe sempre define cwnd para 1 (timeout ou duplicacao tripla deACKs)

Brivaldo Junior Redes de Computadores

Page 16: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

TCP: Partida Lenta para Adicao Cumulativa

o crescimento da janela eexponencial ate ssthresh edepois linear (rodada 1 a 4)

a janela cresce linearmente atea rodada 8 (janela alcancatamanho 12)na rodada 8 temos uma perda

ssthresh e definido paracwnd

2 = 6Tahoe: reinicia o cwnd para 1Reno: reinicia o cwnd parassthresh

Figura: Imagem correta. No livro esta errado

Brivaldo Junior Redes de Computadores

Page 17: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Justica do TCP

Se K sessoes TCP compartilharem o mesmo enlace “gargalo”, a largurade banda R de cada um deve ser a taxa media de R

K

Brivaldo Junior Redes de Computadores

Page 18: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Por que o TCP e justo?

duas sessoes competindo:o aumento aditivo aumenta em 1, conforme a vazao aumentao decaimento multiplicativo reduz a vazao proporcionalmente

Brivaldo Junior Redes de Computadores

Page 19: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 1: Verdadeiro ou Falso

Um host A enviando um grande arquivo para um host B sobre uma conexaoTCP. Assuma que B nao tem qualquer dado para enviar para A. B nao enviarareconhecimentos para A, porque B nao pode enviar dados de reconhecimentousando os dados como “carona”.

Solucao

Falso

Brivaldo Junior Redes de Computadores

Page 20: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 1: Verdadeiro ou Falso

Um host A enviando um grande arquivo para um host B sobre uma conexaoTCP. Assuma que B nao tem qualquer dado para enviar para A. B nao enviarareconhecimentos para A, porque B nao pode enviar dados de reconhecimentousando os dados como “carona”.

Solucao

Falso

Brivaldo Junior Redes de Computadores

Page 21: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 2: Verdadeiro ou Falso

O tamanho da tanela TCP rwnd nunca muda durante a duracao de umaconexao.

Solucao

Falso

Brivaldo Junior Redes de Computadores

Page 22: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 2: Verdadeiro ou Falso

O tamanho da tanela TCP rwnd nunca muda durante a duracao de umaconexao.

Solucao

Falso

Brivaldo Junior Redes de Computadores

Page 23: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 3: Verdadeiro ou Falso

Suponha que um host A esta enviando um arquivo grande para um host Busando uma conexao TCP. O numero de bytes nao reconhecidos que A envianao podem exceder o tamanho do buffer de recepcao.

Solucao

Verdadeiro

Brivaldo Junior Redes de Computadores

Page 24: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 3: Verdadeiro ou Falso

Suponha que um host A esta enviando um arquivo grande para um host Busando uma conexao TCP. O numero de bytes nao reconhecidos que A envianao podem exceder o tamanho do buffer de recepcao.

Solucao

Verdadeiro

Brivaldo Junior Redes de Computadores

Page 25: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 4

Suponha que um host A envia dois segmentos TCP um atras do outro para o host B por uma conexao

TCP. O primeiro segmento tem numero de sequencia 90; o segundo tem numero de sequencia 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 sera o numero de reconhecimento?

Solucao

1 20 bytes

2 ACK = 90

Brivaldo Junior Redes de Computadores

Page 26: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Exercıcio 4

Suponha que um host A envia dois segmentos TCP um atras do outro para o host B por uma conexao

TCP. O primeiro segmento tem numero de sequencia 90; o segundo tem numero de sequencia 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 sera o numero de reconhecimento?

Solucao

1 20 bytes

2 ACK = 90

Brivaldo Junior Redes de Computadores

Page 27: Redes de Computadores - UFMSbrivaldo/pdfs/courses/cn/classes/class08.pdf · Brivaldo Junior Redes de Computadores. Controle de Congestionamento Controle de Congestionamento do TCP

Controle de CongestionamentoControle de Congestionamento do TCP

Perguntas ?

Brivaldo Junior Redes de Computadores