Camada BCC361 – Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação Nome 5 Aplicação 4 Transporte 3 Rede 2 Enlace 1 Física Prof. Reinaldo Silva Fortes www.decom.ufop.br/reinaldo 2012/02 Camada de Rede 1 Agenda • • • • • • Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. 2 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. INTRODUÇÃO 3 Introdução 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. 4 Introdução Objetivos • Camada de Enlace: move quadros de duas máquinas; • 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. 5 Introdução 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. 6 Introdução 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. 7 Introdução 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. 8 Introdução 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. 9 Introdução Serviços oferecidos • Datagramas v.s. Circuitos Virtuais (1): 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. Cada pacote é roteado independentemente. A rota é escolhida quando o circuito virtual é estabelecido; todos os pacotes seguem essa rota. Roteamento 10 Introdução Serviços oferecidos • Datagramas v.s. Circuitos Virtuais (2): Questão Efeitos de falhas no roteador Qualidade de serviço Controle de congestionamento Rede de Datagramas Rede de Circuitos Virtuais 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. Difícil. Fácil, se for possível alocar recursos suficientes com antecedência para cada circuito virtual. Difícil. Fácil, se for possível alocar recursos suficientes com antecedência para cada circuito virtual. 11 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. ALGORITMOS DE ROTEAMENTO 12 Algoritmos de roteamento 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. 13 Algoritmos de roteamento 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). 14 Algoritmos de roteamento 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; 15 Algoritmos de roteamento 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. 16 (a) Uma rede. (b) A árvore de escoamento para o roteador B. Algoritmos de roteamento 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... 17 Algoritmos de roteamento 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. 18 Algoritmos de roteamento 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. 19 Algoritmos de roteamento Roteamento por vetor de distâncias • Processo de atualização: 20 (a) Topologia da rede. (b) Entrada em A, I, H, K, e nova tabela de roteamento de J. Algoritmos de roteamento 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: 21 (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 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. 2. 3. 4. 5. Descobrir seus vizinhos e aprender seus endereços; Medir a distância (ou custo) até cada um de seus vizinhos; Criar um pacote contendo tudo que acabou de aprender; Enviar este pacote para todos e receber pacotes de todos os outros roteadores; Calcular o caminho mais curto até cada um dos outros roteadores. 22 Algoritmos de roteamento 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: 23 (a) Nove roteadores e uma LAN. (b) Grafo para a rede considerando um nó virtual N para representar a LAN (um roteador é selecionado para representar N). Algoritmos de roteamento 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. 24 Algoritmos de roteamento 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. 25 (a) Rede. (b) Pacotes de estado de enlace para rede (a). Algoritmos de roteamento 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; 26 Algoritmos de roteamento 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. 27 Algoritmos de roteamento 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). 28 Algoritmos de roteamento 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; 29 Algoritmos de roteamento Roteamento hierárquico • Exemplo de roteamento em uma hierarquia de dois níveis com cinco regiões: 30 Algoritmos de roteamento 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). 31 Algoritmos de roteamento Roteamento por broadcast • Encaminhamento pelo caminho inverso: (a) Rede. (b) Árvore de escoamento associada ao roteador I. (c) Árvore a partir do encaminhamento inverso. 32 Algoritmos de roteamento 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. 33 Algoritmos de roteamento 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”. 34 Algoritmos de roteamento 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. * Uma spanning tree é uma árvore que é um subconjunto da rede que inclui todos os roteadores mas não contém loop. Uma árvore de escoamento ou de encaminhamento inverso é uma spanning tree. 35 Algoritmos de roteamento 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. 36 Algoritmos de roteamento 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. 37 Algoritmos de roteamento 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. 38 Algoritmos de roteamento Roteamento para dispositivos móveis • Roteamento de pacotes para dispositivos móveis: 39 Algoritmos de roteamento 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). 40 Algoritmos de roteamento 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. 41 Algoritmos de roteamento 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 correspondem à rota descoberta. 42 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. ALGORITMOS DE CONTROLE DE CONGESTIONAMENTO 43 Algoritmos de controle de congestionamento Tópicos • • • • • Introdução; Roteamento com conhecimento do tráfego; Controle de acesso; Controle de tráfego; Corte de carga. 44 Algoritmos de controle de congestionamento 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; 45 Algoritmos de controle de congestionamento Introdução • Colapso de Congestionamento: 46 • Goodput é diferente de throughput, ele exclui os bits de overhead de protocolos. Assim, ele será sempre menor que o throughput. Algoritmos de controle de congestionamento 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. 47 Algoritmos de controle de congestionamento 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 sobrecarregados. 49 Algoritmos de controle de congestionamento 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; 51 (a) Rede congestionada. (b) Parte da rede sem congestionamento. Circuito virtual existente entre A e B. 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. * Das 3 alternativas a segunda é mais útil. A 1ª não está diretamente relacionada ao congestionamento, uma média de 50% de utilização do enlace pode ser pouco para um tráfego constante, mas pode ser muito para um tráfego altamente variável. Na 3ª o congestionamento já estará ocorrendo quando os pacotes forem perdidos. 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 (exemplos a seguir): • 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: 55 (a) Um pacote regulador que afeta apenas a origem. (b) Um pacote regulador que afeta cada hop pelo qual passa. 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 Corte 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 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. QUALIDADE DE SERVIÇO 58 Qualidade de serviço Tópicos • • • • • • • Introdução; Requisitos da aplicação; Modelagem de tráfego; Listagem de pacotes; Controle de acesso; Serviços integrados; Serviços diferenciados. 59 Qualidade de serviço 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. 60 Qualidade de serviço 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. 61 Qualidade de serviço Introdução • Quatro aspectos devem ser resolvidos para garantir a qualidade de serviço: 1. 2. 3. 4. Quais aplicações da rede são necessárias; Como regular o tráfego que entra na rede; Como reservar recursos nos roteadores para garantir desempenho; Se a rede pode aceitar mais tráfego com segurança. 62 Qualidade de serviço 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. 2. 3. 4. Largura de banda; Atraso; Flutuação (variação do atraso); Perda; • Estes parâmetros definem o QoS (Quality of Service) para o fluxo. 63 Qualidade de serviço Requisitos da aplicação • Rigidez de requisitos de QoS de diferentes aplicações: 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 64 Qualidade de serviço 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. 65 Qualidade de serviço 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; 66 Qualidade de serviço 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. 68 Qualidade de serviço 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. 2. 3. Largura de banda; Espaço em buffer; Ciclos de CPU. 69 Qualidade de serviço 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. 70 Qualidade de serviço 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. 71 (a) Rodízio de filas ponderado. (b) Tempo final dos pacotes. Qualidade de serviço 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. 72 Qualidade de serviço 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. 73 Qualidade de serviço 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. 74 Qualidade de serviço 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; 75 Qualidade de serviço 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: 76 (a) Rede. (b) A spanning tree multicast para o host 1. (c) A spanning tree multicast para o host 2. Qualidade de serviço Serviços integrados • Protocolo RSVP (Resource reSerVation Protocol) (3): • Processo de reserva: 77 (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 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. 78 Qualidade de serviço 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. 79 Qualidade de serviço 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). 80 Qualidade de serviço Serviços diferenciados • Encaminhamento Expresso: 81 Qualidade de serviço Serviços diferenciados • Encaminhamento Garantido: 82 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. INTERLIGAÇÃO DE REDES 83 Interligação de redes Tópicos • • • • • Introdução; Como as redes podem ser conectadas; Tunelamento; Roteamento entre redes; Fragmentação de pacotes. 84 Interligação de redes 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? 85 Interligação de redes 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. 86 Interligação de redes Como as redes podem ser conectadas • Duas escolhas básicas: 1. 2. Criar dispositivos que traduzam ou convertam pacotes de cada tipo em pacotes para outra rede; 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. 87 Interligação de redes 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. 88 Interligação de redes 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. 89 Interligação de redes 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ônomo, 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. 2. 3. 4. 5. 6. Hardware Sistema operacional Protocolos Adequação aos padrões (inter)nacionais Redução nas retransmissões devido a erros 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: 93 (a) Fragmentação transparente. (b) Fragmentação não transparente. 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 Introdução; Algoritmos de roteamento; Algoritmos de controle de congestionamento; Qualidade de serviço; Interligação de redes; A camada de rede da Internet. A CAMADA DE REDE DA INTERNET 95 A camada de rede da Internet Tópicos • • • • • Introdução; Protocolo IPv4; Protocolo IPv6; Protocolos de controle; Protocolos de roteamento. 96 A camada de rede da Internet 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. 97 A camada de rede da Internet Introdução • Esquema da estrutura da Internet: 98 A camada de rede da Internet 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; 99 A camada de rede da Internet Protocolo IPv4 • O cabeçalho IPv4: • Possui uma parte de tamanho fixo de 20 bytes e uma parte opcional de tamanho variado; 100 A camada de rede da Internet Protocolo IPv4 • O cabeçalho IPv4: • Versão (4 bits): • Indica o número da versão corrente; • A versão 4 é largamente utilizada. 101 A camada de rede da Internet 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). 102 A camada de rede da Internet 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. 103 A camada de rede da Internet 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. 104 A camada de rede da Internet 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). 105 A camada de rede da Internet 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. 106 A camada de rede da Internet 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). 107 A camada de rede da Internet 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. 108 A camada de rede da Internet Protocolo IPv4 • O cabeçalho IPv4: • Endereços de origem e destino (32 bits cada) : • Endereços IP dos hosts de origem e destino. 109 A camada de rede da Internet Protocolo IPv4 • O cabeçalho IPv4: • Opções (tamanho variável) : • Mecanismo para permitir inserir informações inexistentes no projeto original. 110 A camada de rede da Internet 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. 111 A camada de rede da Internet 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); 112 A camada de rede da Internet Protocolo IPv4 • Endereços IP (3): • Para facilitar o gerenciamento de IPs, uma rede pode ser subdividida em subredes: Subrede Endereço Ciência da Computação 10000000.11010000.1XXXXXXX.XXXXXXXX Engenharia Elétrica 10000000.11010000.00XXXXXX.XXXXXXXX Artes 10000000.11010000.011XXXXX.XXXXXXXX 113 A camada de rede da Internet 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. 114 A camada de rede da Internet 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; 115 A camada de rede da Internet 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: 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. • Uma lista completa pode ser obtida em: • http://www.iana.org/assignments/icmp-parameters/ 120 A camada de rede da Internet 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 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