redes de computadores i prof. mateus raeder universidade do vale do rio dos sinos - são leopoldo -
Post on 17-Apr-2015
108 Views
Preview:
TRANSCRIPT
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
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
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)
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
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
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
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
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?
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
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
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
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.
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
Redes de Computadores I – Prof. Mateus Raeder
TCP – Máquina de estados
• Estados e significados
Redes de Computadores I – Prof. Mateus Raeder
TCP – Máquina de estados
Fonte: slides Prof. Luiz Arthur
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
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!
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)
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
Redes de Computadores I – Prof. Mateus Raeder
Exemplo de checksum
• Exemplo:
001100011010110101001110111001010000010110100110
Três palavras de 16 bits enviadas:
Somando as duas primeiras:
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”)
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
+
+
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
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
top related