Baixe o app para aproveitar ainda mais
Prévia do material em texto
COMUNICAÇÕES DIGITAIS AULA 5 Prof. Amilton Carlos Rattmann CONVERSA INICIAL Até o momento foram estudadas as comunicações estabelecidas entre dois dispositivos, em enlace ponto a ponto, ou entre dispositivos em enlaces de múltiplo acesso. Todos os dispositivos, de alguma forma, estavam ligados a outros dispositivos por um meio de conexão direta, seja nas pontas opostas do mesmo cabo, seja ligados ao mesmo cabo de pares trançados, coaxial, fibra ópticas, ou ainda compartilhando a mesma área de cobertura de alcance dos rádios. Mas o que ocorre quando os dispositivos de destino estão distantes do dispositivo de origem, a ponto de só receberem informações de outros dispositivos e não dos dispositivos com os quais se deseja comunicar? Nesta aula veremos como funcionam as comunicações digitais no nível de rede, nas quais dispositivos podem transportar informações de e para outros dispositivos, elemento a elemento, até chegar do dispositivo de destino. TEMA 1 – OBJETIVOS DA CAMADA DE REDE O grande desafio da camada de rede, mais precisamente dos algoritmos e dos protocolos de redes, é conseguir conduzir blocos de dados, denominados pacotes nessa camada, até o destino, onde quer que estejam dentro da rede. Para entendemos como esse processo é realizado, abordaremos neste tema os principais objetivos que devem ser atingidos para que uma rede possa operar adequadamente. 1.1 Chegar ao destino O interesse das comunicações digitais ainda é a comunicação entre dois ou mais dispositivos, mas a diferença no cenário desta aula é que os dispositivos transmissor e receptor não estão mais conectados no mesmo meio. Existe, evidentemente, um meio de comunicação, mas fragmentado, formado por vários meios de comunicação distintos, interligados por dispositivos formando um grande arranjo de equipamentos, que conhecemos como rede. A comunicação passa a depender de elementos que não estão participando diretamente da “conversa” entre o transmissor e o receptor. Na Figura 1, em (A), a comunicação entre os dispositivos “A” e “C”, só ocorrerá se o dispositivo “C” fizer a retransmissão nos dois sentidos: de “A” para “B” e de “B” para “A”. Na Figura 1B, os dispositivos “A”, “B” e “C” se comunicam por um meio comum, mas não 3 conseguem se comunicar com “R”, “S” ou “T”, que utilizam outro meio de mesma natureza, sem que o dispositivo “X” receba a informação do barramento “ABC”, entenda não ser o destinatário da mensagem, mas que deva repassá-la ao barramento RST. Na Figura 1C, talvez o mais intuitivo, o rádio do dispositivo “A” não tem potência para sensibilizar o receptor do dispositivo “C”, cujo alcance é representado pela área circular transparente centradas nos dispositivos “A”, “B” e “C”. O dispositivo “B” deve ser empregado para retransmitir as informações trocadas entre “A” e “C”. Figura 1 – Comunicação entre dispositivos sem conexão direta: A. ponto a ponto; B. Meios de múltiplo acesso; C. Meio rádio. Fonte: Elaborado pelo autor. Os dispositivos podem estar geográfica ou topologicamente muito distantes. Se considerarmos a comunicação de retransmissão através de um enlace como um salto, podemos definir a distância entre dispositivos por saltos (hops, do inglês), uma medida topológica. Dessa forma, os dispositivos podem estar a muitos saltos de distância, em uma rede formada por muitos dispositivos e muitos caminhos possíveis. Na Figura 2, é apresentado um modelo de rede formada por meios distintos, como múltiplo acesso, rádio e acessos ponto a ponto, na qual a distância entre “B” e “M” pode ter dois saltos (“B”, “A” e “M”) ou cinco saltos (“B”, “A”, “K”, “I”, “J” e “M”), dependendo da decisão tomada por “A”. O caminho pode ser diferente também no sentido de “M” para “B” e não existir nenhuma distância, caso o dispositivo “A” desconheça o caminho para chegar a “M”. 4 Figura 2 – Formação da rede Fonte: Elaborado pelo Autor. Como já sabemos, os enlaces estão sujeitos a falhas e podem gerar perdas de dados, mesmo empregando sistema de correção de erro. Vimos também que existem procedimentos e recursos para manter os enlaces em operação, embora falhas severas na camada física possam ocorrer e tirar os enlaces de operação. Figura 3 – Alteração na topologia da rede Fonte: Elaborado pelo autor. Para a camada de rede, as falhas significam a eliminação de um caminho e, consequentemente, a alteração na topologia da rede, que implica a determinação de novos caminhos ou, no conceito da camada de rede, de novas 5 rotas, conforme apresentado na Figura 3. A inclusão de um enlace e a eliminação de outro, alterou significativamente a topologia da rede apresentada, originalmente, na Figura 2. O objetivo principal da camada de rede é entregar pacotes de dados aos dispositivos de destino, independentemente de onde estejam, ou de quantos saltos estejam de distância, de quantos caminhos diferentes existam, ou das mudanças topológicas que ocorram durante a comunicação. 1.2 Repasse e roteamento Os dispositivos que operam na camada 3 desempenham o papel de entrega de pacotes em dispositivos de destino, onde estejam, por meio de duas funções principais: • Repasse; • Roteamento. O repasse ocorre quando o pacote de dados chega ao dispositivo por uma interface e precisa ser encaminhado para outra interface, cujo enlace leve em direção do local lógico ou físico do dispositivo de destino. Cada dispositivo, ao longo do caminho entre os dispositivos de origem e de destino, deve repassar os pacotes que recebe às interfaces adequadas. Poderia ser comparado a uma viagem entre duas cidades distantes, na qual o veículo é orientado pelas placas rodoviárias, em cada entroncamento, até a cidade de destino. Cada enlace seria um trecho rodoviário compondo uma parte do caminho entre as duas cidades. No repasse, os dispositivos consultam uma tabela de repasses que relaciona os destinos conhecidos por esse dispositivo com as interfaces de saída para o destino desejado. A Figura 4 apresenta um diagrama básico de um dispositivo operando na camada de rede. A interface de entrada recebe o sinal físico e processa as informações de controle de enlace. Os dados de controle do pacote são analisados para a identificação do tipo de serviço e do dispositivo de destino. A interface para encaminhamento do pacote é localizada pela rota de destino na tabela de repasses. O pacote pode entrar em uma fila de entrada (no caso de o elemento de comutação estar ocupado). Assim que possível, o elemento de comutação encaminha o pacote da interface de origem para a interface de saída, alocando o pacote na fila de saída da interface. Caso a fila de saída esteja vazia, 6 o pacote é processado imediatamente, produzindo o novo sinal físico conforme as características do enlace de saída. Figura 4 – Processo de repasse de pacotes entre interfaces Fonte: Elaborado pelo autor. O processo de roteamento é responsável pela construção das tabelas de repasses, ou de rotas, de cada dispositivo. Diferentes estratégias são utilizadas para a construção das tabelas de roteamento, empregando algoritmos mais simples ou mais eficientes, invariavelmente por meio da troca de pacotes de controle com dados de endereços locais para a construção da visão global da topologia da rede. A visão local de cada dispositivo é obtida de forma imediata, pela consulta dos endereços locais ou, em outras palavras, pela identificação de todos os dispositivos diretamente conectados a este. A construção global é mais complexa e leva mais tempo para ser concluída, pois depende da consolidação de todos os dados locais em uma única visão global da rede, compartilhada por todos os dispositivos de rede. O processo de consolidação é conhecido como processo de convergência, podendo gerar mais dados ou levar maistempo, conforme a estratégia adotada para o processo de roteamento. A Figura 5 apresenta um diagrama genérico de um sistema de roteamento. Cada dispositivo na figura mantém um processo de roteamento que troca informações com os processos de roteamento dos outros dispositivos. Pela informação de origem e vizinhança de cada dispositivo, o processo de 7 roteamento constrói a visão global. O termo vizinho se refere ao dispositivo diretamente conectado, ou que compartilham o mesmo enlace. Na Figura 5, o dispositivo “A” possui um único vizinho (“B”) e o dispositivo “B” possui três vizinhos (“A”, “C” e “E”). O dispositivo “A” identifica pelos dados de enlace que o dispositivo “B” é seu vizinho, regista esta informação na sua tabela de rotas e envia esta informação para os demais dispositivos. O dispositivo “B” realiza o mesmo processo e envia para o dispositivo “A” sua vizinhança. Figura 5 – Processo de roteamento e definição das tabelas de rotas. Fonte: Elaborado pelo autor. O dispositivo “A” passa a conhecer os dispositivos “C” e “E” por intermédio do dispositivo “B” e constrói uma visão parcial da rede na tabela de roteamento, inserindo os dispositivos “C” e “E”, conhecidos via interface “1” (interface que suporta o enlace com “B”), com distância 2, que consolida as distâncias entre “A” e “C” (1) e entre “A” e “E” (2): 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐴𝐴 − 𝐶𝐶) = 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐴𝐴 − 𝐵𝐵) + 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐵𝐵 − 𝐶𝐶) (1) 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐴𝐴 − 𝐸𝐸) = 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐴𝐴 − 𝐵𝐵) + 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑(𝐵𝐵 − 𝐸𝐸) (2) Outras regras gerais importantes para a garantia da convergência e estabilidade da visão global da rede e para mudanças na topologia são as seguintes: • Atualização para rotas melhores; • Desativação de rotas por queda de enlace; • Agregação de rotas. 8 Atualização para rotas melhores: o dispositivo “A” recebe a notificação de rota do dispositivo “C”, contendo sua a vizinhança que inclui o dispositivo “B”. Pelo procedimento descrito acima, o dispositivo “A” incluiria na tabela de rotas o dispositivo “B”, via interface “1”, com distância 3, mas isso não ocorre, porque a nova rota é igual nos parâmetros interface e rota, mas pior na distância. A rota permanece na tabela, mas desativada. A desativação de rotas por queda de enlace: na queda de enlace, as rotas associadas a esta interface são desativas para evitar perdas de pacotes que seriam encaminhados para interfaces fora de serviço. Esse evento significa mudança de topologia que produz novos pacotes de atualização de rotas. As rotas piores existentes nas tabelas, mas desativadas, podem agora ser reativadas para permitir a entrega de informações, por caminhos alternativos, aos dispositivos de destino. Agregação de rotas: as rotas podem ser agregadas, sempre que possível, para reduzir o tempo de busca. Na Figura 5, a tabela do dispositivo “A” poderia agregar dispositivos de mesmo destino, mantenho as referências individuais para garantir a atualização adequadas de novas notificação, como demonstrado na Tabela 1. Tabela 1 – Agregação de rotas do dispositivo A da Figura 5 Rota Interface Distância B 1 1 C, E 1 2 D, F 1 3 Fonte: Elaborado pelo autor. 1.3 Controle de tráfego Já sabemos que os dispositivos estabeleciam um controle de fluxo por meio dos protocolos de enlace, necessários para manter a comunicação equilibrada, operacional e confiável. Podemos considerar que os dispositivos produzem o tráfego que são capazes de gerar. O tráfego gerado será tão intenso quanto as capacidades de CPU, memória e de interfaces incorporadas em um dispositivo e normalmente representa a capacidade de tráfego entrante que pode receber. 9 Operando em rede, o problema de controle de fluxo é mais complexo, pois os dispositivos de origem raramente estão “enxergando” o enlace local do dispositivo de destino e podem produzir um tráfego muito maior que o dispositivo de destino pode absorver, implicado consequente em descarte de dados, algo que sempre se pretende evitar. Outro ponto que deve ser considerado é que muitos dispositivos de origem podem enviar dados para um mesmo dispositivo de destino, podendo criar um tráfego acumulado maior que a capacidade de tratamento de dados do dispositivo. O controle de tráfego pode ser realizado por vários meios. Vamos focar nesta sessão em dois tipos de mecanismos: • Pacote de controle; • Partida lenta. No protocolo de rede ITU-T X.25, um protocolo orientado a conexão, um caminho virtual é determinado durante o estabelecimento da comunicação. O enlace do X.25, conhecido como LAPB (HDLC), transporta todos os pacotes encapsulados em quadros de camada 2, indistintamente. Os pacotes, entretanto, estão marcados por um identificador para cada caminho virtual, denominado canal lógico, que determina uma comunicação unicast com um dispositivo específico. Caso a comunicação apresente tráfego com intensidade acima da capacidade, o dispositivo envia um pacote de controle RNR (do inglês Receiver Not Ready) no canal lógico do caminho que apresenta esse fluxo, indicando a incapacidade temporária de receber mais informações. Caso o problema persista, todos canais lógicos ativos podem ser paralisados pelo envio do RNR. Após normalizar, um pacote de controle RR (do inglês, Receiver Ready) é enviado, indicando a normalização do dispositivo e autorizando o reinício da transmissão, apresentado na Figura 6A. Outra forma de controle, utilizada em outros protocolos, é a partida lenta. Essa forma de controle subentende uma forma de confirmação de informações, ou seja, que o protocolo seja orientado para a conexão. A quantidade de pacotes transmitidos para um destino pode ser contabilizada pela quantidade de octetos (bytes) transmitidos, formando blocos de 2 k octetos, 4 k octetos, 8 k octetos etc., que poderiam ser transmitidos sem confirmação, como uma janela deslizante. Iniciando a transmissão considerando que blocos de até 2 k octetos serão transmitidos, enquanto as confirmações ocorrerem dentro de um intervalo de 10 tempo aceitável, que depende de parâmetros da tecnologia empregada no enlace como velocidades e latência e do volume típico de dados. Caso o tempo de resposta permaneça baixo, o bloco de informações pode ser aumentado, transmitindo mais informações com supervisão pendente. O tamanho do bloco pode ser sucessivamente aumentado até se atingir o bloco máximo definido, enquanto os tempos de resposta permanecerem baixo, indicando que o dispositivo de destino possui condições de tratar o tráfego, porém, se ocorrerem atrasos de confirmação, o tamanho do bloco é reduzido com taxa maior que a utilizada no aumento. Caso a taxa de crescimento de bloco seja de 4 k em 4 k octetos, a taxa de redução deve ser de 8 k em 8 k octetos, por exemplo. Figura 6 – Mecanismos de controle de fluxo: A. Pacotes de controle; B. Partida lenta. Fonte: Elaborado pelo autor. A Figura 6B apresenta os efeitos gráficos de um mecanismo de partida lenta, indicando a taxa de subida menor e taxa de descida maior, representadas pelas inclinações dos segmentos de reta. 1.4 Caminhos redundantes Os caminhos redundantes formam um importante recurso para o funcionamento plenos das redes. As falhas em enlaces ocorrem afetando a topologia, podendo isolar dispositivos ou grupo de dispositivos do restante da rede. Os caminhos redundantes garantem a continuidade do funcionamento da rede diante da ocorrência da falha em um enlace. Outros enlaces assumem o tráfego levando as informações aos dispositivos de destino. 11 TEMA 2 – ENDEREÇAMENTO NA CAMADA DE REDE As redes podem ser muito amplas e conter muitos dispositivos. O protocolo IP, na versão 4, contava com 32 bits de endereçamento, resultando em mais de quatro bilhões de endereços e, mesmo com essa grande quantidade de endereços, experimentou aescassez dando origem a proposta da versão 6 do protocolo, principalmente por este motivo. As estimativas atuais indicam que em 2020 cada pessoa no planeta utilizaria mais de seis dispositivos conectados na Internet e cerca de 12 bilhões de dispositivos sem fio em 2022. 2.1 Partes do endereço A determinação de um plano de endereçamento é vital para a organização do encaminhamento dos blocos ou pacotes de informação. Um bom plano de endereçamento organiza os endereços dos dispositivos de forma a possibilitar que fontes distintas determinem seus endereços sem que entrem em conflito ou produzam falhas na rede. Os endereços podem refletir uma hierarquização que facilite a localização de forma rápida e menos custosa nos sistemas de roteamento. Os endereços podem ser formados por partes. Na telefonia fixa comutada, por exemplo, segue a recomendação internacional ITU-T E.164 (Figura 7) na qual uma parte do denominado número telefônico internacional designa o país de forma global, outra parte designa a região dentro de um país e a última parte designa o assinante, que normalmente é composto por um prefixo e pelo número. 12 Figura 7 – Endereçamento do sistema telefônico comutado internacional Crédito: Anton/Shutterstock; Grebeshkovmaxim/Shutterstock; Kwartov/Shutterstock. Nos endereços de rede TCP/IP, uma parte de endereço é atribuída à representação de redes e sub-redes, e outra parte é atribuída à representação dos endereços de dispositivos, dentro de cada sub-rede. Uma máscara (um valor especial de 32 bits) é utilizada para indicar o tamanho de cada parte de endereço IP, conforme apresentado na Figura 8. Figura 8 – Endereçamento IPv4 Fonte: Elaborado pelo autor. O IP, na versão 6, reservou 128 bits de endereços, dividido em 64 bits para endereços de rede e 64 bits para endereços de dispositivos em cada rede, conforme observado na Figura 9. Esta nova versão permite uma quantidade na ordem de 1019 endereços em uma única sub-rede. 13 Figura 9 – Endereçamento IPv6 Fonte: Elaborado pelo autor. Observamos, desta forma, que a ideia geral na formação de endereços é facilitar sua localização ou ordem dentro de um conjunto de outros endereços. 2.2 Agrupamento de endereços O agrupamento de endereço é uma estratégia para facilitar o roteamento. Na telefonia, por exemplo, o código internacional permite o agrupar todos telefones de um determinado país e representá-los por um único código, implicando em uma única rota para encaminhar todas as chamadas para este país. A mesma necessidade determinou procedimentos de distribuição de endereços na rede TCP/IP, através de entrega coordenadas de faixas de endereços para cada país. Esses procedimentos facilitaram o roteamento e o encaminhamento na internet, aumentando o desempenho da pesquisa na determinação de destinos. A seguir, alguns exemplos de agregação de endereços nas versões 4 e 6 do protocolo de internet: • 203.0.113.0/24 o 203.0.113.123 o 203.0.113.26 o 203.0.113.101 • 2001:DB8::/32 o 2001:DB8:0:0:0:3423:0:FA42 o 2001:DB8:0:0:0:1:EDA:3432 o 2001:DB8:0:3421:0:1:A432 As redes mais à esquerda representam corretamente os endereços mais à direita em cada versão. 14 TEMA 3 – ROTEAMENTO NA REDE O processo de roteamento nas redes de dispositivos que operaram na camada 3 são de especial atenção. A rede é formada normalmente por muitos caminhos alternativos que levam ao mesmo destino e alterações na topologia frequentes que implicam a necessidade de selecionar caminhos seguros que levem ao sucesso do encaminhamento dos pacotes ao dispositivo de destino. Neste tema, abordaremos alguns conceitos de roteamento de rede. 3.1 Tipos de roteamentos Os sistemas de roteamento podem operar de forma centralizada (ou global), sendo denominados centralizados, quando um elemento com a função de roteamento determina todos os caminhos da rede, após receber as informações de cada nó, ou sistemas de roteamento descentralizados, quando cada dispositivo determina suas próprias rotas, após troca de informações com roteadores vizinhos, apresentados no diagrama da Figura 10. Figura 10 – Sistemas de roteamento centralizado (SRC) e sistema de roteamento decentralizado (SRD) Fonte: Elaborado pelo autor. Os sistemas de roteamento podem ser estáticos, quando as rotas permanecem inalteradas, mesmo com alterações na topologia, normalmente dependendo de intervenção humana para a atualização dos custos da rede, ou dinâmicos, quando algoritmos realizam as alterações nas rotas diante das alterações na topologia. Podem ainda ser sensíveis à carga de tráfego nos enlaces ou não sensíveis, sendo estes últimos mais complexos e mais instáveis devido à flutuação de carga nos enlaces. 15 3.2 Determinação de rotas As rotas determinam uma determinada agregação de endereços que se encontram na mesma direção com base em um determinado ponto de vista lógico. Os dispositivos que compartilham um enlace são denominados vizinhos. Não é necessário determinar rotas para dispositivos vizinhos, mas seus endereços devem figurar como rotas denominadas locais, quando representa o próprio endereço associado à interface do dispositivo ou conectadas, quando representam todos endereços dos dispositivos na rede local associada ao enlace. As rotas determinadas manualmente são denominadas rotas estáticas e as rotas determinadas por protocolos de roteamento são denominadas dinâmicas. 3.3 Determinação de rotas para o mesmo destino A Figura 11 apresenta um diagrama com uma determinada topologia de rede. Os quadros associados aos círculos representam as rotas associadas ao dispositivo de rede. As rotas locais estão em cor escura e as rotas manuais estão em cor clara no diagrama, representando opções de roteamento. O dispositivo “A” há uma rota agregada para os dispositivos “C”, “D”, “E” e “F”, pela interface “1”. As rotas agregadas ocupam menos recurso na memória dos dispositivos e reduzem o uso de CPU. 3.4 Determinação de rotas - múltiplos caminho diferente O dispositivo “B”, na Figura 11, apresenta duas rotas para os dispositivos “E” e “F”. Pela topologia da rede, pelos dois caminhos sugeridos pelas interfaces “2” ou “3”, é possível chegar em ambos. O dispositivo “B”, entretanto, precisa de uma regra mais específica para encaminhar os pacotes para o dispositivo “D”. Outros parâmetros são empregados para auxiliar na determinação da rota, como quantidade de saltos, velocidade de enlace ou ocupação de enlace (filas), ou proximidade entre dispositivos georreferenciados ou gerada por circuito GPS embarcado em dispositivos móveis de rede. Alguns parâmetros são fixos outros são dinâmicos e podem alterar o significado da decisão de roteamento tomada. Independente do parâmetro utilizado, normalmente as regras manuais adotam um caminho preferencial, que depende do conhecimento dinâmico da rede pelo responsável técnico da rede. 16 Figura 11 – Determinação de rotas Fonte: Elaborado pelo autor. A rede preferencial é determinada pelo custo mais baixo de uma rota duplicada. A rota de custo mais baixo fica ativa e de a de custo maior permanece na tabela mais desativada, enquanto a rota de menor custo permanecer ativa. Como regra, portanto, o dispositivo sempre utilizará a rota de menor custo. No caso de queda de enlace, as rotas associadas a interface são desativadas, permitindo que rotas alternativas de maior custo sejam ativadas mantendo o roteamento da rede funcional. Na Figura 11, no caso de queda do enlace entre os dispositivos “B” e “C”, a rota “F,D 3” de maior custo se torna ativa, mantendo o encaminhamento por caminho alternativo para o dispositivo “D”. TEMA 4 – ALGORITMOS PARA ROTEAMENTO AUTOMÁTICO O processo de atualização de endereço é simples, como vimos no tema 3. Para poucos endereços é bem provávelque seja muito mais fácil realizar as alterações de rotas do que desenvolver scripts e procedimentos automáticos para isso. Essa ideia simplista muda rapidamente quanto a quantidade de redes e endereços disponibilizados em sub-redes cresce em centenas ou milhares de endereços. Seria humanamente impossível gerenciar bilhões de endereços, com centenas de milhares de redes e rotas, com milhares de alterações topologias ocorrendo a cada segundo, sem o emprego de algoritmos e protocolos de roteamento. Abordaremos neste tema dois algoritmos de roteamento amplamente utilizados para dispositivos operando em rede. 17 4.1 Algoritmos de roteamento de vetor de distância O algoritmo de vetor de distância, DV (do inglês: distance-vector), é iterativo, assíncrono e distribuído. Cada dispositivo recebe informações de rotas de um ou mais vizinhos, realiza cálculos de rotas e envia o resultado aos seus vizinhos, repetidamente, até não haja mais informações para serem atualizadas pelos vizinhos. Ao final das iterações, os caminhos de menor custos são determinados na rede, até que ocorra uma nova mudança na topologia da rede. O princípio de funcionamento do sistema de roteamento DV se baseia na equação de Bellman-Ford, apresentada na equação (3), na qual dx(y) representa o custo do caminho de menor custo entre x e y, entre os caminhos possíveis a partir de v, que é um dispositivo vizinho de x. 𝒅𝒅𝒙𝒙(𝒚𝒚) = 𝒎𝒎𝒎𝒎𝒎𝒎𝒗𝒗{𝒄𝒄(𝒙𝒙,𝒗𝒗) + 𝒅𝒅𝒗𝒗(𝒚𝒚)} (3) Para o algoritmo DV, o importante é a determinação do próximo salto, para o encaminhamento de pacotes. Na Figura 12 é apresentada uma pequena rede para análise do processo de iteração do algoritmo DV. Figura 12 –Topologia de rede para análise do algoritmo DV Fonte: Elaborado pelo autor. Na primeira iteração do algoritmo, apenas os custos locais são registrados. Na segunda iteração do algoritmo DV, as tabelas locais são distribuídas. 18 Figura 13 – Processo de iteração do algoritmo DV, para a topologia da Figura 12 Fonte: Elaborado pelo autor. Nesta segunda iteração, ainda, os custos podem ser atualizados por intermédio das informações recebidas dos dispositivos vizinho. Para o dispositivo “A”, uma informação do dispositivo “B” apresenta um custo menor que o custo registrado localmente para o dispositivo “C”. Calculando dA(C) = c(a,b)+dB(c) = 1 + 1 = 2, obtém-se um é inferior ao valor previamente registrado, provando a atualização do valor da tabela do dispositivo “A”. Uma atualização ocorre, de maneira semelhante, com o dispositivo “C”. Na terceira iteração, os custos locais são novamente enviados para os dispositivos vizinho, determinando o fim da convergência do roteamento da rede. 4.2 Algoritmos de roteamento de estado de enlace O algoritmo de estado de enlace, LS (do inglês link-state), é iterativo, assíncrono e centralizado, mas no sentido de que os dispositivos compartilharam a mesma visão de toda a rede e não uma visão local como utilizado nos algoritmos DV. Cada dispositivo recebe informações de todos os custos e estados dos enlaces de todos os dispositivos da rede, determinando uma visão 19 global da rede. As trocas de informação encerram, quando todos os dispositivos adquirem a mesma visão global da rede. Enquanto os dispositivos DV apenas tocam novas informações quando uma mudança de custo altera a topologia, os algoritmos LS trocam informações pela alteração de custo dos enlaces, alterando ou não a topologia. O algoritmo de estado de enlace é assíncrono, mas não é finito como o algoritmo DV. As iterações permanecem sendo trocadas a cada alteração de custo, como já comentado. OS dispositivos enviam informações identificadas para todos demais dispositivos da rede, para a formação da visão global. Podemos verificar a aplicação da equação de Bellman-Ford, se observarmos a Figura 14, e tentarmos identificar o caminho de menor custo entre os dispositivos “A” e “F”. Determinaremos, pela análise dos custos e enlaces, que o melhor caminho segue pelos dispositivos “A”, “C”, “E” e ”F”. Pela equação 3, o menor custo entre os vizinhos de “A” c(a, b) = 2, c(a, c) = 1 e c(a, d) = 5, é o dispositivo “C”, com custo c(a, c) = 1. Os custos dos caminhos dos vizinhos de “A” (“B”, “C” e “D”) até “F” seriam dB(F) = 5, dC(F) = 3 e dD(F) = 5. Aplicando a equação (3), os menores custos entre vizinhos e caminhos dos vizinhos são c(a, c) = 1 e dC() = 3, com custo total 4, apresentada no desenvolvimento (4), seguindo pelos mesmos dispositivos: “A”, “C”, “E” e “F”, obtidos na análise visual. Figura 14 – Topologia para avaliação de roteamento determinando o custo dos enlaces Fonte: Elaborado pelo autor. 𝑑𝑑𝑎𝑎(𝐹𝐹) = 𝑚𝑚𝑑𝑑𝑚𝑚𝑣𝑣{𝑐𝑐(𝑎𝑎, 𝑐𝑐) + 𝑑𝑑𝑣𝑣(𝐹𝐹)} (4) 20 𝑑𝑑𝑎𝑎(𝐹𝐹) = 𝑚𝑚𝑑𝑑𝑚𝑚𝑣𝑣{1 + 3} = 4 O algoritmo LS inicia com o ajuste inicial colocando os custos de todos os dispositivos vizinhos (linha 1) na primeira iteração apresentada na Tabela 2 para o dispositivo “A”, no lado esquerdo, e para o dispositivo “B”, no lado direito da tabela. Para os dispositivos que não são vizinhos, o custo é infinito. Com base no menor custo de vizinhança, o dispositivo é incluído no grupo N’, dos dispositivos já analisados. Com base no último dispositivo analisado, avalia-se a vizinhança, determinando os custos acumulados c(x,v)+dv(y) com o custo anterior para o dispositivo. Na linha 2, para o dispositivo “A”, o valor acumulado do dispositivo “A” para o dispositivo “B”, via dispositivo “C”, dA(C)+c(c,b) = 2 + 1 = 3, é maior que o valor registrado na linha 1 para o custo do dispositivo “A” diretamente para o dispositivo “B” dA(B)+c(b,b) = 2 + 0 = 2, que pode ser comprovado na Figura 14. Entretanto, caso o valor seja menor, é substituído na linha, na coluna do o dispositivo. Na linha 2 da tabela de iterações, o menor custo acumulado ocorre com o dispositivo “E”, que passa a integrar o grupo N’, atualizando o valor da coluna c(x,v). Na linha 2, houve também redução no custo de caminho para dispositivo “D”, de 5 para 4, pelo caminho via dispositivo “C”, e redução de infinito para 2 para o dispositivo “E”, via caminho pelo dispositivo “C”. O algoritmo mantém as iterações até determinar os caminhos de mínimo custo, que ocorre na linha 6. A quantidade de iteração guarda relação direta com a quantidade de dispositivos na rede. Na interpretação da Tabela 2, o caminho de menor custo entre os dispositivos “A” e “D”, pode ser assimilada a partir da coluna d, na linha que determinou o menor custo. Nesta linha, o custo é 3, que ocorre com base no último dispositivo analisado, “E”. Por sua vez, o menor custo para o dispositivo “E” ocorre na linha 2, no dispositivo “C”, que tem seu menor custo na linha 1, da coluna c, que ocorre no dispositivo “A”. Então, o caminho de menor custo entre o dispositivo “A” e “D”, apresenta-se via dispositivos “C” e “E”, cujo o custo está registrado na Tabela 2 (linha 4, coluna d) e pode ser conferido na Figura 14. 21 Tabela 2 – Evolução iterativa do algoritmo LS da Figura 14 para os dispositivos “A” e “B” Nó Custos c(x,v) + dv(y) Nó Custos c(x,v)+dv(y) A N' c(x,v) b c d e f B N' c(x,v) a c d e f 1 a 0 2 1 5 ∞ ∞ 1 b 0 2 2 3 ∞ ∞ 2 ac 1 2 4 2 ∞ 2 ba 2 2 3 ∞ ∞ 3 ace 2 2 3 4 3 bac 2 3 3 ∞ 4 aceb 2 3 4 4 bacd 3 3 8 5 acebd 3 4 5 bacde 3 5 6 acebdf 4 6 bacdef 5 Fonte: elaborado pelo autor. TEMA 5 – QUALIDADE DE SERVIÇO A qualidade de serviço foi um dos temas mais importantes discutidos nas duas últimas décadas. A onda tecnológica denominada convergência digital transformou de forma significativa os serviços de telecomunicações, aproximou, de forma nunca vista, as empresas de seus clientes em escala global e deu uma importância universal à internet. Os serviços de vídeo e voz pela internettiveram sucesso, em boa medida, porque os problemas relacionados à qualidade de serviço QoS (do inglês: Quality of Service) da rede TCP/IP foram resolvidos. Muitas novas técnicas e adaptações de protocolos foram necessárias para que a rede pudesse se ajustar às necessidades de cada tipo de fluxo de dados. Neste tema veremos alguns desses recursos para permitir que dispositivos organizados e operando em rede transportem dados com a prioridade necessária para atender às necessidades da comunicação. 5.1 O serviço A definição de serviço, no contexto da rede de dados, pode ser entendida como o atendimento às necessidades de transporte do tipo de tráfego transportado. Então precisamos definir o que são os tipos de tráfego. 5.1.1 Tráfego sensível a perdas Um relatório em formato PDF, por exemplo, ao ser transportado pela rede de dispositivos, precisaria ser fragmentado em muitos pacotes. O fluxo de pacotes possui sensibilidade a perdas de informação, pois cada fragmento 22 perdido precisa ser retransmitido. Antes de entregar o relatório ao aplicativo solicitante, o arquivo precisa ser remontado e, para isso, são necessários todos os fragmentos. Entretanto, dependendo das condições gerais de transporte, se o fluxo de pacotes levar entre 200 e 300ms mais tempo para completar o transporte sem erros, não haveria qualquer problema. Em outro exemplo, caso um sistema de e-mails levasse 5 min extras para entregar uma mensagem em um aplicativo cliente de mensageria, normalmente o usuário nem perceberia esse tempo a mais. Os exemplos de tráfegos, descritos neste parágrafo, são sensíveis a perdas, mas não são sensíveis à latência, definindo a necessidade de transporte. 5.1.2 Tráfego sensível à latência O tráfego de voz bidirecional transportado pela rede, iniciado no processo de convergência digital, precisara superar uma barreira importante para ser oferecido como serviço: tempo de entrega. A voz digitalizada gera um fluxo contínuo de dados, produzindo amostras a cada 125 μs que devem ser entregues no dispositivo de destino na mesma cadência. Embora o volume de dados seja pequeno, a restrição temporal é crítica. A latência máxima esperada entre origem e destino é de 150ms, para evitar efeitos indesejados na experiência de usuário. O codec G.711, que produz um fluxo de 64 kbps, agrupa 80 amostras de um octeto no mesmo pacote, para melhorar a eficiência de transmissão, gerando pacotes a cada 10ms. Caso um pacote leve mais de 150ms para chegar ao destino, produzirá um problema no reprodutor de áudio. Um buffer de 150ms (buffer de jitter ou, no inglês, de-jitter buffer) no destino, preenchido antes da reprodução, atenua significativamente os problemas de latência. Pior que a latência (no inglês, delay) é a variação na latência (no inglês, jitter), que apresenta um limite de 30ms para a voz. Dessa forma, os pacotes de voz podem ser atrasados em até 150ms, mas não admitem uma variação na latência maior que 30ms. Como os codec são munidos de interpoladores digitais, que produzem amostras artificiais interpoladas no caso perda de informações, é preferível produzir uma amostra artificial do que reproduzir amostras atrasadas, observado pela experiência de usuário. 23 Saiba mais Codec é uma contração dos termos coder e decoder (do inglês: codificador e decodificador) e é empregado para classificar sistema de hardware ou software responsáveis por codificar um sinal analógico em determinado padrão digital e vice-versa. Os tráfegos de voz e vídeo são definidos como tráfegos de tempo real (no inglês: real time). Definimos a necessidade desse tipo de tráfego, que são latência e variação de latência baixos, dentro dos limites, embora sejam admitidas perdas em pacotes de até 1%. Os sinais de vídeo possuem as mesmas necessidades que o tráfego de voz, embora produziram um tráfego muito maior que o tráfego de voz. A banda de dados necessária para fluxos de vídeo vai depender do codec e da qualidade de reprodução desejados. Alguns tráfegos intermediários podem apresentar necessidades intermediárias, exigindo ajustes nos parâmetros e devem ser tratados pelos mecanismos de QoS. 5.2 Os parâmetros Os parâmetros de Qos descrevem objetivamente os tipos de tráfego. A RFC 2474 redefiniu o uso do campo ToS (Type of Service) do cabeçalho IPv4 e rebatizou de DSCP (Differentiated Services Code Point), definindo as classes de serviço para priorização de encaminhamento de pacotes. Nesse modelo de funcionamento, as classes de serviço são marcadas por códigos que são analisadas salto a salto em cada dispositivo (do inglês PHB – Per-hop Behavior), especificadas nas RFC 3260, RFC 3246 e RFC 5290. As marcações de tráfego variam de prioridade explicita à tráfego de melhor esforço, distribuídos em 14 marcações diferentes, conforme apresentado na Tabela 3. O campo CS na tabela é uma definição de adaptação entre o ToS e o DSCP, definido em recomendação, que permite que equipamentos antigos tenham um comportamento mais próximo ao de equipamentos atualizados. 24 Tabela 3 – Marcações dos tipos de tráfego Seletor de classe DSCP (binário) PHB AFx1 AFx2 AFx3 CS0 000000 BE 000000 CS1 001000 AF1x 001010 001100 001110 CS2 010000 AF2x 010010 010100 010110 CS3 011000 AF3x 011010 011100 011110 CS4 100000 AF4x 100010 100100 100110 CS5 101000 EF 101110 CS6 110000 CS7 111000 Fonte: Elaborado pelo autor. O campo A marcação EF (do inglês Expedited Forwarding) instruem os dispositivos a enviar os pacotes com essa marcação, no campo DSCP do cabeçalho IPv4, o mais rapidamente possível. Caso o pacote esteja marcado com BE (do inglês Best-Effort), o dispositivo transmitirá apenas após tratar todos os demais pacotes mais prioritários. A ordem de transmissão nos dispositivos segue a ordem crescente dos códigos CS e na mesma linha os códigos mais à esquerda são mais prioritários. Pacotes marcados com AF43 são transmitidos antes que pacotes marcados com AF31, assim que o CS4 seja mais prioritário que o AF43. Aplicando o mecanismo de QoS, pacotes de um fluxo prioritário podem ser marcados para serem transmitidos antes dos pacotes de outros fluxos, em cada dispositivo da rede. A Tabela 4 apresenta um exemplo de aplicação dos códigos DSCP em tipos de tráfegos. Tabela 4 – Classificação de tráfego e codificação de comportamento Classe de aplicação PHB Aplicação Telefonia VoIP EF Telefones IP Controle de rede AF31 Protocolo de roteamento Sinalização AF21 Sinalização de processos Melhor esforço BE Outros fluxos Fonte: Elaborado pelo autor. A classificação dos códigos DSCP tem bom comportamento em condições de pouco tráfego. Mas o controle de priorização é muito difícil com 25 tráfego intenso, filas cheias e muitos fluxos sendo transmitidos pelas mesmas interfaces. Para garantir o funcionamento do QoS, mecanismos de controle foram desenvolvidos para permitir que o PHB, principalmente em condições menos favoráveis de tráfego, fosse efetivo. 5.3 Os mecanismos Vários mecanismos são utilizados para garantir o PHB em dispositivos de rede, que se estendem de estruturas de filas separadas de algoritmos de descarte prévios nas filas. 5.3.1 Filas As filas são do tipo FIFO (do inglês first in - first out) nas quais os primeiros pacotes que entram são os primeiros a sair da fila (Figura 15). Uma arquitetura com uma única fila pode levar à perda de pacotes importantes quando a fila estiver cheia e experimentar a chegada de novos pacotes prioritários. Um fluxo intenso de baixa prioridade pode ocupar e manter a fila cheia por longo período, causando o descarte de muitos os pacotes entrantes (prioritários ou não) até reduzir o tráfego da interface e voltar a existir espaço livre na fila. Figura 15 – Fila FIFO Fonte: Elaborado pelo autor. 26 5.3.2 Enfileiramento prioritárioNormalmente dispositivos mais eficientes implementam várias filas para a mesma interface de saída, conseguindo melhorar o controle sobre tráfego prioritário ou de baixa latência. Um classificador faz a leitura do campo de controle do pacote e realiza o encaminhamento conforme a marcação de QoS para uma fila específica. Um coordenador de saída transmite os pacotes prioritários enquanto a fila prioritária não estiver vazia, como observado na Figura 16. Após esvaziar a fila de maior prioridade, passa a processar a próxima fila de maior e assim sucessivamente até que uma fila de maior prioridade receba um novo pacote. Naturalmente, deve existir uma análise de fluxo para que o tráfego prioritário não seja tão intenso que assuma permanentemente controle do enlace, paralisando as demais filas. Figura 16 – Enfileiramento prioritário Fonte: Elaborado pelo autor. 5.3.3 Varredura cíclica No mecanismo de fila prioritária, como visto, pode ocorrer o travamento das demais filas no caso de tráfego excessivo na fila prioritária. O mecanismo de varredura cíclica evita o travamento e compartilha o tratamento das filas, executando a transmissão do pacote da fila prioritária e das demais filas de forma circular. A priorização na coordenação de saída não é estrita como no enfileiramento prioritário, mas a estratégia de fila prioritária mantém a latência baixa para o tráfego prioritário, como pode ser observada na Figura 17, na qual a numeração de ordem de chegada dos pacotes indica a antecipação no envio dos pacotes prioritários na saída do coordenador de saída. 27 Figura 17 – Disciplina de varredura cíclica no coordenador de saída Fonte: Elaborado pelo autor. O mecanismo de varredura cíclica possui um tempo de latência médio maior que o mecanismo de priorização estrita, embora apresente uma latência menor nas filas menos prioritárias e a estimativa desses tempos dependa do tamanho dos pacotes e do modelo estatístico de entrada. 5.3.4 Enfileiramento justo ponderado (WFQ) Nesta aula, a varredura cíclica considera pesos wn (5) associados a cada fila, instruindo o coordenador de saída a permanecer um determinado tempo ti (6), proporcional ao peso wi, processando uma fila específica. O tempo total tt de processamento das filas é igual a soma do tempo que o classificador permanece processando cada fila. Figura 18 – Disciplina de varredura cíclica justa ponderada (WFQ) �𝑤𝑤𝑛𝑛 = 1 𝑛𝑛=1 𝑁𝑁 (5) 𝑑𝑑𝑖𝑖 = 𝑤𝑤𝑖𝑖. 𝑑𝑑𝑡𝑡 (6) Fonte: Elaborado pelo autor. A taxa de bits de enlace, proporcional a cada fila (ou por serviço, caso cada fila tenha uma classe de serviço), pode ser determinada pela relação (7). 28 𝑅𝑅𝑖𝑖 = 𝑅𝑅. 𝑑𝑑𝑖𝑖 𝑑𝑑𝑡𝑡 (7) Os pesos podem ser ajustados conforme a necessidade dos fluxos de dados que atravessam os dispositivos. Normalmente, uma rede de dispositivos adota o mesmo padrão de pesos para todos os dispositivos, melhorando a percepção sobre a qualidade de serviço fornecida pela rede. 5.3.5 Balde furado A estratégia de regulação com o algoritmo do balde furado (no inglês: leaky backet) é amplamente utilizada em redes que empregam a comutação e operam com circuitos virtuais, como redes Frame Relay e ATM. Nessa estratégia, define-se um tráfego médio para os fluxos de dados, contabilizado em um período de análise TA. Não estabelece, entretanto, uma razão constante de tráfego que pode variar livremente, durante TA, para valores de taxa acima ou abaixo do tráfego médio estabelecido, desde que mantenha a taxa média até o final de período de análise. São permitidas rajadas de pacotes até o valor máximo de taxa permitido, definida pelo parâmetro TP (taxa de pico), durante o tempo máximo de rajada definido pelo parâmetro TR (tamanho da rajada). Essa estratégia de regulação permite entregas rápidas de pacotes durante curtos períodos, para transporte de solicitação prioritárias ou respostas de baixa latência, mesmo com taxa média especificadas baixas. Os valores de taxa de pico podem ser iguais às taxas de enlace, por exemplo, garantido tempo de transmissão mínimos. 29 Figura 19 – Estratégia do balde furado (leaky bucket) Fonte: Elaborado pelo autor. A estratégia do balde furado pode ser acompanhada na Figura 19A, na qual um balde recebe um fluxo que pode ser maior ou menor que o fluxo do furo no balde. Caso os fluxos sejam iguais, o volume do balde permanece, definindo uma condição de equilíbrio. Nas condições de rajada de tráfego, o balde absorve os fluxos de entrada de maior intensidade até o limite definido pela borda do balde, além do qual ocorrem perdas. Nas condições em que o fluxo de entrada alterna entre rajadas e fluxos menores que o fluxo do furo, o balde realiza a regulação ótima de tráfego. Em (B), o gráfico de tráfego identifica a marca de tráfego médio (TM) definido para um fluxo particular, determina a taxa de pico (TP) e a máxima permanência que o fluxo manter, trafegando na taxa de pico. Caso o fluxo ultrapasse TP, TM durante o período de análise (TA) ou TR, os pacotes excedentes são descartados sumariamente, garantindo as características de tráfego estabelecidas para o fluxo. 5.3.6 Estratégias de aplicação Os mecanismos podem ser implementados individualmente nos dispositivos operando em rede, para criar uma especificação de nível de serviço. Entretanto, a melhor estratégia tem sido adotar operações conjuntas desses mecanismos. Os pacotes são marcados com os valores de comportamento de tráfego e os roteadores de rede são implementados com várias filas, nas quais uma é de alta prioridade, operando em FIFO com prioridade estrita, com as demais operando por disciplinas WFQ com RED (do inglês Random Early Detection), não abordado neste material, que elimina pacote de baixa prioridade 30 quando as filas atingem limites críticos, preestabelecidos, de ocupação. Além desses recursos, os fluxos fim a fim adotam uma regulação leaky bucket para manter um razoável controle sobre os fluxos transportados na rede. Essas estratégias conjuntas garantem que os fluxos sejam tratados conforme suas necessidades, oferecendo a qualidade de serviço esperada. FINALIZANDO Vimos, nesta aula, os aspectos relacionados a conduzir pacotes de dados de um dispositivo a outro dentro da rede, independentemente de onde esteja dentro da rede. Vimos formas de endereçamento de dispositivos e estratégias de roteamento, mecanismos de priorização e coordenação de filas e formas de oferecer qualidade de serviço aos fluxos de dados que atravessam a rede. 31 REFERÊNCIAS CISCO. Implementing Quality of Service Policies with DSCP. Cisco, 15 fev. 2008. Disponível em: <https://www.cisco.com/c/en/us/support/docs/quality-of- service-qos/qos-packet-marking/10103-dscpvalues.html#usingthedscpfield>. Acesso em: 21 jul. 2019. CISCO prevê 12 bilhões de conexões de dispositivos móveis e IoT em 2022 - Em 2022, móvel representará quase 20% do tráfego IP global e chegará a 930 exabytes. ComputerWord, 19 fev. 2019. Disponível em: <https://computerworld.com.br/2019/02/19/cisco-preve-12-bilhoes-deconexoes- de-dispositivos-moveis-e-iot-em-2022/>. Acesso em: 21 jul. 2019. FLOYD, S.; ALLMAN, M. IETF – RFC 5290 - Comments on the Usefulness of Simple Best-Effort Traffic. Network Working Group, jul. 2008. Disponível em: <https://tools.ietf.org/html/rfc5290>. Acesso em: 21 jul. 2019. IANA. Differentiated Services Field Codepoints (DSCP). IANA, 19 jun. 2019. Disponível em: <https://www.iana.org/assignments/dscp-registry/dscp- registry.xhtml>. Acesso em 21 jul. 2019. IETF. RFC 2474 – Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers. The Internet Society, 1998. Disponível em <https://tools.ietf.org/html/rfc2474>. Acesso em: 21 jul. 2019. IETF. RFC 3260 – Assured Forwarding PHB Group. The InternetSociety, 2002. Disponível em: <https://tools.ietf.org/html/rfc3260>. Acesso em: 22 jun. 2019. IETF. RFC 3246 - An Expedited Forwarding PHB (Per-Hop Behavior). The Internet Society, 2001. Disponível em: <https://tools.ietf.org/html/rfc3246>. Acesso em: 22 jun. 2019. KUROSE, J. F. Redes de computadores e a Internet: uma abordagem top- down. 6. ed. São Paulo: Pearson Education do Brasil, 2013. TANENBAUM, A. S. Redes de computadores. Rio de Janeiro: Elsevier, 2003. Conversa inicial TEMA 1 – Objetivos da camada de rede 1.3 Controle de tráfego 1.4 Caminhos redundantes TEMA 2 – Endereçamento na camada de rede TEMA 3 – Roteamento na rede TEMA 4 – algorItmos para roteamento automático TEMA 5 – Qualidade de serviço FINALIZANDO REFERÊNCIAS
Compartilhar