Camada de Rede · Objetivos •Camada de Enlace: move quadros de dois hosts; •Camada de Rede:...
Transcript of Camada de Rede · Objetivos •Camada de Enlace: move quadros de dois hosts; •Camada de Rede:...
Camada de Rede
BCC361 – Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação Prof. Reinaldo Silva Fortes www.decom.ufop.br/reinaldo 2011/02
1
Camada Nome
5 Aplicação
4 Transporte
3 Rede
2 Enlace
1 Física
Agenda
• Questões de projeto;
• Algoritmos de roteamento;
• Algoritmos de controle de congestionamento;
• Qualidade de serviço;
• Interligação de redes;
• A camada de rede da Internet.
2
QUESTÕES DE PROJETO
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
3
Tópicos
• Objetivos;
• Comutação de pacotes Store-and-Forward;
• Serviços oferecidos à camada de transporte;
• Serviço não orientado a conexões;
• Serviço orientado a conexões;
• Datagramas v.s. Circuitos Virtuais.
Questões de projeto
4
Objetivos
• Camada de Enlace: move quadros de dois hosts;
• Camada de Rede:
• Transferência de pacotes de uma origem a um destino;
• Pode envolver vários hops (saltos) em roteadores intermediários ao longo do percurso;
• Para atingir seus objetivos, tem a necessidade de conhecer a topologia da rede para escolher os caminhos mais apropriados.
Questões de projeto
5
Comutação Store-and-Forward
• Define o contexto de operação dos protocolos da camada de rede;
• Um host envia o pacote para o roteador mais próximo;
• O pacote é armazenado até chegar completamente e o checksum é verificado;
• Em seguida o roteador encaminha o pacote para o próximo roteador ao longo do caminho até que ele encontre o host de destino.
Questões de projeto
6
Serviços oferecidos
• A camada de rede oferece serviços à camada de transporte através de suas interfaces;
• Objetivos:
1. Os serviços devem ser independentes da tecnologia dos roteadores;
2. A camada de transporte deve ser isolada do número, tipo e da topologia dos roteadores presentes;
3. Os endereços de rede que tornam os pacotes disponíveis para a camada de transporte devem usar um plano de numeração uniforme;
• Dois tipos de serviço:
• Não orientados à conexão;
• Orientados à conexão.
Questões de projeto
7
Serviços oferecidos
• Serviços não orientados à conexão:
• Os pacotes são injetados individualmente na rede e roteados de modo independente uns dos outros;
• Neste contexto os pacotes são denominados datagramas e a rede formada é denominada rede de datagramas.
Questões de projeto
8
Serviços oferecidos
• Serviços orientados à conexão:
• É estabelecido um caminho entre os roteadores de origem e destino antes do envio de qualquer pacote. Todos os pacotes serão enviados através deste caminho;
• Esta conexão é denominada circuito virtual e a rede formada é denominada rede de circuitos virtuais.
Questões de projeto
9
Serviços oferecidos
• Datagramas v.s. Circuitos Virtuais (1):
Questões de projeto
10
Questão Rede de Datagramas Rede de Circuitos Virtuais
Configuração de circuitos Desnecessária. Obrigatória.
Endereçamento Cada pacote contém os endereços completos de origem e destino.
Cada pacote contém um pequeno número do circuito virtual.
Informações sobre o estado Os roteadores não armazenam informações sobre o estado das conexões.
Cada circuito virtual requer espaço em tabelas de roteadores por conexão.
Roteamento Cada pacote é roteado independentemente.
A rota é escolhida quando o circuito virtual é estabelecido; todos os pacotes seguem essa rota.
Serviços oferecidos
• Datagramas v.s. Circuitos Virtuais (2):
Questões de projeto
11
Questão Rede de Datagramas Rede de Circuitos Virtuais
Efeitos de falhas no roteador Nenhum, com exceção dos pacotes perdidos durante a falha.
Todos os circuitos virtuais que tiverem passado pelo roteador que apresentou o defeito serão encerrados.
Qualidade de serviço Difícil.
Fácil, se for possível alocar recursos suficientes com antecedência para cada circuito virtual.
Controle de congestionamento
Difícil.
Fácil, se for possível alocar recursos suficientes com antecedência para cada circuito virtual.
ALGORITMOS DE ROTEAMENTO
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
12
Tópicos
• Introdução;
• O princípio da otimização;
• Roteamento pelo caminho mais curto;
• Roteamento por inundação (Flooding);
• Roteamento por vetor de distâncias;
• Roteamento de estado de enlace;
• Roteamento hierárquico;
• Roteamentos por broadcast, multicast e anycast;
• Roteamento para dispositivos móveis;
• Roteamento em redes ad hoc.
Algoritmos de roteamento
13
Introdução
• Algoritmos de roteamento constituem um dos elementos mais importantes no projeto da camada de rede;
• O algoritmo de roteamento é a parte do software da camada de rede que decide sobre a interface de saída a ser utilizada na transmissão de um pacote de entrada;
• O roteamento é o processo de preenchimento e atualização de tabelas de roteamento contidas em cada roteador;
• O encaminhamento é o processo que trata a chegada de cada pacote, consultando a tabela de roteamento e direcionando-o através da interface de saída (definida previamente pelo roteamento).
Algoritmos de roteamento
14
Introdução
• Algoritmos de roteamento podem ser classificados em:
• Não adaptativos (roteamento estático):
• A escolha das rotas é previamente calculada na inicialização da rede;
• Não responde bem a falhas;
• Mais útil quando a escolha de rotas é óbvia (ex. apenas uma opção);
• Adaptativos (roteamento dinâmico):
• Alteram as decisões de roteamento para refletir mudanças de topologia e tráfego;
Algoritmos de roteamento
15
O princípio da otimização
• Caso o roteador J esteja no caminho ótimo entre I e K, então o caminho ótimo entre J e K também está na mesma rota;
• O conjunto de rotas ideais de todas as origens para determinado destino formam uma árvore denominada árvore de escoamento;
• Como se trata de uma árvore, não contém loops, assim um pacote será entregue dentro de um limite finito de hops.
(a) Uma rede. (b) A árvore de escoamento para o roteador B.
Algoritmos de roteamento
16
Roteamento pelo caminho mais curto
• Técnica simples para obter caminhos ideais a partir de uma imagem da rede;
• A partir de um grafo da rede (nós representam hosts e arestas representam interfaces de ligação), aplica-se um algoritmo para encontrar o caminho mais curto entre dois hosts;
• Métricas possíveis (pesos das arestas):
• Número de hops;
• Distância física;
• Tempo de retardo;
• Etc...
Algoritmos de roteamento
17
Roteamento por inundação (Flooding)
• Cada pacote é enviado para cada interface de saída, exceto aquela pela qual ele chegou;
• Problema: muitos pacotes duplicados;
• O cabeçalho de cada pacote contém um contador de hops que é decrementado a cada hop, quando zerado o pacote é descartado;
• Para evitar transmitir pacotes mais de uma vez, pode ser acrescentado um número de sequência relacionado a cada origem;
• Utilidades:
• Pode ser eficiente quando existirem vários destinos;
• É robusto, pois geralmente encontra um caminho, podendo ser eficiente em situações de guerra ou catástrofes.
Algoritmos de roteamento
18
Roteamento por vetor de distâncias
• Cada roteador mantém uma tabela contendo a melhor distância até cada destino e qual interface deve ser utilizada;
• Estas tabelas são atualizadas com base na troca de informações com seus vizinhos;
• As métricas utilizadas são variadas;
• Também conhecido como algoritmo de Bellmand-Ford ou Ford-Fullkerson;
• Usado na ARPANET até 1979.
Algoritmos de roteamento
19
Roteamento por vetor de distâncias
• Processo de atualização:
(a) Topologia da rede.
(b) Entrada em A, I, H, K, e nova tabela de roteamento de J.
Algoritmos de roteamento
20
Roteamento por vetor de distâncias
• Problema da contagem ao infinito:
• O estabelecimento das rotas pela rede é chamado convergência;
• Apesar de convergir para a resposta correta, no roteamento por vetor de distâncias pode ser feito de forma lenta;
• “Notícias boas” se espalham rapidamente, as “más notícias” se propagam lentamente:
(a) A inicialmente está fora de funcionamento e reestabelece comunicação.
(b) A inicialmente está em funcionamento e perde a comunicação.
Algoritmos de roteamento
21
Roteamento de estado de enlace
• O roteamento por vetor de distância leva muito tempo para convergir (decorrência da contagem ao infinito);
• Assim, foi substituído por um novo algoritmo, o roteamento de estado de enlace;
• Nele, cada roteador realiza os seguintes passos:
1. Descobrir seus vizinhos e aprender seus endereços;
2. Medir a distância (ou custo) até cada um de seus vizinhos;
3. Criar um pacote contendo tudo que acabou de aprender;
4. Enviar este pacote e receber pacotes de todos os outros roteadores;
5. Calcular o caminho mais curto até cada um dos outros roteadores.
Algoritmos de roteamento
22
Roteamento de estado de enlace
1. Descobrir seus vizinhos e aprender seus endereços:
• Um pacote HELLO é enviado;
• Os vizinhos respondem com um identificador;
• Este identificador precisa ser exclusivo;
• Quando determinados roteadores estão conectados em broadcast a situação é um pouco mais complexa:
(a) Nove roteadores e uma LAN. (b) Grafo para a rede considerando um nó virtual N
para representar a LAN (um roteador da LAN é selecionado para representar N).
Algoritmos de roteamento
23
Roteamento de estado de enlace
2. Medir a distância (ou custo) até cada um de seus vizinhos:
• O custo pode ser definido automaticamente ou configurado pelo administrador da rede;
• Automaticamente:
• Um pacote especial ECHO/REPLAY é enviado e devolvido imediatamente;
• Com o tempo de ida e volta é possível estimar o custo;
• Manualmente:
• Um exemplo é utilizar valores inversamente proporcionais à largura de banda das conexões.
Algoritmos de roteamento
24
Roteamento de estado de enlace
3. Criar um pacote contendo tudo que acabou de aprender:
• Os pacotes devem conter: Identidade do transmissor, Número de sequência, Idade (TTL), Lista de vizinhos e seus custos;
• Quando criar estes pacotes?
• Periodicamente em intervalos regulares;
• Na ocorrência de eventos significativos.
(a) Rede. (b) Pacotes de estado de enlace para rede (a).
Algoritmos de roteamento
25
Roteamento de estado de enlace
4. Enviar este pacote e receber pacotes de todos os outros roteadores (1):
• Parte mais complicada do algoritmo, todos os roteadores precisam receber os pacotes de estado de enlace de forma rápida e confiável;
• Algoritmo mais básico: Inundação;
• É feito o controle de roteadores e números de sequência;
• Para não haver repetição de número de sequência usa 32 bits;
• Problemas:
• Falha do roteador e reinício da numeração;
• Erro (adulteração) do número de sequência;
Algoritmos de roteamento
26
Roteamento de estado de enlace
4. Enviar este pacote e receber pacotes de todos os outros roteadores (2):
• Solução: incluir a “idade” (TTL) do pacote;
• Ele é decrementado a cada segundo, quando chega a 0 os dados do roteador são descartados;
• Aprimoramentos:
• Retenção do pacote de estado de enlace;
• Confirmação dos pacotes de estado.
Algoritmos de roteamento
27
Roteamento de estado de enlace
5. Calcular o caminho mais curto até cada um dos outros roteadores:
• A partir dos pacotes de estado é possível criar o grafo da subrede;
• Executa-se então o algoritmo de Dijkstra localmente;
• Memória necessária: ordem de K * N (K vizinhos e N roteadores).
Algoritmos de roteamento
28
Roteamento hierárquico
• Com o aumento do tamanho das redes, a quantidade de recursos necessários para o roteamento também crescem;
• Uma estratégia a ser usada é a segmentação da rede em regiões, originando o roteamento hierárquico;
• Isso pode acarretar em um aumento do comprimento do trajeto, mas pesquisas apontam para que esta perda não seja tão impactante;
• O número ideal de níveis para uma rede de N roteadores é ln N, exigindo e ln N entradas por roteador na tabela de roteamento;
Algoritmos de roteamento
29
Roteamento hierárquico
• Exemplo de roteamento em uma hierarquia de dois níveis com cinco regiões:
Algoritmos de roteamento
30
Roteamento por broadcast
• Em algumas aplicações os hosts necessitam enviar mensagens a muitos ou a todos os outros hosts;
• O envio para todos os outros hosts é denominado broadcast;
• Existem vários métodos;
• N mensagens (1 para cada destino);
• Roteamento para vários destinos;
• Inundação;
• Encaminhamento pelo caminho inverso (vide figura no próximo slide).
Algoritmos de roteamento
31
Roteamento por broadcast
• Encaminhamento pelo caminho inverso:
Encaminhamento pelo caminho inverso. (a) Rede. (b) Árvore de escoamento
associada ao roteador I. (c) Árvore a partir do encaminhamento inverso.
Algoritmos de roteamento
32
Roteamento por multicast
• Em determinadas aplicações é necessário enviar mensagens para vários receptores;
• Quando o número de receptores é muito grande o roteamento por broadcast pode ser uma boa alternativa;
• Por outro lado, quando ele for muito pequeno, enviar uma mensagem para cada receptor pode ser uma boa alternativa;
• Entretanto, quando este número não é grande ou pequeno o suficiente para as duas alternativas anteriores, um outro tipo de estratégia se torna necessária => Roteamento por multicast.
Algoritmos de roteamento
33
Roteamento por multicast
• Para a realização do multcasting é necessário fazer o gerenciamento dos grupos;
• Usaremos como premissa que o roteador sabe a que grupo pertence cada host;
• Cada roteador calcula uma árvore de multicasting;
• O encaminhamento pode ser feito realizando “podas”;
Algoritmos de roteamento
34
Roteamento por multicast
• Exemplo:
(a) Rede. (b) Spanning tree para o roteador mais à esquerda.
(c) Árvore multicast para o grupo 1. (d) Árvore multicast para o grupo 2.
Algoritmos de roteamento
35
Roteamento por anycast
• Um pacote é entregue ao membro mais próximo de um grupo => Roteamento por anycast;
• Usado no DNS (protocolo da camada de aplicação);
• Não necessita um esquema novo para o roteamento, vetor de distância e estado de enlace podem ser usados;
• Todos os nós de um grupo receberão o mesmo identificador;
• Ressalva para estado de enlace: identificadores de grupos devem ser usados apenas como destinos finais;
Algoritmos de roteamento
36
Roteamento para dispositivos móveis
• Muitas pessoas utilizam dispositivos conectados enquanto viajam ou se locomovem;
• Hosts móveis:
• Dispositivos sem fio em carros em movimento;
• Celulares com acesso a redes;
• Notebooks utilizados em “trânsito”;
• Poderíamos simplesmente utilizar os algoritmos vistos anteriormente, atualizado as tabelas de roteamento à medida que o host se movimenta;
• O número de hosts móveis vem crescendo rapidamente e a as atualizações necessárias começam a se tornar impeditivas.
Algoritmos de roteamento
37
Roteamento para dispositivos móveis
• Outra alternativa é oferecer mobilidade acima da camada de rede;
• Normalmente ocorre com os notebooks;
• Em cada local eles adquirem novo endereço;
• Não se faz a associação entre os diferentes endereços;
• Outra ideia, envolvendo a camada de redes:
• Usada na Internet e em redes de celulares;
• O host móvel informa a um host local (agente local) onde ele está naquele instante;
• Como o agente local deverá sempre saber onde o host móvel se encontra, ele pode ser utilizado para manter a comunicação entre outros hosts e o host móvel;
• Tunelamento: o agente local recebe um pacote destinado ao host móvel, encapsula este pacote em um novo pacote enviando-o ao host móvel;
Algoritmos de roteamento
38
Roteamento para dispositivos móveis
• Roteamento de pacotes para dispositivos móveis:
Algoritmos de roteamento
39
Roteamento em redes ad hoc
• Vimos como realizar roteamento para hosts móveis e roteadores fixos no roteamento para dispositivos móveis;
• Uma situação ainda mais extrema envolve também roteadores móveis. Ex.:
• Trabalhos emergenciais em áreas de catástrofes naturais;
• Veículos militares em campos de batalha;
• Um grupo de pessoas com notebooks em uma área sem instalações 802.11;
• Nestas situações, cada nó constitui um host e um roteador, e a rede é denominada rede ad hoc ou MANET (Mobile Ad Hoc NETworks).
Algoritmos de roteamento
40
Roteamento em redes ad hoc
• Vários algoritmos foram propostos: • AODV (Ad Hoc On-demand Distance Vector);
• DSR (Dynamic Source Routing);
• GPSR (Greed Perimeter Stateless Routing);
• No AODV as rotas são calculadas sob demanda, ou seja, apenas quando são necessárias;
• Duas tarefas essenciais são realizadas: • Descoberta de rota (figura no próximo slide);
• Manutenção de rota:
• Cada nó envia um pacote Hello, aos vizinhos;
• Ausência de resposta indica que não está mais ao alcance, as rotas que o utilizam são eliminadas;
Algoritmos de roteamento
41
Roteamento em redes ad hoc
• Descoberta de rota de A para I:
(a) Área de broadcast de A.
(b) Após B e D receberem.
(c) Após C, F e G receberem.
(d) Após E, H e I receberem.
Os nós sombreados são os novos nós receptores.
As linhas tracejadas são possíveis rotas inversas.
As linhas contínuas corresponde à rota descoberta.
Algoritmos de roteamento
42
ALGORITMOS DE CONTROLE DE CONGESTIONAMENTO
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
43
Tópicos
• Introdução;
• Roteamento com conhecimento do tráfego;
• Controle de acesso;
• Controle de tráfego;
• Corte de carga.
Algoritmos de controle de congestionamento
44
Introdução
• Quando há um número excessivo de pacotes trafegando pela rede podem ocorrer atrasos ou perdas que prejudicam seu desempenho;
• Este estado da rede é denominado Congestionamento;
• As camadas de rede e transporte possuem responsabilidades de lidar com congestionamento;
Algoritmos de controle de congestionamento
45
Introdução
• Colapso de Congestionamento:
Algoritmos de controle de congestionamento
46
Introdução
• Controle de Congestionamento v.s. Controle de Fluxo:
• Controle de Congestionamento:
• Garantia de que a rede seja capaz de transportar o tráfego oferecido;
• É uma questão global, envolvendo o comportamento de toda a rede;
• Controle de Fluxo:
• Está relacionado ao tráfego entre um transmissor em particular e um receptor em particular;
• Garantia de que um transmissor rápido não transmita dados numa velocidade maior do que o receptor seja capaz de tratá-los.
Algoritmos de controle de congestionamento
47
Introdução
• Duas formas de tratar o congestionamento:
• Aumentar os recursos;
• Reduzir a carga;
• Escalas de tempo para impedir o congestionamento:
48
Algoritmos de controle de congestionamento
Roteamento com conhec. do tráfego
• Os algoritmos de roteamento vistos anteriormente levam em consideração apenas pesos fixos para as arestas;
• Outros fatores (variáveis) podem ser levados em consideração:
• Carga (número de pacotes);
• Atraso de propagação;
• Atraso médio de enfileiramento;
• Assim, caminhos com menor peso favorecerão caminhos menos carregados.
Algoritmos de controle de congestionamento
49
Controle de acesso
• Técnica usada em redes de circuitos virtuais;
• A ideia é simples: não monte um novo circuito virtual a menos que a rede possa transportar o tráfego adicional sem ficar congestionada;
• Assim, a tarefa é estimar quantos circuitos caberão dentro da capacidade da rede sem causar congestionamento.
50
Algoritmos de controle de congestionamento
Controle de acesso
• O controle de acesso pode ser combinado ao roteamento com conhecimento de tráfego:
• Considera-se rotas em torno dos pontos críticos como parte do estabelecimento de uma conexão;
(a) Rede congestionada. (b) Parte da rede sem congestionamento.
Circuito virtual existente entre A e B.
51
Algoritmos de controle de congestionamento
Controle de tráfego
• Outra estratégia para contornar o congestionamento é fazer com que os transmissores reduzam suas transmissões em situações críticas (prevenção de congestionamento);
• Dois problemas precisam ser resolvidos (1):
• Determinar quando o congestionamento é iminente;
• Os roteadores precisam notificar os transmissores que estejam causando o congestionamento em tempo hábil.
52
Algoritmos de controle de congestionamento
Controle de tráfego
• Dois problemas precisam ser resolvidos (2):
• Determinar quando o congestionamento é iminente:
• Monitoramento dos recursos da rede:
• Médias de utilização dos enlaces de saída;
• Enfileiramento de pacotes em buffer;
• Número de pacotes perdidos em função de buffering insuficiente;
• Os roteadores precisam notificar os transmissores que estejam causando o congestionamento em tempo hábil.
53
Algoritmos de controle de congestionamento
Controle de tráfego
• Dois problemas precisam ser resolvidos (3):
• Determinar quando o congestionamento é iminente;
• Os roteadores precisam notificar os transmissores que estejam causando o congestionamento em tempo hábil:
• Os roteadores precisam identificar os transmissores corretos e notificá-los sem sobrecarregar uma rede que já está congestionada (ou prestes a ficar);
• Estratégias:
• Pacotes Reguladores;
• Pacotes reguladores Hop a Hop;
• Notificação explícita de congestionamento.
54
Algoritmos de controle de congestionamento
Controle de tráfego
• Pacotes reguladores:
(a) Um pacote regulador que afeta apenas a origem. (b) Um pacote regulador que afeta cada hop pelo qual passa.
55
Algoritmos de controle de congestionamento
Controle de tráfego
• Notificação explícita de congestionamento:
• Não envia pacotes adicionais;
• Ao invés disso, “marca” um pacote que ao chegar ao destino será utilizado para alertar a necessidade de notificação ao transmissor;
• A notificação será então adicionada em um pacote de resposta do receptor ao transmissor;
56
Algoritmos de controle de congestionamento
Controle de carga
• Quando os roteadores estão inundados de pacotes que não podem manipular, eles simplesmente os descarta;
• Quais pacotes descartar?
• Vinho: quanto mais velho melhor:
• Ex.: Transferência de arquivo;
• Leite: quanto mais novo melhor:
• Ex.: Mídia em tempo real;
• Prioridade:
• Ex.: Pacotes com informações de roteamento são mais importantes que pacotes de dados;
• A próprias aplicações podem marcar seus pacotes com uma indicação de sua importância; Como garantir idoneidade?
• Detecção Aleatória Prematura; 57
Algoritmos de controle de congestionamento
QUALIDADE DE SERVIÇO
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
58
Tópicos
• Introdução;
• Requisitos da aplicação;
• Modelagem de tráfego;
• Listagem de pacotes;
• Controle de acesso;
• Serviços integrados;
• Serviços diferenciados.
Qualidade de serviço
59
Introdução
• As técnicas anteriores foram projetadas para reduzir o congestionamento e melhorar o desempenho da rede;
• Algumas aplicações exigem garantia de desempenho mais altas do que o melhor que se pode fazer em um momento;
• A atenção agora está em oferecer uma qualidade de serviço adequada às necessidades das aplicações.
Qualidade de serviço
60
Introdução
• Um solução seria a sobreposição: montar uma rede com capacidade suficiente para qualquer tráfego exigido dela;
• Entretanto, esta solução é muito cara, além de ser dependente de estimativas de tráfego futuro (se o padrão mudar ela pode não atender mais);
• Os mecanismos de qualidade de serviço permitem que uma rede com menos capacidade atenda aos requisitos da aplicação da mesma forma.
Qualidade de serviço
61
Introdução
• Quatro aspectos devem ser resolvidos para garantir a qualidade de serviço:
1. Quais aplicações da rede são necessárias;
2. Como regular o tráfego que entra na rede;
3. Como reservar recursos nos roteadores para garantir desempenho;
4. Se a rede pode aceitar mais tráfego com segurança.
Qualidade de serviço
62
Requisitos da aplicação
• Uma sequência de pacotes de uma origem para um destino é denominada fluxo;
• Não confundir fluxo com rota;
• Quatro parâmetros podem caracterizar as necessidades de um fluxo:
1. Largura de banda;
2. Atraso;
3. Flutuação (variação do atraso);
4. Perda;
• Estes parâmetros definem o QoS (Quality of Service) para o fluxo.
Qualidade de serviço
63
Requisitos da aplicação
• Rigidez de requisitos de QoS de diferentes aplicações:
Qualidade de serviço
64
Aplicação Largura de Banda Atraso Flutuação Perda
Correio eletrônico Baixa Baixa Baixa Média
Transf. de arquivos Alta Baixa Baixa Média
Acesso à Web Média Média Baixa Média
Login remoto Baixa Média Média Média
Áudio por demanda Baixa Baixa Alta Baixa
Vídeo por demanda Alta Baixa Alta Baixa
Telefonia Baixa Alta Alta Baixa
Videoconferência Alta Alta Alta Baixa
Requisitos da aplicação
• Categorias de suporte a QoS:
1. Taxa de bits constante:
• Largura de banda e atraso uniformes;
• Ex.: telefonia;
2. Taxa de bits variável de tempo real:
• Quando os pacotes podem variar em tamanho (compactação de vídeo por exemplo);
• Ex.: Videoconferência;
3. Taxa de bits variável não de tempo real:
• Pacotes podem variar de tamanho mas não exige tempo real;
• Ex.: Streamming de vídeo;
4. Taxa de bits disponível:
• Aplicações não sensíveis a atraso ou flutuação;
• Ex.: Correio eletrônico.
Qualidade de serviço
65
Modelagem de tráfego
• Em redes de dados o tráfego é caracterizado por rajadas, que são mais difíceis de lidar do que redes de tráfego constante;
• As rajadas podem encher os buffers e causar perdas de pacotes;
• A modelagem de tráfego é uma técnica relacionada à regulagem da taxa média de fluxo de dados que entra na rede;
• Quando um fluxo é configurado o usuário e a rede concordam com um determinado padrão de tráfego:
• Acordo de nível de serviço – SLA (Service Level Agreement);
• Os pacotes que excedem o padrão acordado podem ser descartados ou serem marcados com baixa prioridade;
• O monitoramento do fluxo é denominado controle de tráfego;
Qualidade de serviço
66
Modelagem de tráfego
• Algoritmos Leaky e Token bucket:
(a) Modelagem de pacotes. (b) Leaky bucket. (c) Token bucket. 67
Qualidade de serviço
Listagem de pacotes
• Para oferecer garantia de desempenho é necessário reservar recursos suficientes ao longo da rota percorrida pelos pacotes;
• Para isso, deve-se considerar que todos os pacotes de um fluxo seguem uma rota fixa:
• É difícil garantir qualidade se os pacotes percorrem rotas diferentes;
• Desta forma, algo semelhante a um circuito virtual será feito para todos os pacotes de um fluxo.
Qualidade de serviço
68
Listagem de pacotes
• Os algoritmos que realizam a tarefa de alocar recursos de roteadores para os fluxos de pacotes são denominados algoritmos de escalonamento de pacotes;
• Três tipos de recursos podem ser reservados:
1. Largura de banda;
2. Espaço em buffer;
3. Ciclos de CPU.
Qualidade de serviço
69
Listagem de pacotes
• Algoritmo de enfileiramento ordenado com rodízio de filas:
• Problemas:
• Oferece mais largura de banda para pacotes maiores;
• Todos os hosts possuem a mesma prioridade.
Qualidade de serviço
70
Listagem de pacotes
• Algoritmo de enfileiramento ordenado com rodízio de filas ponderado (WFQ – Weighted Fair Queueing):
• Rodízio é byte a byte e não pacote a pacote;
• Hosts com maior prioridade podem transmitir mais bytes.
(a) Rodízio de filas ponderado. (b) Tempo final dos pacotes.
Qualidade de serviço
71
Controle de acesso
• Até aqui estudamos elementos necessários para a QoS, agora é hora de reuni-los para realmente oferecer QoS;
• No controle de acesso para regular o congestionamento procurávamos uma garantia de desempenho, mesmo que fraca;
• Agora, no controle de acesso para QoS as garantias são mais fortes:
• O usuário fornece à rede um fluxo com um requisito de QoS desejado (especificação de fluxo):
• Taxa e tamanho de token bucket;
• Taxa de dados de pico;
• Tamanho mínimo e máximo de pacote.
Qualidade de serviço
72
Controle de acesso
• As reservas de recursos devem ser feitas em toda a rota;
• Muitos algoritmos de roteamento encontram o melhor caminho entre uma origem e destino e direciona todo o tráfego por ele;
• Muitos fluxos podem ser rejeitados por não haver recursos de reserva suficientes para atender o fluxo pelo melhor caminho;
• Roteamento por QoS: definir rotas diferentes que tenham capacidade de sobra para atender aos fluxos.
Qualidade de serviço
73
Controle de acesso
• Algumas aplicações podem flexibilizar a especificação de fluxo:
• Exemplo: Uma aplicação de streaming de vídeo que normalmente utiliza 30 quadros/segundo pode reduzir a taxa do vídeo para 25 quadros por segundo caso a rede não possua recursos suficientes;
• Negociação de fluxo:
• Envolvidos: transmissor, receptor e roteadores intermediários;
• O transmissor prepara uma especificação de fluxo e o propaga através da rota;
• Cada roteador avalia e modifica os parâmetros conforme sua capacidade;
• Quando a especificação chega à outra extremidade os parâmetros podem ser estabelecidos.
Qualidade de serviço
74
Serviços integrados
• Surgiram por iniciativa da IETF (Internet Engineering Task Force), nas RFCs 2205 a 2212 para a criação de uma arquitetura para streaming de multimídia;
• Tinha como foco aplicações unicast e multicast;
• Protocolo RSVP (Resource reSerVation Protocol) (1):
• Parte principal da arquitetura;
• Trata-se de um protocolo de reserva de recursos;
• Utiliza roteamento multicast com spanning trees;
Qualidade de serviço
75
Serviços integrados
• Protocolo RSVP (Resource reSerVation Protocol) (2):
• Uma rede em que 1 e 2 são transmissores e 3, 4 e 5 são receptores:
(a) Rede. (b) A spanning tree multicast para o host 1.
(c) A spanning tree multicast para o host 2.
Qualidade de serviço
76
Serviços integrados
• Protocolo RSVP (Resource reSerVation Protocol) (3):
• Processo de reserva:
(a) O host 3 solicita um canal para o host 1.
(b) O host 3 então solicita um canal para o host 2.
(c) O host 5 solicita um canal para o host 1.
Qualidade de serviço
77
Serviços diferenciados
• Os algoritmos baseados em fluxo têm uma desvantagem por necessitar realizar uma configuração antecipada para estabelecer cada fluxo;
• Quando existem muitos fluxos este problema é potencializado;
• Assim, a IETF procurou uma alternativa para resolver esta questão;
• Surgiram os Serviços Diferenciados (SD), descritos nas RFCs 2474, 2475, e outras.
Qualidade de serviço
78
Serviços diferenciados
• Esta técnica é conhecida como QoS baseada em classe;
• Um conjunto de classes de serviço são definidas com regras de encaminhamento correspondentes;
• Um cliente utilizando o DS terá seus pacotes marcados com a classe correspondente;
• A reserva de recursos é feita para uma classe de pacotes;
• O tráfego de uma classe deve seguir uma forma específica.
Qualidade de serviço
79
Serviços diferenciados
• A IETF definiu alguns gerenciamentos de classes independentes:
• Encaminhamento Expresso:
• Duas classes:
• Pacotes Expressos;
• Pacotes Regulares;
• Encaminhamento Garantido:
• Quatro classes de prioridades;
• Três classes de descarte de pacotes que estejam sofrendo congestionamento;
• Doze combinações (classes de serviço).
Qualidade de serviço
80
Serviços diferenciados
• Encaminhamento Expresso:
Qualidade de serviço
81
Serviços diferenciados
• Encaminhamento Garantido:
Qualidade de serviço
82
INTERLIGAÇÃO DE REDES
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
83
Tópicos
• Introdução;
• Como as redes podem ser conectadas;
• Tunelamento;
• Roteamento entre redes;
• Fragmentação de pacotes.
Interligação de redes
84
Introdução
• Existem diversas redes diferentes;
• Como interligá-las para formar uma rede interligada, ou seja, uma internet (com “i” minúsculo)?
• Como as redes interligadas normalmente diferem em aspectos importantes, levar pacotes de uma rede para outra nem sempre é fácil;
• Quais são as principais diferenças?
Interligação de redes
85
Introdução
• Exemplos de diferenças entre redes:
• Endereçamento;
• Orientada a conexão ou não;
• QoS v.s. Melhor esforço;
• Mecanismos de segurança;
• Nos próximos tópicos algumas estratégias para interligar diferentes redes.
Interligação de redes
86
Como as redes podem ser conectadas
• Duas escolhas básicas:
1. Criar dispositivos que traduzam ou convertam pacotes de cada tipo em pacotes para outra rede;
2. Acrescentar uma camada de abstração, criando uma camada comum em cima das diferentes redes;
• A segunda opção tem sido tremendamente bem sucedida, a camada proposta foi separada nos protocolos TCP e IP;
• O IP está na camada de rede e o TCP está na camada de transporte.
Interligação de redes
87
Como as redes podem ser conectadas
• Uma rede interligada:
(a) Pacote cruzando diferentes redes. (b) Rede interligada
e processamento de protocolo da camada de enlace.
• MPLS (Multi Protocol Label Switching): rede orientada a conexões.
Interligação de redes
88
Como as redes podem ser conectadas
• Este tipo de interligação é eficiente quando existe uma camada de rede comum entre as redes;
• Exemplos:
• IP, é o protocolo de rede quase universal;
• Outros protocolos: IPX, SNA e AppleTalk;
• As versões do IP: IPv4 e IPv6, são incompatíveis;
• Um roteador capaz de lidar com vários protocolos de rede é denominado roteador multiprotocolo.
Interligação de redes
89
Tunelamento
• É uma alternativa eficiente quando os hosts de origem e destino estão em um mesmo tipo de rede, mas estão separados por um tipo diferente;
• Túnel entre Paris e Londres:
90
Interligação de redes
Roteamento entre redes
• Deferentes redes podem utilizar algoritmos de roteamento distintos, e incompatíveis (estratégias, pesos, etc...);
• Isso leva à necessidade de um roteamento em dois níveis: • Protocolo de Gateway Interior, intradomínio;
• Protocolo de Gateway Exterior, interdomínio;
• “Gateway”: termo mais antigo para roteador;
• Na Internet o protocolo interdomínio é chamado BGP (Border Gateway Protocol);
• Como uma rede opera de forma independente das demais, ela é denominada de sistema autônimo, ou AS (Autonomous System).
91
Interligação de redes
Fragmentação de pacotes
• Cada rede (ou enlace) impõe um tamanho máximo de pacote devido a uma variedade de motivos:
1. Hardware
2. Sistema operacional
3. Protocolos
4. Adequação aos padrões (inter)nacionais
5. Redução nas retransmissões devido a erros
6. Impedir que pacotes ocupem o canal por muito tempo
• Esse tamanho de pacote é denominado unidade máxima de transmissão do caminho, ou Path MTU (Path Maximum Transmission Unit);
• Como interligar redes com tamanhos MTUs diferentes? 92
Interligação de redes
Fragmentação de pacotes
• Uma solução é o uso de fragmentação:
(a) Fragmentação aparente. (b) Fragmentação não aparente.
93
Interligação de redes
Fragmentação de pacotes
• A fragmentação apresenta alguns problemas:
• Overhead introduzido com a fragmentação;
• Um pacote inteiro pode ser perdido se apenas um de seus fragmentos for perdido;
• Pode ser um peso a mais para os hosts;
• Uma solução é eliminar a fragmentação, usando a descoberta da MTU do caminho:
94
Interligação de redes
A CAMADA DE REDE DA INTERNET
Questões de projeto;
Algoritmos de roteamento;
Algoritmos de controle de congestionamento;
Qualidade de serviço;
Interligação de redes;
A camada de rede da Internet.
95
Tópicos
• Introdução;
• Protocolo IPv4;
• Protocolo IPv6;
• Protocolos de controle;
• Protocolos de roteamento.
A camada de rede da Internet
96
Introdução
• A camada de rede da Internet pode ser vista como um conjunto de subredes, ou sistemas autônomos (AS), conectados entre si;
• Existem diversos backbones construídos a partir de linhas de grande largura de banda e roteadores rápidos;
• Conectados aos backbones estão os ISPs (Internet Service Providers) que oferecem acesso à Internet para residências e empresas.
A camada de rede da Internet
97
Introdução
• Esquema da estrutura da Internet:
A camada de rede da Internet
98
Protocolo IPv4
• Elemento que mantém a Internet unida;
• Foi projetado desde o início tendo como objetivo a interligação de redes;
• Um datagrama IPv4 consiste de uma parte de cabeçalho e uma parte de dados;
A camada de rede da Internet
99
Protocolo IPv4
• O cabeçalho IPv4:
• Possui uma parte de tamanho fixo de 20 bytes e uma parte opcional de tamanho variado;
A camada de rede da Internet
100
Protocolo IPv4
• O cabeçalho IPv4:
• Versão (4 bits):
• Indica o número da versão corrente;
• A versão 4 é largamente utilizada.
A camada de rede da Internet
101
Protocolo IPv4
• O cabeçalho IPv4:
• IHL (4 bits):
• Indica o tamanho do cabeçalho em palavras de 32 bits;
• O tamanho mínimo é 5 (nenhuma opção presente);
• O tamanho máximo é 15 (60 bytes, sendo 40 para opções).
A camada de rede da Internet
102
Protocolo IPv4
• O cabeçalho IPv4:
• Serviços diferenciados (6 bits):
• Utilizado para distinguir diferentes classes de serviços;
• Possibilita diferentes combinações de confiabilidade e velocidade.
A camada de rede da Internet
103
Protocolo IPv4
• O cabeçalho IPv4:
• Tamanho total (16 bits):
• Tamanho em bytes de todo o pacote (cabeçalho + dados);
• Valor máximo 65.535.
A camada de rede da Internet
104
Protocolo IPv4
• O cabeçalho IPv4:
• Identificação (16 bits), DF (1 bit), MF (1 bit) e Deslocamento de Fragmento (13 bits) :
• Utilizados na fragmentação e remontagem de pacotes;
• DF: não fragmentar (utilizado para descoberta de MTU);
• MF: Mais fragmentos (todos exceto o último são marcados).
A camada de rede da Internet
105
Protocolo IPv4
• O cabeçalho IPv4:
• Tempo de vida (TTL) (8 bits) :
• Contador de hops utilizado para limitar a vida útil dos pacotes;
• Quando chega a zero o pacote é descartado e um pacote de advertência é enviado ao computador de origem.
A camada de rede da Internet
106
Protocolo IPv4
• O cabeçalho IPv4:
• Protocolo (8 bits) :
• Indica o processo de transporte para o qual o datagrama deve ser entregue no destino (normalmente TCP ou UDP).
A camada de rede da Internet
107
Protocolo IPv4
• O cabeçalho IPv4:
• Checksum do cabeçalho (16 bits) :
• Para validação do cabeçalho;
• Deve ser calculado para cada hop pois ao menos o TTL é alterado em cada roteador.
A camada de rede da Internet
108
Protocolo IPv4
• O cabeçalho IPv4:
• Endereços de origem e destino (32 bits cada) :
• Endereços IP dos hosts de origem e destino.
A camada de rede da Internet
109
Protocolo IPv4
• O cabeçalho IPv4:
• Opções (tamanho variável) :
• Mecanismo para permitir inserir informações inexistentes no projeto original.
A camada de rede da Internet
110
Protocolo IPv4
• Endereços IP (1):
• Cada host e roteador na Internet tem um endereço IP que pode ser usado nos campos origem e destino;
• O endereço está na verdade associado a uma interface de rede, assim, se um host ou roteador pode estar ligado a mais de uma rede e possuir mais de um endereço;
• A distribuição dos endereços é feita pela ICANN;
• São escritos em notação decimal separados por ponto:
• Ex.: 128.208.2.151.
A camada de rede da Internet
111
Protocolo IPv4
• Endereços IP (2):
• Cada endereço de 32 bits é composto de uma parte para a identificação da rede e uma parte para a identificação do host;
• O número de bits utilizados para a parte da rede é representado no final do endereço separado por uma barra:
• Ex.: 128.208.0.0/24 (24 bits para a parte da rede);
A camada de rede da Internet
112
Protocolo IPv4
• Endereços IP (3):
• Para facilitar o gerenciamento de IPs, uma rede pode ser subdividida em subredes:
A camada de rede da Internet
113
Subrede Endereço
Ciência da Computação 10000000.11010000.1XXXXXXX.XXXXXXXX
Engenharia Elétrica 10000000.11010000.00XXXXXX.XXXXXXXX
Artes 10000000.11010000.011XXXXX.XXXXXXXX
Protocolo IPv4
• Endereços IP (4):
• Os endereços IP são escassos, um endereço “/16” fornece um número de 65.534 hosts;
• Se um ISP tiver um número superior de clientes ele terá um sério problema;
• Uma estratégia para contornar este problema é não fornecer IPs fixos para seus clientes, ou seja, ao se conectar o cliente recebe um IP, após a conexão se tornar inativa este IP poderá ser atribuído a outro cliente;
• Ainda assim existe uma séria limitação.
A camada de rede da Internet
114
Protocolo IPv4
• Endereços IP (5):
• Uma solução melhor é o NAT (Network Address Translation);
• Cada empresa possui um IP único;
• Cada host possui um IP específico (usado internamente):
• 10.0.0.0 a 10.255.255.255/8 (16.777.216 hosts);
• 172.10.0.0 a 172.31. 255.255/12 (1.048.576 hosts);
• 192.168.0.0 a 192.168. 255.255/16 (65.536 hosts);
• Para tráfego externo é feita uma tradução de endereços;
A camada de rede da Internet
115
Protocolo IPv6
• Os últimos endereços IPv4 estão prestes a serem distribuídos;
• Antecipando este problema e visando solucionar outras deficiências do IPv4, a IETF, desde 1990 começou a trabalhar em uma nova versão do IP, o IPv6;
• Principais objetivos do IPv6 (1):
• Suporte a bilhões de hosts;
• Redução das tabelas de roteamento;
• Protocolo simplificado;
• Melhoria na segurança; 116
A camada de rede da Internet
Protocolo IPv6
• Principais objetivos do IPv6 (2):
• Cuidado com o tipo de serviço;
• Auxílio ao multicasting;
• Deslocamento de hosts sem alteração do IP;
• Possibilidade de evolução do protocolo;
• Coexistência entre protocolos antigos e novos;
• Entretanto, apesar de implementado, o IPv6 ainda não se popularizou, sendo usado por aproximadamente 1% da Internet.
117
A camada de rede da Internet
Protocolos de controle
• Além do IP, a Internet possui outros protocolos usados na camada de rede, exemplos:
• ICMP (Internet Control Message Protocol);
• ARP (Address Resolution Protocol);
• DHCP (Dynamic Host Configuration Protocol);
• Veremos algumas características destes protocolos para suas versões correspondentes ao IPv4;
• ICMP e DHCP possuem versões semelhantes para o IPv6, e o correspondente ao ARP é o NDP (Neighbor Discovery Protocol). 118
A camada de rede da Internet
Protocolos de controle
• ICMP (Internet Control Message Protocol) (1):
• A operação da Internet é monitorada pelos roteadores, quando algo inesperado ocorre durante o processamento de um pacote o transmissor será notificado através do protocolo de mensagem de controle, o ICMP;
• Também é usado para realização de testes da rede;
• Existem cerca de 12 tipos de mensagens ICMP;
• Cada mensagem é encapsulada e transmitida em um pacote IP;
• As mais importantes são apresentadas no quadro a seguir;
119
A camada de rede da Internet
Protocolos de controle
• ICPM (Internet Control Message Protocol) (2):
• Principais tipos de mensagem:
• Uma lista completa pode ser obtida em:
• http://www.iana.org/assignments/icmp-parameters/
120
A camada de rede da Internet
Tipo de Mensagem Descrição
Destination unreachable O pacote não pode ser entregue.
Time exceed O campo TTL atingiu 0.
Parameter problem Campos de cabeçalho inválido.
Source quench Restringe o envio de pacotes.
Redirect Ensina uma rota a um roteador.
Echo e Echo reply Verificam se uma máquina está ativa.
Timestamp request/reply O mesmo que Echo, mas com o registro de tempo.
Router advertisement/solicitation
Encontra um roteador próximo.
Protocolos de controle
• ARP (Address Resolution Protocol):
• O hardware na camada de enlace não reconhece endereços IP;
• Como mapear endereços IP para endereços NIC (Network Interface Cards)?
121
A camada de rede da Internet
Protocolos de controle
• DHCP (Dynamic Host Configuration Protocol):
• Quando um computador é iniciado, ele já possui seu NIC, mas ainda não possui um IP;
• Permite atribuir um endereço IP automaticamente;
• Para isso:
• O ARP envia um pacote DHCP DISCOVER em broadcast;
• Quando o servidor DHCP recebe o pacote ele atribui um endereço IP livre e o envia ao host em um pacote DHCP OFFER;
• Para evitar que endereços IP sejam “perdidos”, é adotada uma estratégia de “aluguel” (leasing) do endereço IP.
122
A camada de rede da Internet
Protocolos de roteamento
• Na Internet existem diferentes protocolos para a realização de roteamento:
• MPLS (MultiProtocol Label Switching);
• OSPF (Open Shortest Path First);
• BGP (Border Gateway Protocol).
123
A camada de rede da Internet
Protocolos de roteamento
• MPLS (MultiProtocol Label Switching):
• O roteamento é feito com base em rótulos ao invés de ser pelo endereço IP;
• Com isso, fica bem próximo de um protocolo de comutação de circuitos;
• Definido pela IETF na RFC 3031;
124
A camada de rede da Internet
Protocolos de roteamento
• OSPF (Open Shortest Path First):
• Protocolo de Roteamento de Gateway Interior;
• Responsável pelo roteamento intradomínio;
• Utiliza estratégia de roteamento por estado de enlace;
• Realiza balanceamento de carga;
• Possui rápida adaptação a alterações de topologia;
• Definido pela IETF nas RFCs 1131 e 2328.
125
A camada de rede da Internet
Protocolos de roteamento
• BGP (Border Gateway Protocol):
• Protocolo de Roteamento de Gateway Exterior;
• Responsável pelo roteamento interdomínio;
• Possui preocupações políticas;
• Restrições podem ser definidas manualmente;
• Utiliza estratégia de roteamento por vetor de distância;
• Rotas que infringem alguma restrição assumem distância infinita;
• Não sofre com o problema de contagem ao infinito;
• A versão 4 é definida na RFC 4271.
126
A camada de rede da Internet
Fim!
REFERÊNCIAS: • A.S. TANENBAUM, Redes de Computadores, Prentice Hall, 5a.
edição, 2011;
• Materiais didáticos dos professores:
• Rande A. Moreira, UFOP / 2011-01 Disponível em: http://randearievilo.com.br/redes/ (acesso em 17/08/2011);
• Fátima Figueiredo, PUC Minas, não disponível on-line;
127