UEM/DIN/Elvio/1023-1224 1
Redes de Computadores
Camada de Rede
Aula 6/2006
UEM/DIN/Elvio/1023-1224 2
Camada de Rede�É a camada mais baixa que trata da comunicação fim-a-fim�Função de encaminhar os pacotes da fonte até o destino final�Deve ter conhecimento sobre a topologia da sub-rede e escolher os caminhos apropriados para a comunicação�Deve escolher rotas de maneira a dividir o tráfego entre as rotas�Esta camada deve fornecer funcionalidade para resolver situações em que os terminais estão em redes distintas
UEM/DIN/Elvio/1023-1224 3
Ambiente para a Camada de Redes
�Principal função: rotear pacotes da origem ao destino�Mecanismo de comutação store-and-forward
UEM/DIN/Elvio/1023-1224 4
Serviços OferecidosServiço Sem ConexõesSub-redes de Datagramas
�Mensagem quebrada em Datagramas�Cada roteador tem uma tabela que informa para onde os datagramas devem ser enviados�Datagramas podem seguir rotas diferentes
UEM/DIN/Elvio/1023-1224 5
Serviços OferecidosServiço Orientado a ConexõesSub-rede de Circuitos Virtuais
UEM/DIN/Elvio/1023-1224 6
ComparaçãoDatagrama – Circuito Virtual
UEM/DIN/Elvio/1023-1224 7
Algoritmos de Roteamento� Roteamento por pacote (datagrama) ou roteamento por sessão (circuito virtual)
� Características desejáveis:� Correção, Simplicidade, Robustez, Estabilidade, Eqüidade, Otimização
� Algoritmos Adaptativos e Não-Adaptativos (ou estáticos)� Baseiam ou não as decisões de roteamento nas condições dinâmicas (níveis de tráfego, por exemplo) da rede
UEM/DIN/Elvio/1023-1224 8
Princípio da Otimização
(a) Uma sub-rede (b) Árvore de escoamento para o nó B� Se a rota ótima [I-K] passa por J, então esta rota é composta pelas rotas ótimas [I-J] e [J-K]
UEM/DIN/Elvio/1023-1224 9
Algoritmo do Caminho Mais Curto
UEM/DIN/Elvio/1023-1224 10
Algoritmo de Inundação� Pacote de entrada é propagado para todas as
saídas� Pacotes duplicados devem ser removidos� Pacotes têm vida (número de retransmissões) limitado� Pacotes têm identificador que evita retransmissão
� Inundação Seletiva: propagação apenas para as saídas relevantes
UEM/DIN/Elvio/1023-1224 11
Algoritmo com Vetor de Distância
(a) Uma subrede(b) Tabelas de roteamentoTambém conhecido como Bellman-Ford e Ford-Fulkerson
UEM/DIN/Elvio/1023-1224 12
Algoritmo com Vetor de Distância
� Atualização desbalanceada:
UEM/DIN/Elvio/1023-1224 13
Roteamento por Estado do Enlace
� Cada roteador dever fazer:� Descobrir seus vizinhos� Utilizando mensagens de HELLO
� Medir o retardo (ou custo) até cada um deles� Utilizando mensagens de ECHO
� Difundir esta informação para todos os outros roteadores� Utilizando o algoritmo de inundação
� Calcular o caminho mais curto até cada um dos roteadores
UEM/DIN/Elvio/1023-1224 14
Roteamento por Estado de Enlace
� Descobrindo os seus vizinhos
UEM/DIN/Elvio/1023-1224 15
Roteamento por Estado de Enlace
� Construindo pacotes de estado de enlace
UEM/DIN/Elvio/1023-1224 16
Roteamento por Estado de Enlace
� Difusão da informação:� Número de Seqüência� Incluído em cada pacote enviado� Incrementado a cada novo pacote gerado� Pacotes repetidos ou com número de seqüência mais baixo que o armazenado são descartados
UEM/DIN/Elvio/1023-1224 17
Roteamento por Estado de Enlace
� Difusão da informação (cont.):� Time to Live (Prazo de Validade)� Incluído em cada pacote enviado� Decrementado (por exemplo) a cada segundo� As informações disponíveis sobre cada roteador têm, portanto, também um prazo de validade (igual ao último pacote dele recebido)
UEM/DIN/Elvio/1023-1224 18
Roteamento por Estado de Enlace
� Tabela de gerência de pacotes de estado de enlace recebidos pelo roteador B
UEM/DIN/Elvio/1023-1224 19
Roteamento por Estado de Enlace
� Cálculo de novas rotas� Com a informação acumulada cria-se um grafo completo da sub-rede� Utilizando, por exemplo, um algoritmo de determinação de caminho mais curto, calcula-se as melhores rotas para todos os roteadores� Para uma sub-rede com n roteadores, cada um com k vizinhos, a memória necessária é k × n
UEM/DIN/Elvio/1023-1224 20
Roteamento Hierárquico� Exemplo de 2 níveis e 5 regiões
UEM/DIN/Elvio/1023-1224 21
Roteamento por Difusão ou Multidifusão
� Utilizado para propagação de um mesmo conteúdo a vários (muitos) terminais (relatórios sobre o tempo, mercado de ações, rádio em tempo real, etc.)� Difusão (broadcast): a todos os terminais� Multidifusão (multicast): a todos os terminais
pertencentes a um determinado grupo
UEM/DIN/Elvio/1023-1224 22
Encaminhamento PeloCaminho Inverso(Difusão)
(a) sub-rede (b) árvore de escoamento (c) árvore de encaminhamento� Pacote é retransmitido somente se chegou pelo caminho certo (isto é, conforme especificado pela árvore de escoamento)
UEM/DIN/Elvio/1023-1224 23
Árvores de Multidifusão(Multidifusão)
(a) sub-rede(b)(c)(d) árvores de
escoamento dependentes dos grupos de difusão
� Pacote é retransmitido somente se roteador pertence à árvore de escoamento
UEM/DIN/Elvio/1023-1224 24
Roteamento Para Hosts Móveis� Cada unidade de gerência (célula) mantém:� Lista de terminais estrangeiros utilizando a célula (Registro dos Visitantes)� Lista de terminais locais utilizando outras células (Registro dos Viajantes)
� O Host estrangeiro pede registro, informa endereço e é designado um endereço local em caso de sucesso
� Sistema local interage com sistema estrangeiro para confirmação de registro
UEM/DIN/Elvio/1023-1224 25
Roteamento Para Hosts Móveis
UEM/DIN/Elvio/1023-1224 26
Roteamento Para Redes Ad-HocAODV (Ad Hoc on Demand Distance Vector)
� Baseado no algoritmo de Roteamento com Vetor de Distância
� Exemplo: “A” deseja enviar pacote a “I”
UEM/DIN/Elvio/1023-1224 27
AODVDescoberta da Rota
� “A” envia por difusão um pacote de ROUTE REQUEST
� Endereços de Origem e Destino (usualmente endereço IP)� Identificador da Solicitação (incrementado a cada nova solicitação)� Seqüência de Origem: contador de seqüência da origem� Seqüência de Destino: contador de seqüência recebido do destino� Contagem do Número de Saltos (retransmissões)
UEM/DIN/Elvio/1023-1224 28
AODVDescoberta da Rota
� Os valores Endereço de Origem e Identificador da Solicitação identificam de maneira única a solicitação
� Um nó intermediário recebe um ROUTE REQUEST� Descarta solicitação se ela é repetida� Se o nó conhece rota para destino e Seqüência de Destino
recebido é menor ou igual ao valor armazenado, envia um ROUTE REPLY de volta fornecendo rota
� Caso contrário, o nó incrementa o Número de Saltos e retransmite o ROUTE REQUEST
UEM/DIN/Elvio/1023-1224 29
AODVDescoberta da Rota
� O nó de destino (ex., “I”), ao receber o ROUTE REQUEST� Constrói e envia de volta (em unicast) um ROUTE REPLY
� Endereços de Origem e Destino e Número de Saltos são copiados da solicitação
� Seqüência de Destino é preenchido pelo nó de destino� Duração informa tempo de vida da rota
UEM/DIN/Elvio/1023-1224 30
AODVDescoberta da Rota
� Pacote ROUTE REPLY é recebido por cada um dos nós intermediários� Tabela de roteamento é atualizada se� Não é conhecida rota para destino� Seqüência de Destino armazenada é menor que valor recebido� Seqüência de Destino armazenada é igual ao valor recebido, porém rota é mais curta
UEM/DIN/Elvio/1023-1224 31
AODVManutenção da Rota
� Nó envia HELLO periódico� Nó mantém tabela organizada por destino, com a relação dos últimos nós de origem que utilizaram a rota (vizinhos ativos)
� Em caso de falha em algum nó (ausência de resposta ao HELLO), nó envia mensagem aos vizinhos ativos informando que rota não está mais disponível
� Ao contrário do Roteamento com Vetor de Distância, não existe difusão periódica da tabela de roteamento
UEM/DIN/Elvio/1023-1224 32
AODVManutenção da Rota
(a) Tabela de roteamento do nó “D” (b) Grafo sem nó “G”
UEM/DIN/Elvio/1023-1224 33
Controle de Congestionamento� Princípios gerais� Políticas de prevenção� Controle de congestionamento em Circuitos
Virtuais� Controle de congestionamento em Subredes
de Datagramas� Escoamento de carga� Controle do jitter
UEM/DIN/Elvio/1023-1224 34
Congestionamento� Mais pacotes do que a subrede pode manusear� Crescimento repentino do tráfego� Concentração do tráfego em determinadas rotas� Demora dos roteadores em processar tráfego� Enlaces não comportando demanda� Controle de fluxo: enlace ponto-a-ponto� Controle de congestionamento: envolve toda a rede
UEM/DIN/Elvio/1023-1224 35
Congestionamento
UEM/DIN/Elvio/1023-1224 36
Princípios Gerais� Monitorar sistema para detectar quando e onde ocorre congestionamento� Porcentagem de pacotes descartados por falta de espaço no buffer
� Média do comprimento das filas� Número de pacotes descartados por excesso de atraso
� Atraso médio dos pacotes� Desvio padrão do atraso médio dos pacotes
UEM/DIN/Elvio/1023-1224 37
Princípios Gerais� Enviar informação onde providências possam ser tomadas� Informar roteador fonte� Informar outros roteadores (ex., através de campo no cabeçalho do pacote) da situação de congestionamento
� Ajustar operação do sistema para corrigir problema
UEM/DIN/Elvio/1023-1224 38
Políticas de Prevenção
UEM/DIN/Elvio/1023-1224 39
Políticas de Prevenção� Enlace de Dados e Transporte� Retransmissão e Recebimento de quadros fora de ordem: mecanismos “go back n” ou retransmissão seletiva� Confirmação de recebimento: envio de ACKs aumenta tráfego� Controle de fluxo: diminui taxa de dados e minimiza congestionamento
UEM/DIN/Elvio/1023-1224 40
Políticas de Prevenção� Rede� Circuito Virtual vs. Datagrama: mecanismos de controle de congestionamento em geral atuam melhor em circuito virtual� Uso de filas de entrada e saída, política de descarte de pacotes e tempo de vida dos pacotes: mantém pacotes em trânsito e podem prejudicar congestionamento� Algoritmo de roteamento: permite redirecionar tráfego
UEM/DIN/Elvio/1023-1224 41
Controle de Congestionamento� Circuito Virtual� Controle de admissão
� Datagrama� Pacote regulador
UEM/DIN/Elvio/1023-1224 42
Escoamento de Carga� Implica em descartar o tráfego que está além
da capacidade do roteador� RED (Random Early Detection)� Roteadores monitoram comprimento médio da fila e passam a descartar pacotes quando este valor ultrapassa determinado limiar� Aumento na perda de pacotes provoca diminuição do fluxo na fonte
UEM/DIN/Elvio/1023-1224 43
Controle de Jitter� Desvio padrão no tempo de chegada de pacotes
UEM/DIN/Elvio/1023-1224 44
Qualidade de ServiçoQuality of Service (QoS)Requisitos
� Confiabilidade (reliability), atraso (delay), jitter e largura de banda (bandwidth)
UEM/DIN/Elvio/1023-1224 45
Qualidade de ServiçoTécnicas para Garantir QoS
� Super-dimensionamento: dimensionar roteadores e enlaces para o pior caso
� Armazenamento em buffers: para fluxos uni-direcionais
UEM/DIN/Elvio/1023-1224 46
Qualidade de ServiçoTécnicas para Garantir QoS
� Moldagem de tráfego: procura moldar o tráfego de maneira a deixá-lo regular, com velocidade e demandas uniformes ao longo do tempo
� Exemplos� Algoritmo do Balde Furado (Leaky Bucket)� Algoritmo do Balde de Símbolos (Token Bucket)
UEM/DIN/Elvio/1023-1224 47
Leaky Bucket� Pacotes recebidos são colocados em um “balde” furado (com um furo no fundo)
� O balde pode conter até um máximo de B bytes� Pacotes que chegam quando o balde está cheio são descartados
� Pacotes são “vazados” do balde pelo furo a uma taxa constante, alisando rajadas de tráfego (moldando o tráfego)
� A quantidade de memória disponível no sistema limita o tamanho B do balde
UEM/DIN/Elvio/1023-1224 48
Leaky Bucket
UEM/DIN/Elvio/1023-1224 49
Token Bucket� Similar ao Leaky Bucket mas permite que rajadas de tráfego continuem a transmitir enquanto houver tokens disponíveis
� Um token é adicionado ao balde cada 1/r segundos� O balde pode conter no máximo T tokens� Tokens que chegam ao balde quando ele está cheio são descartados
� Quando um pacote é recebido, ele é encaminhado se existir pelo menos 1 token no balde
UEM/DIN/Elvio/1023-1224 50
Token Bucket� Cada pacote encaminhado (transmitido) consome 1
token do balde� Se N pacotes são recebidos e N ou mais tokens existirem no balde, todos os N pacotes serão transmitidos em uma rajada� Se M < N tokens existirem no balde, então serão transmitidos M pacotes e os restantes N – M serão transmitidos assim que novos tokens forem adicionados ao balde
UEM/DIN/Elvio/1023-1224 51
Token Bucket
UEM/DIN/Elvio/1023-1224 52
TokenBucket
� (a) Entrada� (b) Saída de um leaky
bucket� Saída de um token
bucket com capacidades de� (c) 250 KB� (d) 500 KB� (e) 750 KB
� (f) Saída de um token bucket de 500KB alimentando um leaky bucket a 10 MB/s
UEM/DIN/Elvio/1023-1224 53
Qualidade de ServiçoTécnicas para Garantir QoS
� Reserva de Recursos� Largura de Banda� Espaço de Buffer� Ciclos de CPU
UEM/DIN/Elvio/1023-1224 54
Qualidade de ServiçoTécnicas para Garantir QoS
� Reserva de Recursos (Exemplo)� Chegada: λ pacotes/s (Poisson)� Serviço: µ pacotes/s (Exponencial negativa)� Atraso médio:
� Supondo µ = 1 p/s, λ = 0,99 p/s, T = 100� Supondo µ = 1 p/s, λ = 0,9 p/s, T = 10� Supondo µ = 1 p/s, λ = 0,5 p/s, T = 2
T= 1µ×1
1�λ/ µ
UEM/DIN/Elvio/1023-1224 55
Qualidade de ServiçoTécnicas para Garantir QoS
� Controle de Admissão� Exemplo de especificação de fluxo
UEM/DIN/Elvio/1023-1224 56
Qualidade de ServiçoTécnicas para Garantir QoS
� Roteamento Proporcional� Programação de Pacotes
UEM/DIN/Elvio/1023-1224 57
Resource Reservation Protocol(RSVP)
� Descrito na RFC 2205� Protocolo para reserva de recursos em uma
rede para serviços integrados (voz, dado, etc.), em modo simplex (um único sentido)� Iniciado pelo receptor, útil para conexões
unicast e multicast
UEM/DIN/Elvio/1023-1224 58
Resource Reservation Protocol(RSVP)
(a) “3” requisita canal para “1” (b) “3” requisita canal para “2” (c) “5” requisita canal para “1”
UEM/DIN/Elvio/1023-1224 59
Multiprotocol Label Switching(MPLS)
� Tenta emular características de Circuito Virtual sobre uma rede de datagramas
� Opera entre as camadas 3 (Rede) e 2 (Enlace de Dados), sendo algumas vezes denominada camada 2.5
� Acrescenta uma pilha (hierárquica) de rótulos (labels) ao pacote de camada 3� Comutação passa a ser feita pelos rótulos e não pelo endereço de camada 3� Rótulos podem ser removidos e acrescentados ao longo da rota
UEM/DIN/Elvio/1023-1224 60
Multiprotocol Label Switching(MPLS)
Label = rótulo, QoS = classe de serviço, S = fim da pilha de rótulos, TTL = time to live