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

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

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

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

Redes de Computadores I

Prof. Mateus Raeder

Universidade do Vale do Rio dos Sinos- São Leopoldo -

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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)

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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?

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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.

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

TCP – Máquina de estados

• Estados e significados

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

Redes de Computadores I – Prof. Mateus Raeder

TCP – Máquina de estados

Fonte: slides Prof. Luiz Arthur

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

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!

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

Redes de Computadores I – Prof. Mateus Raeder

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)

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

Redes de Computadores I – Prof. Mateus Raeder

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

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

Redes de Computadores I – Prof. Mateus Raeder

Exemplo de checksum

• Exemplo:

001100011010110101001110111001010000010110100110

Três palavras de 16 bits enviadas:

Somando as duas primeiras:

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

Redes de Computadores I – Prof. Mateus Raeder

Lembrando somas de bits

• Soma de bits utilizada nos protocolos:

0¹0¹1¹1¹0¹0¹0¹10 1 0 1 1 1 1 1---------------

1 0 0 1 0 0 0 0

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”)

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

Redes de Computadores I – Prof. Mateus Raeder

Lembrando carry

• Quando ocorre carry, a o bit é adicionado ao resultado:

0 0 0 0 1 0 1 01 1 1 1 1 1 0 0---------------

1 0 0 0 0 0 1 1 01

---------------0 0 0 0 0 1 1 1

+

+

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

Redes de Computadores I – Prof. Mateus Raeder

Voltando... Exemplo de checksum

• Exemplo:

001100011010110101001110111001010000010110100110

Três palavras de 16 bits enviadas:

Somando as duas primeiras: 00110001101011010100111011100101----------------1000000010010010

Somando com a última: 10000000100100100000010110100110----------------1000011000111000

0111100111000111 checksum

Complemento de 1: inverter bits

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

Redes de Computadores I – Prof. Mateus Raeder

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