UMinho 2016 Ana Filipa Fernandes Pereira Dados Nomeados em Redes Móveis Ad hoc

Tamanho: px
Começar a partir da página:

Download "UMinho 2016 Ana Filipa Fernandes Pereira Dados Nomeados em Redes Móveis Ad hoc"

Transcrição

1 Universidade do Minho Escola de Engenharia Ana Filipa Fernandes Pereira Dados Nomeados em Redes Móveis Ad hoc UMinho 2016 Ana Filipa Fernandes Pereira Dados Nomeados em Redes Móveis Ad hoc maio de 2016

2

3 Universidade do Minho Escola de Engenharia Ana Filipa Fernandes Pereira Dados Nomeados em Redes Móveis Ad hoc Dissertação de Mestrado Ciclo de Estudos Integrados Conducentes ao Grau de Mestre em Engenharia detelecomunicações e Informática Trabalho efetuado sob a orientação de Professora Doutora Maria João Nicolau Professor Doutor António Costa maio de 2016

4 Agradecimentos Em primeiro lugar, gostaria de agradecer à Professora Doutora Maria João Nicolau e ao Professor Doutor António Costa, por todo apoio e disponibilidade demonstrada, durante toda a execução deste projeto de dissertação de mestrado. Foi um privilégio ter trabalhado sob a sua orientação. Agradeço também ao meu namorado Bruno, que demonstrou sempre todo o seu companheirismo, paciência e incentivo. Queria agradecer, também, a toda a minha família, em especial aos meus pais, por todos os esforços realizados, para que eu pudesse concluir este meu percurso académico, que será muito importante no meu futuro. Por fim, quero agradecer a todos os meus amigos e colegas de curso. iii

5

6 Resumo As redes móveis Ad hoc são compostas por nós móveis, que têm a capacidade de, autonomamente, criar uma rede de comunicações entre eles, sem assistência de um ponto de acesso, contrariamente às redes de infraestrutura. A comunicação é sem fios e ocorre diretamente entre os nós vizinhos, localizados no mesmo raio de alcance. No entanto, neste tipo de redes, a topologia da rede é muito dinâmica, devido à mobilidade dos nós, à entrada e saída de nós na rede e às quebras de ligações constantes, que provocam alterações inesperadas nas rotas. Além disso, o meio de comunicação é sem fios e partilhado entre os nós vizinhos. O paradigma dos dados nomeados (NDN - Named Data Networks) pode contribuir para minimizar alguns dos problemas das redes Ad hoc. As NDNs constituem uma alternativa às redes IP, apontada como uma das mais promissoras arquiteturas de rede da Internet do futuro e baseiam-se no paradigma receiver driven. Os utilizadores (consumidores de informação) apenas têm que saber qual o conteúdo (nome) pelo qual têm interesse, não sendo necessário conhecer a sua localização (endereço). Para obter a informação que deseja, o consumidor propaga um pacote de interesse através da rede. Quando este atinge um nó produtor ou um nó intermédio, que possua o conteúdo em cache, os dados são devolvidos pelo caminho inverso. Nesta dissertação propôs-se uma nova estratégia de reenvio de Interesses e Dados, designada por MPRstrategy (MultiPoint Relay), numa rede de dados nomeados Ad Hoc. O objectivo é diminuir o envio redundante de pacotes e melhorar o desempenho da rede. Os pacotes de interesses são enviados apenas por um subconjunto de nós vizinhos, escolhidos de modo a minimizar as retransmissões. Além disso, o reenvio é atrasado de modo a poder reduzir as transmissões redundantes. Os pacotes de dados seguem o percurso inverso, se possível. Senão são reenviados da mesma forma. A estratégia foi implementada e avaliada no simulador ndnsim, mostrando melhorias de desempenho, quando comparada com outras alternativas. v

7

8 Abstract The mobile networks Ad hoc are composed by mobile nodes, which have the ability to, autonomously, create a communications network between them, without assistance from an access point, in contrast to the infrastructure networks. The communication is wireless and occurs directly between the neighbor nodes, located in the same range. However, in this type of network, the topology of the network is very dynamic due to the mobility of the nodes, the input and output nodes in the network and to the breaks of connections constant, which cause unexpected changes of path. In addition, the means of wireless communications is shared among the nodes neighbor. The paradigm of the named data (NDN - Named Data Networks) can help to minimize some of the problems of Ad hoc networks. The NDNs are an alternative to IP networks, and are viewed as one of the most promising network architectures for the future Internet. This new paradigm is based on the receiver driven. Users (consumers of information) just have to know what is the content of (name) by which you have an interest, not being necessary to know its location (address). To get the information that it want, the consumer propagates a interest packet through the network. When this reaches a producer or an intermediate node, which have the content cached, the data is returned by the reverse path. This dissertation proposed a new Interests and Data packet forwarding strategy, called MPRstrategy (Multipoint Relay), for named-data Ad Hoc networks. The aim is to reduce packet transmission redundancy and improve network performance. The interests packets are sent only by a subset of neighboring nodes chosen to minimize retransmissions. Furthermore, forwarding is delayed in order to reduce redundant transmissions. Data packets follow the reverse route if possible. Otherwise, they are forwarded in the same way. The strategy was implemented and evaluated in ndnsim simulator, showing improved performance compared to other alternatives. vii

9

10 Conteúdo Agradecimentos i Resumo iii Abstract v Conteúdo Lista de Figuras Lista de Tabelas Abreviaturas Símbolos vii xi xiii xv xvii 1 Introdução Enquadramento Objetivos Estrutura da dissertação Redes Ad Hoc Encaminhamento Ad Hoc Encaminhamento Plano Protocolos Proativos Protocolos Reativos Encaminhamento Hierárquico Zone Routing Protocol (ZRP) Encaminhamento Geográfico de posição assistida LAR (Location-Aided Routing) Redes de Dados Nomeados Estrutura do nó NDN Nomes Segurança Encaminhamento NDN Utilização de protocolos de encaminhamento em redes NDN ix

11 Conteúdos x 4 Ad Hoc via NDN Protocolo LFBL Protocolo NAIF Protocolo E-CHANET Protocolo BF Protocolo PAF Comparação dos Protocolos Estratégias de encaminhamento propostas Estratégia BFstrategy Encaminhamento de interesses Encaminhamento de dados Desvantagens da BFstrategy Estratégia DSRstrategy Encaminhamento de interesses Encaminhamento de dados Estratégia MPRstrategy Encaminhamento de mensagens hello Encaminhamento de interesses Algoritmo MPR Encaminhamento de dados Implementação Simulador ndnsim Tabelas Estrutura dos Pacotes interesse/dados Pacote de interesse Pacote de dados Processamento de pacotes pelo NFD Processamento de interesses Processamento de dados Estratégias de encaminhamento implementadas Estratégia BFstrategy Encaminhamento de interesses Encaminhamento de pacotes de dados Estratégia DSRstrategy Encaminhamento de interesses Encaminhamento de pacotes de dados Estratégia MPRstrategy Encaminhamento de mensagens hello Encaminhamento de interesses Encaminhamento de pacotes de dados Testes e resultados Configurações para a simulação Cenários de simulação Métricas usadas na simulação

12 Conteúdos xi 7.4 Resultados experimentais Tráfego de interesses Tráfego de dados RTT Percentagem de interesses satisfeitos Conclusão e trabalho futuro Conclusão Trabalho Futuro A Algoritmos da estratégia BFstrategy 95 A.1 Encaminhamento de interesses A.2 Encaminhamento de dados B Algoritmos da estratégia DSRstrategy 99 B.1 Encaminhamento de interesses B.2 Encaminhamento de dados C Algoritmos da estratégia MPRstrategy 101 C.1 Encaminhamento de interesses C.2 Encaminhamento de dados Bibliografia 105

13

14 Lista de Figuras 2.1 OLSR: ilustração dos MPR, adaptado de [2] (a) sem OLSR; (b) com OLSR [3] Funcionamento do protocolo LAR: (a)esquema 1 [2] Funcionamento do protocolo LAR: (b)esquema 2. [2] Processo de Encaminhamento NDN Procedimento do reencaminhamento de interesses dos protocolos PAF e BF [5] Estrutura da tabela de interesses atrasados dos nós na estratégia BFstrateggy Estrutura da tabela de dados atrasados dos nós na estratégia BFstrateggy Cenário da simulação usada para mostrar desvantagens da BFstrategy Passos 1 até 5 da experiência realizada para mostrar desvantagens da BFsrategy Passos 6 até 10 da experiência realizada para mostrar desvantagens da BFsrategy Estrutura da Tabela Vizinhos dos nós na estratégia MPRstrateggy Exemplo da troca de mensagens /hello na MPRstrategy Estrutura da Tabela provisorio dos nós na estratégia MPRstrateggy Fluxograma da técnica MPR Exemplo da Tabela Vizinhos do nó N na MPRstrategy Exemplo de registo na Tabela provisorio do nó A na MPRstrategy Exemplo da Tabela Provisorio do nó N na MPRstrategy Estrutura do pacote de interesse Estrutura do pacote de dados Estrutura do pacote de interesse na estratégia DSRstrategy Estrutura do pacote de dados na estratégia DSRstrategy Estrutura do pacote de interesse na estratégia MPRstrategy Relação entre pipelines e a estratégia [6] Estrutura da Struct de interesses atrasados na BFstrategy Estrutura da Struct de dados atrasados na BFstrategy Sequência de funções para o encaminhamento de interesses, na estratégia BFstrategy Sequência de funções para o encaminhamento de dados, na estratégia BFstrategy xiii

15 Lista de Figuras xiv 6.11 Sequência de funções para o encaminhamento de interesses, na estratégia DSRstrategy Sequência de funções para o encaminhamento de dados, na estratégia DSRstrategy Estrutura da Tabela Vizinhos de um nó na MPRstrategy Sequência de funções para o encaminhamento de interesses, na estratégia MPRstrategy Sequência de funções para o encaminhamento de dados, na estratégia MPRstrategy Número médio de interesses recebidos por nó Número médio de interesses enviados por nó Percentagem média de interesses enviados por nó Percentagem média de interesses duplicados recebidos Número médio de dados recebidos por nó Número médio de dados enviados por nó Percentagem média de dados enviados por nó Percentagem média de dados duplicados recebidos RTT médio Percentagem média de interesses satisfeitos

16 Lista de Tabelas 4.1 Tabela comparativa dos protocolos LFBL, NAIF, E-CHANET, BF e PAF Debug da simulação exemplo Parâmetros do cenário de simulação xv

17

18 Abreviaturas AODV BF CBR CGSR CID CPT CS DW DDoS DoS DREAM DSR DT DV E-CHANET FIB FSLS FSR GeoCast GPS GPSR HSR IGP LANMAR LAR LFBL Ad hoc On demand Distance Vector Blind Forwarding Constant Bit Rate Clusterhead- Gateway Switch Routing Content IDentifier Content Provider Table Content Store Defer Window Distributed Denial of Service Denial of Service Distance Routing Effect Algorithm for Mobility Dynamic Source Routing Distance Table Distance-Vector Enhanced-Content-centric multihop wireless NETwork Forwarding Information Base Fuzzy Sighted Link State Fisheye State Routing Geographic Addressing and Routing Global Position System Greedy Perimeter Stateless Routing Hierarchical State Routing Interior Gateway Protocol LANdMark Ad Hoc Routing Location-Aided Routing Listen First, Broadcast Later xvii

19 Acrónimos xviii LS MANET MPR NAIF NDN NFD OLSR OSPF PAF PID PIT QMRS QoS RREP RIP RREQ RTT TBRPF TLV ZRP Link-State Mobile Ad Hoc NETwork MultiPoint Relay Neighborhood-Aware Interest Forwarding Named Data Network Ndn Forwarding Daemon Optimized Link State Routing Open Shortest Path First Provide-Aware Forwarding content Packet IDentifier Pending Interest Table QoS Multipath Routing with Route Stability Quality of Service Route REPly Routing Information Protocol Route REQuest Round-Trip Time Topology Broadcast based on Reverse-Path Forwarding Type-Lenght-Value Zone Routing Protocol

20 Símbolos t tempo s v velocidade m/s xix

21

22 Capítulo 1 Introdução 1.1 Enquadramento As redes Mobile Ad hoc Network (MANET) [2] são compostas por nós móveis, que têm a capacidade de, autonomamente, criar uma rede de comunicações entre eles sem assistência de um ponto de acesso, contrariamente às redes de infraestrutura. A comunicação é sem fios e ocorre diretamente entre os nós vizinhos localizados no mesmo raio de alcance. Os nós da rede são, simultaneamente, sistemas terminais e encaminhadores, já que participam no processo de encaminhamento (multi-hop), para que os pacotes possam ser transmitidos desde a fonte até ao destino, passando por vários nós intermédios. No entanto, a topologia da rede é muito dinâmica, devido à mobilidade dos nós, à entrada e saída de nós na rede e às quebras de ligações constantes, que provocam alterações inesperadas das rotas. Assim, o principal problema deste tipo de redes é lidar com essa dinâmica, pois existe a necessidade do conhecimento da topologia da rede, total ou parcial, para o cálculo das melhores rotas. Como tal, frequentes mudanças na topologia têm um impacto direto sobre o desempenho dos protocolos de encaminhamento. Além disso, o meio de comunicações sem fios é partilhado entre os nós vizinhos, o que pode originar colisões se dois ou mais nós transmitirem simultaneamente. O paradigma dos dados nomeados (NDN - Named Data Networks) [7] pode contribuir para minimizar alguns dos problemas das redes Ad hoc. As NDNs constituem uma alternativa às redes IP, apontada como uma das mais promissoras arquiteturas de rede da Internet do futuro. Este novo paradigma baseia-se na subscrição e publicação de conteúdos. Os utilizadores (consumidores de informação) apenas têm que saber qual o conteúdo (nome) pelo qual têm interesse, não sendo necessário conhecer a sua localização 1

23 Capítulo 1. Introdução 2 (endereço). Para obter a informação que deseja, o consumidor propaga um pacote de interesse, através da rede. Quando este atinge um nó produtor ou um nó intermédio, que possua o conteúdo em cache, os dados são devolvidos pelo caminho inverso. Apesar do encaminhamento de tráfego, tal como é utilizado nas redes IP tradicionais, perder algum do seu protagonismo, ele continua a ser necessário, pelo menos na propagação pela rede dos pacotes de interesse, que não interessa que seja feita de forma indiscriminada. A abordagem NDN pode ser particularmente benéfica num ambiente de rede Ad hoc. Os nós passam a comunicar com base nos dados que precisam, em vez de calcularem um caminho específico para chegarem a um nó específico. Isto pode simplificar muito a implementação, por várias razões. Em primeiro lugar, não é necessário atribuir endereços IP a cada nó; em vez disso, os nós podem usar os nomes dos dados, diretamente, para transmitirem pacotes de interesses e de dados entre si. Em segundo lugar, os pacotes de interesse podem ser encaminhados através de múltiplas rotas para potenciais produtores de dados [1]. Esta abordagem multipath é particularmente benéfica em redes Ad hoc, porque remove a dependência crítica sobre caminhos únicos calculados e, por isso, diminuiu as exigências rigorosas sobre as atualizações de rotas e a coerência do estado de encaminhamento entre todos os nós. Outro benefício das NDNs para redes móveis é a capacidade de lidar com a fragmentação dos dados. As NDNs permitem o armazenamento em cache, mesmo quando os caminhos não são estáveis, nem previsíveis. Dado que qualquer fragmento de informação tem uma identificação única, este pode ser armazenado em cache, em qualquer nó que o encaminhe, e pode ser reutilizado se outros nós o solicitarem [1]. Fundamentalmente, uma rede Ad hoc pode ser tão dinâmica, que gastar recursos limitados para possuir informações de rotas, necessárias a toda a hora, pode não ser viável, e as redes NDN podem diminuir este impacto negativo. 1.2 Objetivos O principal objetivo deste trabalho é estudar a viabilidade de aplicar o paradigma das NDNs num contexto de uma rede Ad hoc. Para que este objetivo seja conseguido, será necessário dar resposta a um conjunto de desafios, entre os quais se incluem: Estudar as redes NDN e as redes Ad hoc;

24 Capítulo 1. Introdução 3 Estudar/adaptar os protocolos de encaminhamento e reenvio de tráfego, utilizados nas redes NDN no contexto de uma rede Ad hoc; Construir um cenário, que permita aplicar o paradigma dos dados nomeados numa rede Ad hoc, utilizando o simulador ndnsim [8]; Construir uma estratégia de encaminhamento adequada ao cenário; Testar e avaliar os resultados das simulações efetuadas no cenário implementado; Verificar a viabilidade das redes NDN no contexto de uma rede Ad hoc, usando as estratégias de encaminhamento propostas. 1.3 Estrutura da dissertação Esta dissertação encontra-se organizada em oito capítulos. No Capítulo 1 é feita uma introdução ao tema desta dissertação, apresentando-se o enquadramento deste, bem como os principais objetivos a alcançar. O estado da arte encontra-se dividido em três capítulos: o Capítulo 2, Capítulo 3 e Capítulo 4. O Capítulo 2 aborda o conceito das redes Ad Hoc, o seu funcionamento e os vários tipos de encaminhamento (encaminhamento plano, que ainda são classificados em duas classes: proativas e reativas (on-demand); encaminhamento hierárquico e encaminhamento geográfico de posição assistida). Por fim, são apresentados alguns exemplos dos vários tipos de protocolos de encaminhamento. O Capítulo 3 descreve o conceito das redes NDN, assim como o seu funcionamento e a descrição das principais estratégias utilizadas neste tipo de redes. O Capítulo 4 explica as vantagens das redes NDN num ambiente de rede Ad hoc e descreve cinco protocolos de encaminhamento, que podem ser usados em redes de dados nomeados em ambientes wireless Ad Hoc: Listen First, Broadcast Later (LFBL), Neighborhood-Aware Interest Forwarding (NAIF), Enhanced-Content-centric multihop wirelessnetwork (E-CHANET), Blind Forwarding (BF) e Provide-Aware Forwarding (PAF). Por fim, é apresentada uma comparação dos cinco protocolos de encaminhamento abordados. O Capítulo 5 apresenta e explica as três estratégias de encaminhamento, que vão ser avaliadas no contexto deste trabalho: BFstrategy, DSRstrategy e, por fim, MPRstrategy.

25 Capítulo 1. Introdução 4 O Capítulo 6 apresenta o trabalho desenvolvido para tornar possível a construção do cenário de uma rede NDN num ambiente Ad Hoc. Em primeiro lugar, é apresentada uma descrição do simulador usado, ndnsim, pois é necessário compreender todo o seu funcionamento ao nível do encaminhamento. De seguida, é explicado como foram implementados os vários protocolos de encaminhamento no simulador ndnsim. No Capítulo 7 são descritos os testes experimentais realizados e os respetivos resultados obtidos das simulações efetuadas no cenário implementado. Além disso, são discutidos os benefícios e os malefícios da utilização de dados nomeados nas redes Ad hoc. Por último, no Capítulo 8, são apresentas as conclusões desta dissertação, resumindo os objetivos cumpridos e sugestões de trabalho futuro.

26 Capítulo 2 Redes Ad Hoc As redes móveis Ad Hoc (MANET - Mobile Ad Hoc Network)[9] são redes sem fios, que possuem uma configuração que não depende de uma infraestrutura fixa, ou seja, não há um nó central para o qual convergem todas as informações. Assim, todos os dispositivos da rede funcionam como se fossem um router, encaminhando as informações vindas de dispositivos vizinhos. Os nós numa rede Ad Hoc comunicam sem conexão pré-determinada e esta comunicação é independente das outras existentes na rede, de maneira que, se uma ligação falhar, seja por perda de conexão ou falha do próprio dispositivo, as outras ligações continuam a funcionar. A topologia de rede é dinâmica e imprevisível, devido à mobilidade dos nós. Como o alcance de transmissão dos nós é limitado, muitas vezes é necessário recorrer a nós intermédios para reencaminharem os pacotes, para que estes cheguem ao seu destino. Uma rede Ad Hoc permite que dispositivos móveis possam formar uma rede, em cenários onde haja uma necessidade de se instalar rapidamente uma rede de comunicações. Normalmente, são situações onde não há uma infraestrutura de rede previamente instalada, ou numa situação posterior a uma catástrofe natural, em que a infraestrutura tenha sido destruída. Algumas das suas aplicações possíveis são: coordenação de resgates em situações de desastre, troca de informações táticas em campos de batalha e partilha de informações em reuniões e aulas. 2.1 Encaminhamento Ad Hoc O encaminhamento em redes Ad Hoc enfrenta os problemas da mobilidade dos nós, principalmente em redes com um grande número de nós, e com recursos de comunicação 5

27 Capítulo 2. Redes Ad Hoc 6 limitados (por exemplo, largura de banda e energia). Assim, os protocolos de encaminhamento para redes sem fios Ad Hoc têm de se adaptar rapidamente às mudanças da topologia, frequentes e imprevisíveis, e terem em atenção os recurso que utilizam. Devido ao facto de a largura de banda ser escassa e da população numa MANET ser pequena em comparação com a Internet de rede fixa, o problema de escalabilidade para protocolos de encaminhamento de múltiplos saltos sem fios deve-se, principalmente, ao overhead excessivo das mensagens de encaminhamento. Os protocolos de encaminhamento usam, geralmente, os algoritmos vetor distância (DV - distance-vector) ou estado de ligação (LS - link-state) [2], que tentam encontrar os caminhos mais curtos para os destinos. Os algoritmos DV são conhecidos, geralmente, por sofrerem de lenta convergência de rotas e uma tendência a criarem loops em ambientes móveis. Os algoritmos LS superam este problema, mantendo a informação global da topologia da rede em cada router, através da difusão, periódica, de informações de ligações entre os seus vizinhos. No entanto, como em redes móveis existe uma mobilidade frequente dos nós, isto exigiria uma troca de mensagens de encaminhamento constante, o que levaria a uma sobrecarga significativa na rede. Numa rede com uma população de N nós, a atualização do algoritmo LS gera uma sobrecarga na ordem de N 2 [2]. Como a largura de banda é limitada, em grandes redes, as mensagens de encaminhamento iriam acabar por consumir a maior parte da largura de banda existente e, consequentemente, as aplicações iriam ficar bloqueadas. Assim, reduzir o overhead das mensagens de controlo de encaminhamento torna-se uma questão fundamental para alcançar a escalabilidade. Os protocolos de encaminhamento em redes Ad Hoc são divididos em três grandes categorias [2]: Encaminhamento plano, que ainda se divide em duas classes: proativas e reativas (on-demand) [10] [11] [12]; Encaminhamento hierárquico; Encaminhamento geográfico de posição assistida. Os protocolos de encaminhamento plano adotam um esquema de endereçamento plano, em que todos os nós, que participam nesta tarefa, têm um papel igual entre si. Em contraste, o encaminhamento hierárquico atribui, geralmente, diferentes papéis aos nós da rede [2]. Por fim, o encaminhamento geográfico exige que cada nó esteja

28 Capítulo 2. Redes Ad Hoc 7 equipado com o Sistema de Posicionamento Global (GPS - Global Position System)[2]. Este requisito é muito realista hoje em dia, uma vez que tais dispositivos são baratos e podem fornecer uma precisão razoável. 2.2 Encaminhamento Plano O encaminhamento plano é dividido em dois grupos: protocolos proativos e protocolos reativos Protocolos Proativos Neste tipo de protocolos, as tabelas de encaminhamento estão sempre atualizadas, através do envio periódico de informações e atualizações entre cada par de nós da rede [13]. Assim, quando um nó fonte tem algo para enviar, pode fazê-lo imediatamente, pois já tem a tabela de encaminhamento atualizada, fazendo com que não hajam atrasos na descoberta de rotas. No entanto, como nas redes sem fios existe uma constante mobilidade dos nós, a topologia iria mudar constantemente e, como consequência, manter as tabelas de encaminhamento atualizadas torna-se uma tarefa difícil, havendo a necessidade de um envio constante de pacotes de controlo para a rede [13]. Devido ao facto de os nós, que constituem as redes Ad Hoc, serem, normalmente, dispositivos que possuem características limitadas, como por exemplo, serem alimentados a bateria e com limitações a nível computacional, a exigência imposta neste tipo de protocolos pode ser um problema [13]. Exemplos de protocolos proativos são FSR (Fisheye State Routing), FSLS (Fuzzy Sighted Link State), OLSR (Optimized Link State Routing) e TBRPF (Topology Broadcast based on Reverse-Path Forwarding) [2]. Fisheye State Routing (FSR) Fisheye State Routing, descrito em [2] e [14], é um protocolo de encaminhamento simples, eficiente e do tipo LS, que mantém um mapa da topologia em cada nó e propaga as atualizações de estado das ligações. As principais diferenças entre FSR e o protocolo LS convencional são a maneira pela qual as informações de encaminhamento

29 Capítulo 2. Redes Ad Hoc 8 são difundidas. Em primeiro lugar, FSR troca toda a informação de estado das ligações somente com os vizinhos, em vez de difundi-la na rede. No entanto, essa informação diz respeito a todos os nós da topologia. Em segundo lugar, a troca do estado das ligações é periódica, em vez de acionada por eventos, o que evita atualizações de estado das ligações frequentes, causadas por quebras de ligações e mobilidade dos nós. Além disso, as transmissões periódicas de informações sobre o estado de ligação são conduzidas com diferentes periodicidades: o estado das ligações relativas a nós mais próximos (em termos de número de saltos) é difundido mais frequentemente que o estado das ligações de nós mais distantes. Como resultado, FSR obtém uma distância e informações de rota exatas sobre a vizinhança mais próxima de um nó, e um conhecimento impreciso do melhor caminho para um destino distante. No entanto, esta imprecisão é compensada pelo facto de a rota, em que se desloca o pacote, se tornar progressivamente mais precisa à medida de que o pacote se aproxima do seu destino. Optimized Link State Routing Protocol (OLSR) O OLSR [15] é um protocolo baseado em LS, que limita a quantidade de nós da rede que encaminha os estados das ligações, a fim de se poder eliminar mensagens redundantes. Para isso, é utilizada uma técnica chamada MPR (MultiPoint Relay) [16]. Numa rede Ad Hoc sem o uso do protocolo OLSR, quando um nó recebe um pacote de controlo, normalmente retransmite esses dados aos nós vizinhos. Desse modo, há uma difusão desse pacote na rede, pois todos os nós receberão. Porém, cada um deles receberá o mesmo pacote diversas vezes de diferentes vizinhos, gerando uma sobrecarga na rede de informações redundantes. O protocolo OLSR tenta eliminar este problema. No uso do OLSR, o número de nós que retransmite os pacotes é limitado. Este protocolo seleciona um subconjunto de nós da rede, chamados Multipoint relay (MPR), para disseminar mensagens por toda a rede. A escolha do conjunto de MPRs é feita de modo a que todos os nós a dois saltos de distância recebam os pacotes [2], com menor redundância possível, como se pode verificar na Figura 2.1. Então, quando uma informação deve ser atualizada na rede, os pacotes enviados por um nó chegarão a todos os seus vizinhos, mas somente aqueles denominados MPR poderão retransmitir a informação. Esse processo repete-se com os próximos nós a receberem os pacotes. Dessa maneira, cada nó receberá apenas uma vez os pacotes de informação.

30 Capítulo 2. Redes Ad Hoc 9 Figura 2.1: OLSR: ilustração dos MPR, adaptado de [2] Para calcularem os conjuntos MPR, todos os nós enviam mensagens Hello para os seus vizinhos, que contêm informação acerca dos seus vizinhos e o estado da ligação com eles. O estado da ligação pode ser unidirecional, bidirecional ou MPR [15]. Estas mensagens de controlo são transmitidas em broadcast e são recebidas pelos vizinhos a um salto de distância. Os vizinhos não retransmitem a mensagem. Cada Hello contém: a lista de endereços para os quais existe uma ligação bidirecional válida; a lista de endereços dos nós que foram ouvidos pelo nó, ou seja, foi recebido um Hello, mas a ligação ainda não está validada como bidirecional: se um nó encontra o seu próprio endereço numa mensagem Hello, considera que a ligação para o nó remetente é bidirecional [15]. É esta mensagem Hello que permite que cada nó conheça os seus vizinhos a um e dois saltos de distância. Com base nesta informação, cada nó executa a seleção dos seus nós multipoint relays. Estes multipoint relays são indicados nas mensagens Hello. Com a receção das mensagens Hello, cada nó pode construir a sua tabela MPR selector, com os nós que já foram selecionados como MPRs. Como se pode verificar na Figura 2.2 (a), sem a utilização desta técnica, quando um nó (nó central, cor laranja) quer transmitir uma informação em broadcast, todos os nós que receberem o pacote irão retransmiti-lo, formando uma rede semelhante à da Figura 2.2 (a). Assim, os nós receberão pacotes iguais diversas vezes, vindos de vizinhos

31 Capítulo 2. Redes Ad Hoc 10 Figura 2.2: (a) sem OLSR; (b) com OLSR [3] diferentes, fazendo com que haja sobrecarga na rede, como já tinha sido referido. Na Figura 2.2 (b), pode-se observar a rede semelhante à que resultaria se fosse usado o protocolo OLSR, que contém muito menos retransmissões de pacotes. Os nós MPR estão representados a azul e só eles é que retransmitem os pacotes. Assim, todos os nós receberão a informação uma única vez. O protocolo OLSR é particularmente apropriado para redes de grandes dimensões. Quando a rede é pequena, cada vizinho de um nó se torna um MPR Protocolos Reativos Ao contrário dos proativos, estes protocolos estabelecem uma rota para o destino apenas quando o nó fonte pretende transmitir pacotes, não fazendo qualquer tipo de atualizações periódicas [13]. Exemplos de protocolos reativos são AODV (Ad Hoc On Demand Distance Vector Routing) [3] e DSR (Dynamic Source Routing)[17] [2]. Estes protocolos têm, normalmente, uma fase de descoberta de rota. O nó fonte envia, em broadcast, um pacote de pedido de rota, que é difundido na rede, até chegar ao destino ou a um nó que conheça a rota para o destino. A fase é concluída quando uma rota é encontrada ou todos os possíveis caminhos de saída da fonte são pesquisados. Existem diferentes abordagens para descobrir rotas nos algoritmos reativos. No protocolo AODV, ao receber um pedido de rota, os nós intermédios aprendem o caminho para a fonte e inserem-no na tabela de encaminhamento. O destino recebe, eventualmente, o pedido de rota e pode, assim, responder, usando o caminho inserido no pedido de rota. Isto permite a criação de um caminho full duplex [2]. Um esquema alternativo para traçar caminhos reativos é o protocolo Dynamic Source Routing. O DSR usa source routing, isto é, uma fonte regista, no cabeçalho do pacote, a sequência de nós intermédios que o pacote tem de percorrer para chegar ao destino.

32 Capítulo 2. Redes Ad Hoc 11 O destino, em seguida, recupera todo a rota do pacote e usa-a, inversamente, para responder à fonte. O source routing permite que nós DSR mantenham múltiplas rotas para um destino. Quando uma falha de ligação é detetada, a reconstrução da rota pode ser adiada, caso a fonte possa usar uma outra rota válida. Se não existirem tais rotas alternativas, deve ser invocada uma pesquisa para uma nova rota. O facto de o caminho estar incluído no cabeçalho do pacote, permite fazer a deteção de loops. Para reduzir a sobrecarga de pesquisa de rotas, ambos os protocolos fornecem otimizações, aproveitando as informações de rotas existentes nos nós intermédios. 2.3 Encaminhamento Hierárquico Normalmente, quando uma rede sem fios aumenta de tamanho (para além de certos limites), os esquemas de encaminhamento proativos e reativos tornam-se inviáveis, devido ao overhead da descoberta de rotas e de processamento. Uma maneira de resolver este problema é a produção de soluções escaláveis e eficientes, através da utilização de um protocolo de encaminhamento hierárquico. Os protocolos de encaminhamento hierárquicos sem fios baseiam-se na ideia de organizar os nós em grupos e, em seguida, atribuir diferentes funcionalidades aos nós, dependendo se este está dentro ou fora de um grupo. Tanto o tamanho das tabelas de encaminhamento, como o tamanho dos pacotes de atualizações são reduzidos, incluindo neles apenas uma parte da rede. A forma mais popular de construção da hierarquia é a de grupos de nós geograficamente próximos uns dos outros em clusters explícitos. Cada cluster tem um nó principal (clusterhead), que comunica com os nós de outros grupos, em nome do cluster. Uma forma alternativa é ter uma hierarquia implícita. Deste modo, cada nó tem um alcance local. Diferentes estratégias de encaminhamento são usadas dentro e fora do alcance da aplicação. Através desta flexibilidade, pode ser alcançado um desempenho de encaminhamento global mais eficiente. Exemplos de protocolos hierárquicos são HSR (Hierarchical State Routing) [18], CGSR (Clusterhead-Gateway Switch Routing)[19], ZRP (Zone Routing Protocol) e LAN- MAR (Landmark Ad Hoc Routing Protocol) [12] [2].

33 Capítulo 2. Redes Ad Hoc Zone Routing Protocol (ZRP) ZRP [11] é um protocolo de encaminhamento híbrido, que combina os protocolos proativos e reativos, com o objetivo de tirar o benefício das vantagens no encaminhamento de ambos os tipos. A ideia básica é que cada nó tem uma zona predefinida centrada em si mesmo, em termos de número de saltos. Para enviar pacotes para nós dentro da zona, usa protocolos de encaminhamento proativos, mantendo as informações de encaminhamento atualizadas. Para os nós fora da sua zona, usa protocolos de encaminhamento reativos, que não mantêm a informação de encaminhamento. Para nós fora da sua zona, este protocolo faz a pesquisa de rota através dos pacotes RREQ (Route Request) e a respetiva resposta RREP (Route Reply), de uma forma similar aos protocolos de encaminhamento reativos típicos. 2.4 Encaminhamento Geográfico de posição assistida Os avanços no desenvolvimento do GPS tornaram possível o fornecimento de informações de localização com uma precisão de poucos metros. [2] Além disso, também fornece uma sincronização temporal universal. Embora as informações de localização possam ser usadas para o encaminhamento direcional em sistemas distribuídos Ad Hoc, o relógio universal (fornecido, também, pelo GPS) pode fornecer sincronização global entre nós equipados com GPS. A pesquisa feita pelos autores de [2] mostrou que as informações de localização geográfica podem melhorar o desempenho de encaminhamento em redes Ad Hoc. Exemplos de protocolos geográficos de posição assistida são GeoCast (Geographic Addressing and Routing) [20], LAR (Location-Aided Routing) [21], DREAM (Distance Routing Effect Algorithm for Mobility) e GPSR (Greedy Perimeter Stateless Routing) [22] LAR (Location-Aided Routing) O protocolo LAR, apresentado em [21], é um protocolo on-demand baseado em source routing [2]. O protocolo utiliza informações de localização, a fim de limitar a área da zona de descoberta de uma nova rota. Como consequência, o número de mensagens de pedido de rota é reduzido.

34 Capítulo 2. Redes Ad Hoc 13 O funcionamento do protocolo LAR é semelhante ao DSR [17]. Usando informações de localização, o protocolo LAR executa a descoberta de rota através de flooding limitado (isto é, inunda os pedidos para uma Request zone). Somente nós da Request zone irão encaminhar os pedidos de rota. O protocolo LAR fornece dois esquemas para determinar a Request zone. Esquema 1: A fonte estima uma área circular (Expected zone), na qual se espera que o destino seja encontrado naquele momento. A posição e o tamanho do círculo é calculado com base no conhecimento da localização anterior do destino, o instante de tempo associado ao registo de localização anterior e a velocidade média do destino. A menor região retangular que inclui a Expected zone e a fonte é a Request zone, como se pode verificar na Figura 2.3. As coordenadas dos quatro cantos da Request zone estão ligados a um pedido de rota pela fonte. Durante a difusão do pedido de rota, só nós dentro da Request zone reencaminham a mensagem de pedido.[2] Figura 2.3: Funcionamento do protocolo LAR: (a)esquema 1 [2] Esquema 2: A fonte calcula a distância para o destino, com base na distância entre esta e a localização conhecida do destino. Esta distância, juntamente com a posição do destino, é incluída na mensagem de pedido de rota e enviada para os vizinhos. Quando um nó recebe o pedido, calcula a sua distância até ao destino. Se a sua distância até ao destino for inferior ou igual à distância incluída na mensagem de pedido, reencaminha a mensagem de pedido. Caso contrário, não reencaminha. Como exemplo, na Figura 2.4

35 Capítulo 2. Redes Ad Hoc 14 os nós I e J irão retransmitir o pedido de S. Antes de retransmitir o pedido, o nó atualiza o campo de distância, na mensagem de pedido, com a sua própria distância para o destino.[2] Figura 2.4: Funcionamento do protocolo LAR: (b)esquema 2. [2]

36 Capítulo 3 Redes de Dados Nomeados Com a evolução e crescente utilização da Internet, surgiram alguns problemas com o aumento do tráfego, como a segurança, escalabilidade, qualidade de serviço e dependência da localização. Para se tentar resolver estes problemas, surgiu uma nova arquitetura: as redes de Dados Nomeados. O projeto de Redes de Dados Nomeados (NDN Named Data Network) [7] propôs uma evolução da arquitetura IP, inovando o paradigma de difusão de mensagens na rede. Atribui nomes aos dados, fazendo com que a entrega passe a ser efetuada com base na informação que transportam, e não na sua localização, como acontece utilizando o paradigma normal de entrega entre uma origem e um destino. A comunicação em NDN é feita através de consumidores e produtores de dados, através da troca de dois tipos de pacotes: Interesses e Dados. Ambos os tipos de pacotes transportam, no seu cabeçalho, um nome (prefixo), que identifica os dados ou apenas uma parte. O consumidor coloca o nome dos dados desejados no pacote de interesse e propaga-o na rede. Os nós intermédios usam este nome para encaminharem o interesse para o(s) produtor(es) de dados. Quando o interesse atingir um nó que possua os dados solicitados, o nó irá retornar um pacote de dados, que contém o nome e o conteúdo, juntamente com a assinatura do produtor. Este pacote de dados segue o caminho inverso tomado pelo interesse, a fim de voltar para o consumidor que o solicitou. 15

37 Capítulo 3. Redes de Dados Nomeados Estrutura do nó NDN Para exercer as funções de encaminhamento dos pacotes de dados e de interesse, cada nó NDN possui três estruturas de dados: uma tabela de interesses pendentes (PIT - Pending Interest Table), uma tabela com informações de encaminhamento (FIB - Forwarding Information Base) e, por fim, uma tabela com o armazenamento de conteúdos (CS Content Store), descritas em detalhe em [23]. A FIB é usada para encaminhar pacotes de interesse em direção a potenciais fontes dos dados correspondentes. É quase idêntica a uma tabela de encaminhamento IP, com a diferença que a FIB permite ter uma lista de interfaces de saída, em vez de uma única. A CS é uma cache temporária de dados recebidos pelo nó. Depois de encaminhar os pacotes de dados, um router NDN armazena os mesmos, a fim de poder responder a futuros interesses. O armazenamento é um dos mecanismos mais atrativos que foi proposto pelas redes NDN, pois este significa a redução da latência e a redução do custo da largura de banda. Os routers atuais da Internet não armazenam os conteúdos que passam por eles, pois não estão habilitados para a reutilização dos dados. Esta caraterística traz benefícios essencialmente para as redes sem fios [24]. A tabela PIT armazena todos os pacotes de interesse que um nó tenha encaminhado (tanto tenha sido o produtor do pacote de interesse ou apenas um nó intermédio), e que ainda não tenha recebido o respetivo pacote de dados. Em cada entrada PIT é registado o nome dos dados, juntamente com as suas interfaces de entrada e saída [24]. Desta forma, é registada a rota do interesse, para quando os nós receberem o pacote de dados correspondente, enviarem-no pela interface por onde o interesse chegou. 3.2 Nomes As NDNs apresentam uma estrutura de nomes organizada hierarquicamente, que é composta por um determinado número de componentes relacionados entre si. O nome dos dados não corresponde ao nome do ficheiro ou ao nome de parte dele. A sua notação é semelhante às URLs, em que o caractere / delimita os componentes [24]. No exemplo uminho.pt/di/vídeos/frame.mpg/1/2, uminho.pt/di/vídeos/frame.mpg corresponde ao nome gerado pela aplicação e 1/2 corresponde ao segmento 2 da versão 1 do ficheiro [4].

38 Capítulo 3. Redes de Dados Nomeados 17 As convenções de nomenclatura e os mecanismos de descoberta dos nomes são geridos pelas próprias aplicações [4]. São utilizados algoritmos determinísticos para chegar ao nome, com base em informações que estão disponíveis, tanto para produtores como para consumidores [24]. 3.3 Segurança Em contraste com a arquitetura TCP/IP, que deixa a responsabilidade pela segurança (ou falta dela) para os terminais, as redes NDN protegem os dados em si, obrigando os produtores de dados a assinarem, criptograficamente, cada pacote de dados [25]. A assinatura do autor garante a integridade e permite ao consumidor determinar de onde vêm os dados. A segurança centrada nos dados do NDN tem aplicações no controle de acesso aos dados e segurança da infraestrutura. As aplicações podem controlar o acesso aos dados, por meio de cifragem (encriptação de dados) e distribuição das chaves encriptadas dos dados, limitando o perímetro de segurança por onde os dados podem circular. O encaminhamento de múltiplos caminhos do NDN, em conjunto com o módulo de estratégia de encaminhamento adaptativo, diminui os ataques por hijacking, que consiste em interceptar uma sessão TCP iniciada entre duas máquina a fim de a desviar, porque os nós podem detectar anomalias causadas por estes ataques e recuperarem os dados, através de caminhos alternativos [23]. Devido ao facto de os pacotes NDN referenciarem o conteúdo em vez dos dispositivos de onde provêm, é mais complicado para um nó malicioso atacar um dispositivo em particular [26]. O estado de uma tabela PIT também pode ajudar a mitigar ataques DDoS - Distributed Denial Of Service, porque o número de entradas PIT é um indicador explícito da carga do nó. Colocando um limite superior para este número, define o limite máximo para o efeito de um ataque DDoS.[27]. No entanto, as redes NDN ainda não são totalmente seguras, e ainda existem alguns problemas de segurança [28]. Um exemplo disso são as consequências da utilização do armazenamento em cache, que, apesar de melhorarem o desempenho, guardam informações da comunicação, que podem vir a ser utilizadas por atacantes.

39 Capítulo 3. Redes de Dados Nomeados Encaminhamento NDN O processo de encaminhamento de pacotes de interesse e dados nas redes NDN está representado na Figura 3.1. Figura 3.1: Processo de Encaminhamento NDN Quando um nó recebe um pacote de interesse, este verifica na sua CS se contém os dados correspondentes ao interesse e, caso possua, retorna o pacote de dados para a interface a partir da qual o interesse chegou. Caso contrário, o nó procura o nome dos dados na sua PIT e, caso exista uma entrada correspondente, regista, simplesmente, a interface de entrada do interesse, nessa entrada. Caso contrário, cria uma nova entrada com o nome e interface de entrada e saída do pacote de interesse e encaminha-o para o produtor, com base nas informações da FIB. Quando um nó recebe interesses com o mesmo nome de vários nós, encaminha, apenas, o primeiro pacote recebido, para o produtor de dados.

40 Capítulo 3. Redes de Dados Nomeados 19 A estratégia de encaminhamento pode decidir abandonar um interesse em certas situações, como por exemplo, se todas as ligações estiverem congestionadas ou o interesse é suspeito de fazer parte de um ataque DoS (Denial of Service ataque de negação de serviço). Para cada interesse, a estratégia de encaminhamento decide quando e para onde o encaminhar. Quando um nó recebe um pacote de dados, procura a entrada PIT correspondente, armazena os dados na CS e encaminha para todas as interfaces listadas nessa entrada PIT. De seguida, remove a entrada PIT. Caso não encontre nenhuma entrada PIT correspondente, descarta o pacote de dados. No entanto, existe a possibilidade de um nó nunca receber o pacote de dados correspondente ao interesse de uma entrada PIT, por diversas razões e, por isso, é definido um temporizador e, caso o pacote não seja recebido durante esse período, a entrada PIT é removida. Como os pacotes de dados percorrem sempre o caminho inverso dos pacotes de interesse e, caso não hajam pacotes perdidos, um pacote de interesse resulta, apenas, num pacote de dados em cada ligação, proporcionando um equilíbrio de fluxo. Para o encaminhamento de dados de elevadas dimensões, em vez de ser enviado um pacote com um payload muito grande, a mensagem é fragmentada em vários pacotes. Neste caso, o pacote de interesse fornece um papel similar aos ACKs TCP no controlo de fluxo de tráfego na Internet de hoje: um ciclo de feedback, controlado pelo consumidor, em que o envio do interesse do segundo fragmento, significa que o consumidor recebeu, com sucesso, o primeiro fragmento [24]. 3.5 Utilização de protocolos de encaminhamento em redes NDN A troca de interesses e dados simétrica e o estado de encaminhamento na rede, permitem uma característica única de NDN - o encaminhamento adaptativo [23] [29]. Um nó espera que um pacote de dados chegue, pela mesma interface pela qual transmitiu o interesse correspondente, dentro de um período razoável de tempo (por exemplo, o tempo de ida e volta). Caso contrário, deve esperar um tempo limite ou receber um pacote NACK, como proposto pelos autores de [23], o que sinaliza uma falha dessa tentativa. Após a detecção de uma falha, o nó pode, então, enviar o interesse para outras interfaces, a fim de explorar caminhos alternativos.

41 Capítulo 3. Redes de Dados Nomeados 20 Assim, o plano de encaminhamento de uma rede NDN é capaz de detetar e recuperarse de falhas na rede por conta própria, permitindo que cada router NDN lide com falhas da rede local, sem depender da convergência do encaminhamento global [30]. Este novo recurso levou aos autores de [30] a reexaminarem o papel dos protocolos de encaminhamento numa rede NDN: será que ainda precisa de um protocolo de encaminhamento? Através de análises e simulações extensivas, os autores mostraram que os protocolos de encaminhamento continuam a ser altamente benéficos numa rede NDN. O protocolo de encaminhamento divulga a topologia inicial e informações de políticas, bem como as alterações de longo prazo e, por fim, calcula a tabela de encaminhamento, para orientar o processo de encaminhamento. No entanto, devido ao facto de o plano de encaminhamento ser capaz de detetar e recuperar de falhas rapidamente, o protocolo de encaminhamento já não precisa de lidar com taxas de sobrecarga de atualizações a curto prazo na rede [30]. E isto pode melhorar, significativamente, a sua escalabilidade e estabilidade.

42 Capítulo 4 Ad Hoc via NDN As redes Ad Hoc têm a vantagem de permitir que dispositivos móveis estabeleçam, rapidamente e sem assistência de um ponto de acesso, uma rede de comunicação entre eles, que potencie a utilização de diversos serviços. Normalmente, são situações onde não há uma infraestrutura de rede previamente instalada, ou numa situação posterior a uma catástrofe natural, em que a infraestrutura tenha sido destruída. Algumas das suas aplicações possíveis são: coordenação de resgates em situações de desastre, troca de informações táticas em campos de batalha e partilha de informações em reuniões e aulas. No entanto, este tipo de redes tem uma topologia de rede muito dinâmica, devido à mobilidade dos nós, à entrada e saída de nós na rede e às quebras de ligações constantes, que provocam alterações inesperadas das rotas. Além disso, o meio de comunicações sem fios é partilhado entre os nós vizinhos. Assim, os protocolos de encaminhamento necessitam de conhecer a topologia da rede, total ou parcial, para o cálculo das melhores rotas. Como tal, frequentes mudanças na topologia têm um impacto direto sobre o desempenho destes protocolos. Como este tipo de redes tem várias vantagens, foi pensado em conciliar as abordagens das redes de dados nomeados e das redes Ad Hoc, a fim de se tentar contornar os seus problemas. A abordagem NDN pode ser particularmente benéfica num ambiente de rede Ad Hoc. Os nós móveis podem comunicar com base nos dados que precisam, em vez de determinarem um caminho específico para chegarem a um nó específico. Isto pode simplificar muito a implementação, por várias razões. Em primeiro lugar, não é necessário atribuir endereços IP a cada nó; em vez disso, os nós podem usar os nomes dos dados, diretamente, para transmitirem pacotes de interesses e de dados entre si. Quando um 21

43 Capítulo 4. Ad Hoc via NDN 22 nó A tem algo para enviar, determinado por uma aplicação específica, anuncia os dados usando o nome dos dados nomeados. Quando um nó R precisa de alguns dados, simplesmente envia um pacote de interesse, usando o nome dos dados da aplicação correspondente. Outros nós, que recebam o pacote de interesse, têm de decidir se o enviam no sentido de A (produtor), ou se transmitem o pacote em broadcast [1]. Esta decisão é regida pelas configurações e políticas de controlo local [1]. Em segundo lugar, os pacotes de interesse podem ser encaminhados através de múltiplas rotas para potenciais produtores de dados [1]. No caso de os dados solicitados serem recebidos através de múltiplos caminhos, um nó pode avaliar qual o caminho que apresenta o melhor desempenho e enviar um pacote de interesse futuro, para a mesma fonte de dados, apenas através desse caminho [1]. Esta abordagem multipath é particularmente benéfica em redes Ad Hoc, porque remove a dependência crítica sobre caminhos únicos pré-calculados e, por isso, diminuiu as exigências rigorosas das atualizações de rotas e a coerência do estado de encaminhamento entre todos os nós. Fundamentalmente, uma rede Ad Hoc pode ser tão dinâmica, que gastar recursos limitados para possuir informações de rotas, necessárias a toda a hora, pode não ser viável, e as redes NDN podem diminuir este impacto negativo. Outro benefício das NDNs para redes móveis é a capacidade de lidar com a fragmentação dos dados. As técnicas de transparent caching, em redes móveis, são ineficazes, porque funcionam apenas em redes fixas, assumindo que as rotas permanecem estáveis [1]. Outras técnicas de cache, tal como byte caching, que são executadas na camada de rede, em vez de na camada de transporte, sofrem das mesmas limitações. Estas podem ser executadas somente quando as rotas são estáveis e os nós sabem o caminho exato que o pacote vai seguir, uma exigência que não pode ser satisfeita em ambientes móveis [1]. Em contraste, as NDNs permitem o armazenamento em cache, mesmo quando os caminhos não são estáveis nem previsíveis. Dado que qualquer fragmento de informação tem uma identificação única, este pode ser armazenado em cache, em qualquer nó que o encaminhe, e pode ser reutilizado se outros nós o solicitarem. Por exemplo, se houver uma transferência de um ficheiro MPEG demorada, sobre HTTP dentro de uma rede móvel, nenhum dos nós intermédios na rede móvel será capaz de armazenar em cache todo o arquivo, assumindo que os pacotes vão seguir caminhos diferentes. Nas redes NDN, os diferentes fragmentos de dados do mesmo ficheiro MPEG possuem um nome

44 Capítulo 4. Ad Hoc via NDN 23 exclusivo e, portanto, quando um nó solicita o arquivo, os nós intermédios podem armazenar todas as partes do ficheiro MPEG que passar por eles. Os pedidos subsequentes para o mesmo ficheiro MPEG, ou pedidos de retransmissão de algumas partes do ficheiro, podem, então, ser servidos pelas cópias das várias partes do ficheiro que foram, oportunisticamente, armazenadas nos nós intermédios. Finalmente, as NDNs são perfeitamente adequadas, para permitirem a comunicação em cima de qualquer tipo de rede, uma exigência tão crucial nas redes móveis, onde o estado de conectividade de rede pode variar de quase sempre ligado a conectados intermitentemente [1]. Além disso, as NDNs permitem a implementação de uma grande gama de protocolos, que vão desde o tempo real, a protocolos tolerantes a atrasos, dentro da mesma estrutura [1]. Nas redes NDN, os nós móveis não precisam de detetar o seu estado de conectividade e, consequentemente, ajustar a sua modalidade de comunicação com base nas condições atuais da rede. Por exemplo, um nó móvel, que foi originalmente ligado através de uma rede celular 3G, pode transitar para uma rede peer-to-peer, quando se move para fora do alcance da rede 3G, sem a necessidade de alterar a sua modalidade de comunicação [1]. De seguida, são descritos cinco protocolos de encaminhamento (LFBL, NAIF, E- CHANET, BF e PAF), que podem ser usados em redes de dados nomeados em ambientes wireless Ad Hoc. 4.1 Protocolo LFBL Listen First, Broadcast Later (LFBL) é um protocolo de encaminhamento para redes sem fios, proposto em [31], capaz de lidar com a alta dinâmica das redes Ad Hoc e que não exige rotas pré-determinadas, endereçamento IP, ou uma camada MAC com capacidade para transmitir em unicast. Este protocolo usa o conceito de dados nomeados. Esta combinação permite que o LFBL lide, perfeitamente, com duas situações existentes em redes dinâmicas: mobilidade física dos nós e mobilidade lógica dos dados. A facilidade que este protocolo tem em lidar com a mobilidade física dos nós significa que o seu desempenho não é dependente do tipo ou da frequência de alterações topológicas da rede. Quanto à mobilidade lógica, significa que os pedidos de dados não precisam de ser direcionados a um nó específico, pois é possível obter uma resposta através de qualquer outro nó, que possua os dados solicitados.

45 Capítulo 4. Ad Hoc via NDN 24 A comunicação no LFBL é composta por duas fases: uma fase de pedido e uma fase de dados. Fase de pedido A fase de pedido é semelhante às fases de pedido de rota dos protocolos on-demand. O LFBL usa uma abordagem centrada nos dados. Os consumidores solicitam os dados que estão interessados, pelo seu nome, através de um pacote REQ. O LFBL utiliza, exclusivamente, a comunicação em broadcast para todos os pacotes [31], tornando-se uma opção mais natural para um meio sem fios, permitindo uma maior flexibilidade na seleção de protocolos da camada MAC. Caso o consumidor tenha conhecimento prévio de quem é o produtor, o pacote de solicitação é endereçado para ele. Caso contrário, o pacote é difundido pela rede, de forma a garantir que qualquer produtor disponível seja encontrado, e que seja feita uma distribuição de informações de distância, para que outros nós na rede possam aprender a sua distância até ao consumidor. Cada nó que receber o pacote REQ decide se pode responder ao pedido, verificando se contém os dados desejados. Caso não possua os dados, o recetor tem duas decisões importantes a fazer: se a sua retransmissão beneficiará o encaminhamento do pacote e, nesse caso, qual o período de tempo que é necessário esperar, antes de o encaminhar. O recetor tenta perceber se está mais perto do destino do que o nó que lhe enviou o pacote. Para isso, verifica o cabeçalho do pacote, que possui um campo designado por srcdist, que contém a distância entre o nó origem do pacote e o encaminhador mais recente, modificado em cada salto. Em cada salto, os recetores inserem a sua própria distância até ao consumidor nesse campo, antes de reencaminharem o pacote. Os nós usam esse campo, também, para descobrirem e atualizarem a sua distância até aos nós ativos na rede. Antes do encaminhamento, cada nó escolhe um certo período de tempo para esperar e ver se os outros nós encaminham o mesmo pacote. Este período, que serve para o nó escutar o meio, tem duas finalidades importantes: priorização e evitar colisões entre nós intermédios. Priorização é atribuir períodos de escuta mais curtos para nós que acreditam que estão numa rota melhor, em relação aos seus vizinhos, entre o consumidor e o produtor.

46 Capítulo 4. Ad Hoc via NDN 25 Prevenção de colisões significa, simplesmente, reduzir a possibilidade de dois nós escolherem a mesma duração para o seu período de escuta, e transmitirem simultaneamente, causando uma colisão. Adicionar um fator aleatório para o período de escuta consegue ser altamente eficaz para este fim, de acordo com as simulações feitas pelos autores. Outra técnica usada pelos autores foi corresponder este tempo a um período de tempo relacionado com a sua distância até ao vizinho que enviou o pacote. Quando um produtor recebe o REQ, produz um pacote de resposta (REP). Para além dos dados, o REP contém a distância até ao consumidor, calculada a partir do cabeçalho do REQ. Esta distância é usada pelos nós intermédios, para tomarem decisões de encaminhamento. Existe a possibilidade de o consumidor receber mais do que uma resposta ao seu pedido, mas, nesse caso, pode escolher qual prefere, escolhendo qual o produtor a quem deseja enviar um aviso de receção. O produtor que deixar de receber avisos de receção, acabará por desistir. Fase de dados A fase de dados começa quando uma resposta chega ao consumidor e continua até que o consumidor termine o envio de pedidos ou não esteja a receber as respostas aos seus pedidos. Neste último caso, o consumidor retorna para a fase de pedido. Numa rede altamente dinâmica, a topologia muda constantemente e, por isso, qualquer estado, mantido num nó, ficaria desatualizado rapidamente. A atualização dos estados iria implicar uma grande sobrecarga na rede. Em contraste, o LFBL acaba completamente com a noção de seleção de rota. Para cada fluxo fim-a-fim, os potenciais encaminhadores LFBL tomam decisões, com base na sua distância até ao destino. 4.2 Protocolo NAIF Conscientes da sobrecarga excessiva do reenvio de tráfego nas NDNs em ambientes Ad Hoc, os autores de [32] propuseram um mecanismo de propagação de interesses adaptativo, designado por NAIF (Neighborhood-Aware Interest Forwarding), que visa reduzir a sobrecarga da difusão, mantendo a robustez. Em ambos, as transmissões de interesses são efetuadas em broadcast. A lógica de NAIF é, em vez de selecionar um nó para transmitir o interesse, nós intermédios propagam os interesses, cooperativamente,

47 Capítulo 4. Ad Hoc via NDN 26 entre o consumidor e os potenciais produtores de dados. O algoritmo NAIF é aplicado apenas para o encaminhamento de interesses em nós intermédios. O NAIF reduz o encaminhamento de pacotes duplicados, controlando o reenvio de pacotes de interesse, com base nas estatísticas de transmissão dos nós, que são usadas, posteriormente, para ajustar a taxa de transmissão. O controlo de encaminhamento NAIF baseia-se em dois parâmetros obtidos nos nós intermédios: a taxa de recuperação de dados, que é a razão entre o número de pacotes de dados, obtidos com sucesso, e o número de interesses enviados; e a taxa de transmissão [32]. Estes dois parâmetros são ajustados periodicamente, com base nas estatísticas de encaminhamento. Um nó decide transmitir ou descartar os interesses recebidos, com base na taxa de transmissão: quantos mais pacotes de dados, com o mesmo prefixo, um nó ouvir dos seus vizinhos, mais interesses desse prefixo pode descartar, pois julga-os serem supérfluos [32]. Por outro lado, quando um nó deteta que descartou demasiados interesses, aumenta a sua taxa de transmissão para compensar. Desta forma, os nós intermédios transmitem os interesses, cooperativamente, reduzindo as situações de congestionamento. Além disso, são filtrados os encaminhadores inelegíveis, que são os nós que possuem uma taxa de recuperação de dados baixa e estão muito longe do consumidor. Assim, se um nó considerado inelegível receber um interesse, este é descartado. 4.3 Protocolo E-CHANET E-CHANET (Enhanced-Content-centric multihop wirelessnetwork) é uma arquitetura centrada em informações, proposta em [33], para redes Ad Hoc, que executa funções de routing, reenvio de pacotes e transporte confiável, especificamente adaptada para lidar com as limitações e exigências de ambientes sem fios distribuídos. O encaminhamento E-CHANET tem dois objetivos: por um lado, visa reduzir o número de nós que participam no processo de encaminhamento (e, portanto, o número de cópias de pacotes), limitando assim o consumo de energia, acelerando a entrega e economizando os recursos da rede; por outro lado, o objetivo é tirar vantagens da partilha de conteúdo em vários nós, e em lidar com nós móveis. No E-CHANET, semelhante ao protocolo LFBL, cada pacote é transmitido, considerando o mecanismo de supressão baseado em contagem, para reduzir a probabilidade de colisões e limitar as transmissões em rajada. Tanto as transmissões de dados, como de interesses são adiadas por um período de tempo T Data e T Interest, respetivamente.

48 Capítulo 4. Ad Hoc via NDN 27 Estes tempos são escolhidos aleatoriamente, mas de forma a que T Data seja menor do que T Interest, a fim de dar maior prioridade aos pacotes de dados, sobre os interesses. Se um nó ouvir que o mesmo pacote está a ser transmitido por outro nó, para um potencial destino, durante o seu tempo de espera, em seguida, aborta a sua própria transmissão. Cada nó E-CHANET possui as mesmas estruturas de dados que as NDNs: FIB, PIT e CS. Além destas, possui também uma nova estrutura de dados, chamada CPT (Content Provider Table), que armazena informações sobre o produtor descoberto (ou seja, o ID do produtor, a distância até ele e o RTT medido), com o objetivo de que esta informação possa ajudar na decisão do encaminhamento dos interesses. O encaminhamento E-CHANET é dividido em três fases: (i) difusão controlada de interesses, (ii) encaminhamento de dados impulsionado por entradas PIT, e (iii) encaminhamento de interesses impulsionado por entradas CPT. (i) Difusão controlada de interesses: Um consumidor inicia o processo, transmitindo um interesse. Cada nó que receber o pacote, verifica a sua CS. Se forem encontrados os dados correspondentes, agenda a transmissão destes, para depois de T Data. Caso contrário, procura por uma entrada correspondente na PIT. Se não for encontrada uma entrada correspondente do interesse, o nó insere uma nova entrada na PIT, que inclui, temporariamente, o nome do pacote requisitado e a distância para o consumidor. Antes de reencaminhar o pacote, o nó verifica a CPT. Se forem encontradas informações sobre um produtor acessível para os dados solicitados, preenche os campos do interesse com essa informação. Pelo contrário, se for encontrada uma correspondência do interesse na PIT, o nó descarta o interesse, pois considera o pacote duplicado, e verifica se a PIT precisa de ser atualizada. (ii) Encaminhamento de dados impulsionado por entradas PIT: Eventualmente, o interesse vai chegar a um (ou mais) produtor(es). É possível que cheguem pedidos redundantes ao produtor e, neste caso, o produtor apenas responde ao primeiro interesse, enviando os dados correspondentes. O pacote de dados contém o seu identificador e a sua distância (número de saltos) até ao consumidor, calculada a partir do campo contagem de saltos do interesse recebido.

49 Capítulo 4. Ad Hoc via NDN 28 Cada nó que receber o pacote de dados averigua, em primeiro lugar, se possui uma entrada PIT correspondente. Caso possua, verifica se está mais próximo do consumidor, do que o nó que lhe enviou o pacote. Se sim, atualiza o campo de distância no pacote de dados, com a sua distância até ao consumidor. Por fim, adiciona uma nova entrada (ou atualiza a entrada, se existir) na CPT, com o identificador do pacote de dados e a sua distância para o produtor, calculada através do campo contagem de saltos, contida no pacote de dados. Finalmente, o nó agenda a transmissão dos dados, para depois de T Data. Se o nó não estiver mais próximo do consumidor, do que o nó que lhe enviou o pacote, ou não contiver a entrada PIT correspondente, os dados são descartados. (iii)encaminhamento de interesses impulsionado por entradas CPT: Ao receber os dados, o consumidor pede os pacotes subsequentes, transmitindo interesses que anunciam um produtor. Para isso, preenche o cabeçalho do interesse com o ID do produtor descoberto e o número de saltos até ele, que vinha no cabeçalho do pacote de dados recebido. Cada nó intermédio que receber o interesse, procura uma correspondência na sua Content Store. Se for encontrada e o nó for o produtor registado no pacote, envia imediatamente os dados. A identificação do produtor, contida nos pacotes de dados, é utilizada para limitar os pacotes de dados redundantes na rede. Devido ao meio ser partilhado, vários nós, que mantêm os dados na sua CS, podem responder simultaneamente ao mesmo interesse. Caso o nó intermédio não possua os dados, procura uma entrada CPT, correspondente ao ID do produtor e ao nome do conteúdo registados no pacote. Se o nó estiver mais perto do produtor do que o nó que lhe enviou o pacote, atualiza o cabeçalho do interesse com a sua distância até ao produtor, e, finalmente, agenda a transmissão do interesse, para depois de T Interest. 4.4 Protocolo BF O protocolo Blind Forwarding (BF) é um esquema broadcasting baseado em contadores, que adia a transmissão de interesses e dados, a fim de limitar a probabilidade de colisões [5], semelhante aos protocolos LFBL e E-CHANET. Além disso, aproveita a escuta de pacotes, para o controlo da redundância dos mesmos.

50 Capítulo 4. Ad Hoc via NDN 29 Em redes Ad Hoc, um consumidor tem, normalmente, muitos vizinhos, que podem enviar dados ou encaminhar interesses. A retransmissão de interesses e dados é adiada por um tempo T Interest e T Data, respetivamente. Estes valores são calculados aleatoriamente e com T Interest > T Data, a fim de dar maior prioridade aos pacotes de dados. T Data serve como um temporizador que evita colisões entre pacotes de dados, enquanto T Interest serve como um temporizador que evita colisões entre interesses. Um nó N, que receber um interesse e não possuir os dados correspondentes, torna-se num potencial encaminhador. Durante o T Interest, o interesse permanece numa fila de pacotes atrasados, enquanto o nó N escuta o canal: se ouvir os dados solicitados ou o mesmo interesse várias vezes, γ Interest, cancela a transmissão do interesse e apaga a respetiva entrada PIT. Caso contrário, encaminha o interesse ao fim de T Interest. O parâmetro γ Interest atua como um threshold, que controla a redundância de interesses (para um nó que tenha mais do que 3 vizinhos, o valor de γ Interest = 1 é suficiente para permitir a disseminação do pedido na rede) [5]. O procedimento de envio dos dados, pelo produtor ou qualquer nó intermédio, passase de forma semelhante. Quando um nó recebe um pacote de dados, verifica, em primeiro lugar, se tem uma entrada PIT correspondente. Se tiver, escuta o canal: se ouvir os dados solicitados, cancela a transmissão dos dados. Caso contrário, encaminha-os ao fim de T Data. Se o nó não encontrar nenhuma entrada PIT, significa que os dados não são solicitados e, por isso, o pacote é descartado. 4.5 Protocolo PAF O protocolo Provide-Aware Forwarding (PAF) é baseado nos protocolos LFBL e E-CHANET, abordados nas Secções 4.1 e 4.3, respetivamente. Assim, os autores de [5] aproveitaram os princípios essenciais destes protocolos e implementaram-nos por cima do esquema BF, abordado na Secção 4.4. No protocolo PAF cada nó possui uma tabela DT (Distance Table), em adição às tabelas NDN convencionais, que inclui, para todos os nomes de conteúdos processados, o identificador do produtor (provider identifier - ID) e a distância até ele. O primeiro interesse é transmitido pelo consumidor C e disseminado na rede, de acordo com a estratégia BF. Quando o produtor P o receber, responde com um pacote de dados, que inclui dois campos adicionais: inicializada a 1. o seu ID único e a distância de salto

51 Capítulo 4. Ad Hoc via NDN 30 Na receção dos dados, cada nó N que possuir uma entrada PIT do interesse correspondente, armazena na sua DT o nome dos dados, o identificador de P e a distância até ele. De seguida, N incrementa o campo da distância de salto pacote e programa o reencaminhamento deste, através de T Data. A Figura 4.1 esquematiza o procedimento do reencaminhamento de interesses dos protocolos PAF e BF. Figura 4.1: Procedimento do reencaminhamento de interesses dos protocolos PAF e BF [5] Depois de receber os dados, o consumidor inclui a informação do produtor na sua DT e envia o próximo interesse, incluindo o ID do produtor e a distância até ele. Graças à natureza multi-path nativa das redes NDN, pode ser descoberto mais do que um produtor e, neste caso, C pode selecionar o que se encontrar mais próximo

52 Capítulo 4. Ad Hoc via NDN 31 dele [5]. Ao receber um interesse, cada nó verifica a DT para descobrir se está mais perto do produtor do que o consumidor. Se estiver, atualiza o campo distância e adia a transmissão para depois de T Interest [5]. 4.6 Comparação dos Protocolos Para uma melhor compreensão, na Tabela?? são apresentadas as comparações dos cinco protocolos abordados. Todos os protocolos propostos foram projetados, especificamente, para redes sem fios com múltiplos saltos. O protocolo NAIF tem a particularidade de ser aplicado, apenas, no encaminhamento de interesses em nós intermédios. No encaminhamento de pacotes de interesse ou REQ, os protocolos LFBL, E- CHANET, BF e PAF utilizam uma técnica, em que, antes de encaminhar o pacote, cada nó espera um determinado tempo aleatório, para verificar se outros nós encaminham o mesmo pacote. Os protocolos LFBL e E-CHANET utilizam uma técnica adicional, que consiste em fazer com que a escolha do caminho seja efetuada implicitamente, utilizando o encaminhamento oportunista, baseado nas distâncias de destino, estimadas a partir das retransmissões. Por fim, o protocolo NAIF utiliza uma estratégia diferente. Aqui, um nó decide transmitir ou descartar os interesses recebidos, com base na taxa de transmissão: quantos mais pacotes de dados um nó ouvir dos seus vizinhos, mais interesses com o mesmo prefixo ele pode descartar, pois julga-os desnecessários para que o interesse seja satisfeito. No encaminhamento de pacotes de dados, o LFBL e o E-CHANET são semelhantes, pois ambos fazem uma escolha criteriosa dos nós vizinhos para expedição dos dados. Os protocolos BF e PAF são, também, semelhantes, sendo que o segundo tem um aperfeiçoamento. No protocolo NAIF não é feito o encaminhamento de dados. Na supressão de pacotes, os protocolos LFBL, E-CHANET, BF e PAF adiam a transmissão de interesses e aproveitam a escuta de pacotes, para o controlo da redundância e colisão de pacotes. Além disso, tanto no LFBL, como no E-CHANET, apenas os nós que se encontram mais perto do destino de um pacote do que o remetente anterior, reencaminham o pacote. O E-CHANET ainda utiliza uma outra técnica, em que se o interesse especificar um produtor, apenas esse pode enviar os dados. Por fim, o NAIF faz a supressão de pacotes através do ajuste da taxa de transmissão.

53 Capítulo 4. Ad Hoc via NDN 32 Cenário de aplicação Tipos pacotes Tabelas dos nós de Semelhante ao encaminhamento de interesses BF. Encaminh. dos dados/rep Supressão de pacotes LFBL NAIF E-CHANET BF PAF Redes sem fios com múltiplos saltos. Redes sem fios com múltiplos saltos. Redes sem fios com múltiplos saltos. REQ, REP Interesse Interesse, Dados CS, FIB PIT CS, PIT, FIB, CPT Encaminh. dos interesses/req Faz escutas ao meio, para prevenir colisões, combinada com tempos de espera aleatórios e faz uma escolha criteriosa dos nós vizinhos para expedição dos interesses. Faz uma escolha criteriosa dos nós vizinhos para expedição dos dados. Baseia-se na taxa de transmissão dos pacotes de dados correspondentes. Faz escutas ao meio, para prevenir colisões, combinada com tempos de espera aleatórios e faz uma escolha criteriosa dos nós vizinhos para expedição dos interesses. Igual a BF, com um aperfeiçoamento: faz uma escolha criteriosa dos nós vizinhos para expedição dos dados. Controlo de retransmissões com base na distância até ao destino e redundância de pacotes. Ajusta a taxa de transmissão dos interesses com base em estatísticas de transmissão dos nós. Controlo de retransmissões com base na distância até ao destino, redundância de pacotes e especificação de um produtor para retransmissão dos dados. Redes sem fios com múltiplos saltos. Interesse, Dados CS, FIB, PIT - Semelhante ao encaminhamento de interesses E-CHANET. Faz escutas ao meio, para prevenir colisões, combinada com tempos de espera aleatórios. Controlo de retransmissões com base na redundância de pacotes. Redes sem fios com múltiplos saltos. Interesse, Dados CS, FIB, PIT, DT Faz escutas ao meio, para prevenir colisões, combinada com tempos de espera aleatórios. Controlo de retransmissões com base na redundância de pacotes. Simulador QualNet QualNet NS-2 ndnsim ndnsim Tabela 4.1: Tabela comparativa dos protocolos LFBL, NAIF, E-CHANET, BF e PAF

54 Capítulo 5 Estratégias de encaminhamento propostas Neste capítulo são apresentadas e descritas as três propostas de estratégias de encaminhamento, que foram implementadas e avaliadas no âmbito deste trabalho: BFstrategy, DSRstrategy e MPRstrategy. Estas estratégias de encaminhamento foram concebidas para redes Ad hoc de dados nomeados, ou seja, têm em conta todos os problemas destes tipos de redes, onde se destaca as frequentes mudanças na topologia, que têm um impacto direto sobre o desempenho dos protocolos de encaminhamento. 5.1 Estratégia BFstrategy A primeira estratégia de encaminhamento proposta, designada por BFstrategy, baseiase no protocolo Blind Forwarding (BF), descrito em [5] e já abordado, anteriormente, na Secção 4.4. Esta estratégia tem como objetivo principal adiar a transmissão de interesses e dados, por um intervalo de tempo determinado. Ao longo desse intervalo de tempo, o pacote é descartado, caso o nó o oiça na rede, a fim de diminuir a probabilidade de colisões. O pacote é descartado, pois considera-se que outro nó já reencaminhou o pacote e, por isso, o reencaminhamento deste é desnecessário. Cada nó possui uma tabela de interesses atrasados e uma tabela de dados atrasados, que têm diferentes campos. A estrutura da tabela de interesses atrasados está representada na Figura 5.1 e a estrutura da tabela de dados atrasados está representada na Figura

55 Capítulo 5. Estratégias de encaminhamento propostas 34 Figura 5.1: Estrutura da tabela de interesses atrasados dos nós na estratégia BFstrateggy Figura 5.2: Estrutura da tabela de dados atrasados dos nós na estratégia BFstrateggy O campo ID é o identificador do interesse na tabela de interesses atrasados, o campo prefixo corresponde ao nome do prefixo do interesse, o campo validade indica a validade do reencaminhamento do interesse (true - válido; false - inválido) e, por fim, o campo dados indica se o nó já recebeu (true) ou não (false) os dados correspondentes ao interesse em causa. A estrutura da tabela de dados atrasados é igual à estrutura da tabela de interesses atrasados, com exceção do último campo dados, que não existe nesta última tabela Encaminhamento de interesses No início, o consumidor envia um interesse Y, sem qualquer tempo de espera. Quando um nó N recebe Y e não possui os dados correspondentes, este torna-se num

56 Capítulo 5. Estratégias de encaminhamento propostas 35 potencial encaminhador. Caso N seja o produtor dos dados correspondentes ou os contenha na sua Content Store, N devolve o pacote de dados, sem qualquer tempo de espera. Caso contrário, o nó N verifica se o interesse corresponde a alguma entrada que já existe na PIT. Se corresponder, atualiza a entrada, acrescentando a interface por onde o interesse chegou e descarta-o. Se não existir na PIT nenhuma entrada para este interesse, então o interesse é acrescentado à PIT. De seguida, N insere o interesse Y na tabela de interesses atrasados: o campo ID é igual ao ID mais alto da tabela + 1 (caso a tabela esteja vazia, é 0); o campo prefixo é igual ao nome do prefixo do interesse Y acabado de chegar; o campo validade é igual true; o campo dados é igual a false. Depois disto, é inicializado um temporizador, que estabelece um tempo de espera para o encaminhamento do interesse, e é calculado através da Equação 5.1. T Interest = (DW + rand[0, DW ]) DeferSlotT ime (5.1) DW (Defer Window) é um valor inteiro, que indica o comprimento do intervalo de tempo. Os autores de [5] concluíram que existe um valor ótimo para a DW, ou seja, o valor de DW influencia o desempenho da estratégia de encaminhamento. No geral, se o valor de DW for muito pequeno, o RTT (Round-trip Time) é grande, porque os nós são forçados a fazerem várias retransmissões de interesses, para obterem os dados desejados, devido, essencialmente, ao elevado número de colisões. Aumentando o valor da DW, o RTT é menor, devido à diminuição das colisões dos pacotes, mas só até um certo ponto: se o tempo de espera for demasiado elevado antes das transmissões, o RTT aumenta de novo. Assim, tendo em conta as várias simulações feitas pelos autores, foi verificado que um dos melhores valores para a DW, em vários cenários, seria o 127 e, por isso, foi esse o valor utilizado. Quanto ao DeferSlotTime, este é um valor fixo, e é um intervalo de tempo pequeno. O seu valor, segundo os autores de [5], é 28µs. Durante o período de T Interest, o interesse Y permanece numa fila de pacotes atrasados, enquanto o nó N escuta o canal: para todos os interesses X que receber, é feita uma pesquisa na tabela de interesses atrasados, para averiguar se existem interesses em espera com o mesmo prefixo. Caso existam, será mudado o estado de validade destes para false, para que o encaminhamento destes interesses seja abortado quando T Interest expirar e o interesse acabado de chegar é descartado. O cancelamento do reencaminhamento poderia ser efetuado neste momento, no entanto, se o nó recebesse outro interesse igual, de seguida, não seria possível detetar que se tratava de um interesse duplicado.

57 Capítulo 5. Estratégias de encaminhamento propostas 36 Assim, foi decidido que um nó espera sempre até T Interest expirar para efetuar o seu cancelamento, a fim de poder detetar todos os interesses duplicados, que chegaram nesse intervalo de tempo. Caso não existam interesses em espera com o mesmo prefixo, será registado o interesse X, acabado de chegar, na tabela de interesses atrasados e, de seguida, é inicializado o respetivo temporizador com o valor T Interest. No caso de o nó N receber um pacote de dados, é feita uma pesquisa na tabela de interesses atrasados, para averiguar se existem interesses em espera com o mesmo prefixo do pacote de dados acabado de chegar. Caso existam, será mudado o valor do campo dados destes para true, para que estes interesses não sejam reencaminhados ao fim de T Interest, pois o nó já possui os dados correspondentes. Caso não existam interesses em espera com o mesmo prefixo do pacote de dados acabado de chegar, continua o processo de receção de um pacote de dados, que será explicado mais à frente. No final de T Interest, o nó N verifica, em primeiro lugar, o campo dados do interesse Y na tabela de interesses atrasados. Caso esteja a true, significa que o nó N já recebeu os dados correspondestes durante T Interest e, por isso, não há necessidade de reencaminhar o interesse, pois este já chegou ao produtor (por outra rota), que, por sua vez, já reencaminhou os dados. Assim, o interesse é descartado e o processo de reencaminhamento de interesses termina. Caso o campo dados do interesse Y esteja a false, o nó N verifica o campo validade do interesse Y na tabela de dados. Caso seja true, significa que não recebeu nenhum interesse com o mesmo prefixo durante T Interest e, por isso, o nó N reencaminha o interesse Y. Caso o campo validade esteja a false, significa que o nó N recebeu um ou vários interesses com o mesmo prefixo durante T Interest, ou seja, o interesse foi, também, reencaminhado por outro nó, no raio de alcance de N. Logo, o nó N descarta o interesse Y e apaga a respetiva entrada na PIT Encaminhamento de dados No caso de um nó N receber um pacote de dados D, este verifica se tem uma entrada PIT correspondente. Caso não tenha, descarta o pacote. Caso tenha, verifica se tem uma entrada correspondente na Tabela de interesses atrasados, a fim de colocar a true o campo dados desses interesses. De seguida, insere o pacote de dados D na tabela de dados atrasados: o campo ID é igual ao ID mais alto da tabela + 1 (caso a tabela

58 Capítulo 5. Estratégias de encaminhamento propostas 37 esteja vazia, é 0); o campo prefixo é igual ao nome do prefixo do pacote D acabado de chegar; o campo validade é igual a true. De seguida, é inicializado um temporizador, que estabelece um tempo de espera para o encaminhamento dos pacotes de dados, e é calculado a partir da Equação 5.2. T Data = rand[0, DW 1] DeferSlotT ime (5.2) Este tempo de atraso T Data é inferior ao tempo de atraso T Interest, para dar uma maior prioridade ao envio de pacotes de dados. O passo seguinte é parecido com o encaminhamento de um pacote de interesse. Durante o período de T Data, o pacote D permanece numa fila de pacotes de dados atrasados, enquanto o nó N escuta o canal: para todos os pacotes de dados que receber, é feita uma pesquisa na tabela de dados atrasados, para averiguar se existem pacotes de dados em espera, com o mesmo prefixo. Caso existam, será mudado o estado de validade destes para false e o pacote acabado de chegar é descartado. No final de T Data, o nó N verifica o campo validade do pacote D na tabela de dados. Caso seja true, significa que não recebeu nenhum pacote de dados com o mesmo prefixo durante T Data e, por isso, o reencaminhamento de D tem de ser efetuado. Assim, o nó N reencaminha o pacote D. Caso seja false, significa que o nó N recebeu um ou vários pacotes de dados com o mesmo prefixo durante T Data e, por isso, o nó N descarta o pacote D e apaga a respetiva entrada na PIT Desvantagens da BFstrategy Esta estratégia de encaminhamento foi implementada com o objetivo de combater os efeitos negativos do fenómeno de broadcast storm. No entanto, como é baseado num encaminhamento em blind forwarding, não evita completamente as colisões de pacotes. De facto, os pacotes podem colidir se, por exemplo, os potenciais encaminhadores usarem o mesmo tempo de atraso T Interest e T Data, ou se estes tempos forem muito pequenos. Uma outra desvantagem desta estratégia de encaminhamento é o facto de a propagação de pacotes na rede não poder ser completamente controlada, devido à existência de terminais ocultos [5]. Como existe uma elevada quantidade de tráfego na rede, existem nós que não recebem os pacotes, devido à inibição do reencaminhamento de pacotes. Por exemplo, se o nó W, que deveria ter reencaminhado para o nó Z, receber um pacote

59 Capítulo 5. Estratégias de encaminhamento propostas 38 igual, durante os períodos de T Interest e/ou T Data, e se W for o único possuidor do pacote, que tenha na sua área de cobertura o nó Z, Z não irá receber o pacote. De forma a tornar esta afirmação mais clara, foi elaborado um exemplo ilustrativo. Na Figura 5.3 está representado o cenário da simulação. Figura 5.3: Cenário da simulação usada para mostrar desvantagens da BFstrategy O cenário é composto por seis nós e, entre eles, existe um produtor e um consumidor. O produtor é representado pelo nó 5 e o consumidor pelo nó 0. O modelo de mobilidade usado foi o Constant Position, ou seja, os nós não se mexem. Os nós 1, 2, 3 e 4 estão ao alcance do consumidor. O produtor está, apenas, ao alcance do nó 4. O tipo de tráfego é Constant Bit Rate (CBR), com uma frequência de envio de 1 interesse por segundo e o primeiro interesse é enviado aos 0 segundos. O tamanho dos pacotes de dados é de 64 Bytes. Por fim, foi usado um tempo de simulação de 10 segundos. A Tabela 5.1 representa tudo o que acontece, passo a passo, na simulação abordada, durante o segundo 5. No passo 1, é enviado o interesse 5, pelo consumidor 0. De seguida, os nós 2, 1, 3 e 4 recebem o interesse, passo 2, 3, 4 e 5, respetivamente. A Figura 5.4 ilustra estes passos.

60 Capítulo 5. Estratégias de encaminhamento propostas 39 Passo Tempo [s] Nó Debug Consumidor envia o interesse Recebe interesse 5. Regista interesse na tabela de interesses. Inicia temporizador com um período T Interest, calculado aleatoriamente, para reencaminhar o interesse 5 posteriormente Recebe interesse 5. Regista interesse na tabela de interesses. Inicia temporizador com um período T Interest, para reencaminhar o interesse 5 posteriormente Recebe interesse 5. Regista interesse na tabela de interesses. Inicia temporizador com um período T Interest, para reencaminhar o interesse 5 posteriormente Recebe interesse 5. Regista interesse na tabela de interesses. Inicia temporizador com um período T Interest, para reencaminhar o interesse 5 posteriormente Temporizador chega ao fim. Verifica a tabela de interesses, para averiguar se o reencaminhamento do interesse é, ainda, válido. Como é válido, reencaminha o interesse Recebe interesse 5. Verifica a tabela de interesses, para averiguar se existe algum interesse em espera com o mesmo prefixo. Como existe, deteta que está em Loop. Descarta o pacote acabado de receber Recebe interesse 5. Como é o consumidor do pacote, deteta que está em Loop. Descarta o pacote acabado de receber Recebe interesse 5. Verifica a tabela de interesses, para averiguar se existe algum interesse em espera com o mesmo prefixo. Como existe, deteta que está em Loop. Descarta o pacote acabado de receber Recebe interesse 5. Verifica a tabela de interesses, para averiguar se existe algum interesse em espera com o mesmo prefixo. Como existe, deteta que está em Loop. Descarta o pacote acabado de receber Temporizador chega ao fim. Verifica a tabela para averiguar se o reencaminhamento do interesse é, ainda, válido. Como já não é, devido ao facto de ter recebido o mesmo interesse durante o período T Interest, descarta o pacote Temporizador chega ao fim. Verifica a tabela para averiguar se o reencaminhamento do interesse é, ainda, válido. Como já não é, descarta o pacote Temporizador chega ao fim. Verifica a tabela para averiguar se o reencaminhamento do interesse é, ainda, válido. Como já não é, descarta o pacote Timeout do interesse 5. Tabela 5.1: Debug da simulação exemplo

61 Capítulo 5. Estratégias de encaminhamento propostas 40 Figura 5.4: Passos 1 até 5 da experiência realizada para mostrar desvantagens da BFsrategy No passo 6, o T Interest do nó 3 chega ao fim e este reencaminha o interesse. Os nós 2, 0, 4 e 1 recebem e percebem que este interesse é duplicado e, por isso, alteram o campo validade do interesse 5 para false. A Figura 5.5 ilustra estes passos. No passo 11, o T Interest do nó 4, que era o único que podia reencaminhar o interesse para o produtor, chega ao fim. O nó verifica a tabela de interesses atrasados, para averiguar se o reencaminhamento do interesse é, ainda, válido. Como já não é, devido ao facto de ter recebido o mesmo interesse durante o período T Interest, descarta o pacote. O mesmo acontece para os nós 1 e 2, nos passos 12 e 13, respetivamente. Desta forma, o produtor não recebe o interesse 5 e, como consequência, não pode enviar os dados correspondentes. Como é possível verificar neste exemplo, existe a possibilidade de alguns nós não receberem os pacotes. Além disso, quanto maior for o tráfego, maior é possibilidade de esta situação acontecer, pois há uma maior probabilidade de um nó receber o mesmo interesse, no período de T Interest, ou até receber o mesmo pacote de dados, no período de T Data, e, consequentemente, abortar o reencaminhamento. Na situação em que um

62 Capítulo 5. Estratégias de encaminhamento propostas 41 Figura 5.5: Passos 6 até 10 da experiência realizada para mostrar desvantagens da BFsrategy nó tem apenas um vizinho, é muito provável que aconteça algo parecido com o exemplo que foi dado e isto é uma desvantagem desta estratégia. Por todas estas desvantagens apresentadas, foram acrescentadas outras funções ao protocolo implementado, de forma a melhorar o seu desempenho. 5.2 Estratégia DSRstrategy A nova estratégia foi baseada no protocolo de encaminhamento reativo DSR (Dynamic Source Routing)[17] [2], abordado anteriormente na Secção e foi implementada tendo como base a estratégia BFstrategy. Nesta nova estratégia, designada por DSRstrategy, foi introduzido um novo campo no cabeçalho do pacote de interesse e do pacote de dados, designado por Path. A descrição dos campos dos pacotes de interesse e dados é feita mais à frente, na Secção 6.3.

63 Capítulo 5. Estratégias de encaminhamento propostas Encaminhamento de interesses Em primeiro lugar, quando o consumidor gera um pacote de interesse, terá de colocar o seu ID no campo Path do cabeçalho e enviar o pacote, sem qualquer tempo de espera. De seguida, todos os nós que receberem o interesse, e não possuírem os dados correspondentes, terão de colocar, da mesma forma, o seu próprio ID no campo Path do cabeçalho do pacote de interesse. Desta forma, será registado todo o percurso percorrido pelo interesse, até chegar ao produtor ou a um nó que possua os dados correspondentes na sua CS. Posteriormente, é inicializado um temporizador, com um atraso igual a T Interest. Durante esse período, o interesse permanece numa fila de pacotes atrasados, enquanto o nó escuta o canal. Esta fase não foi alterada, sendo semelhante à da estratégia anterior Encaminhamento de dados Quando o interesse chegar a um produtor ou a um nó que possua os dados correspondentes na sua Content Store, este terá de copiar a rota percorrida pelo interesse, que estará no campo Path do cabeçalho do interesse, e colocá-la no campo Path do cabeçalho do pacote de dados, antes de o enviar. Todos os nós que receberem o pacote de dados, terão de verificar se pertencem à rota. Caso pertençam, reencaminham o pacote, sem esperar qualquer tempo de atraso. Caso contrário, é inicializado um temporizador, com um tempo de atraso igual a T Data. Neste caso, o procedimento é igual ao procedimento usado na estratégia anterior. O objetivo principal desta nova funcionalidade na estratégia de encaminhamento é fazer com que o pacote de dados percorra o mesmo percurso que o interesse percorreu, a fim de estabelecer uma rota para os dados. No entanto, devido à mobilidade dos nós, é possível que a rota tenha sido quebrada e foi esta a razão pela qual foi decidido que um nó que recebesse um pacote de dados, e não pertencesse à rota, pudesse reencaminhá-lo. Neste caso, o nó terá de esperar um período igual a T Data e o encaminhamento só é feito se, durante esse tempo, não receber um pacote de dados igual. Assim, irá permitir que, mesmo que uma rota tenha ficado inválida, os dados possam ser entregues ao consumidor, mesmo que implique que o RTT seja maior e que a rota, por eles percorrida, seja diferente.

64 Capítulo 5. Estratégias de encaminhamento propostas 43 O facto de esta estratégia forçar os dados a seguirem o mesmo trajeto dos respetivos interesses, faz com que os dados tenham uma rota para seguirem, em vez de serem difundidos na rede, fazendo com que haja uma diminuição significativa do RTT, melhorando o seu desempenho. No entanto, esta melhoria não resolve todos os seus problemas. A desvantagem de existir a possibilidade de alguns nós não receberem os pacotes, abordada na Secção 5.1.3, permanece, pois este último aperfeiçoamento só modifica o encaminhamento dos pacotes de dados. O encaminhamento de interesses não foi alterado. 5.3 Estratégia MPRstrategy Visto que as duas estratégias anteriores tinham vários problemas, tais como grande probabilidade de colisões e falta de controlo no encaminhamento de interesses, pensouse propor uma estratégia diferente, principalmente no encaminhamento de interesses. Ainda assim, a estratégia proposta foi concebida, tendo por base as estratégias BFstrategy e DSRstrategy, melhorando-as. A nova estratégia, designada por MPRstrateggy, foi baseada na técnica MultiPoint Relay, que é usada pelo protocolo OLSR, abordada na Secção Esta técnica tem o objetivo de limitar os nós da rede que reencaminham os interesses, a fim de se poder eliminar mensagens redundantes e, consequentemente, diminuir o tráfego. Assim, a sua função é selecionar um subconjunto de nós da rede, chamados Multipoint relay (MPR), através dos quais seja possível disseminar mensagens por toda a rede, até encontrar um produtor. A escolha dos MPRs é feita de modo a que cubram todos os nós a dois saltos de distância Encaminhamento de mensagens hello Para conhecer todos os nós a dois saltos de distância, a estratégia utiliza um protocolo de hello. Todos os nós terão de enviar, periodicamente, mensagens hello para os seus vizinhos, que conterão o seu ID e os IDs dos seus próprios vizinhos. Naturalmente, na primeira vez que os nós enviam a mensagem hello, enviarão apenas o seu ID, porque ainda não têm conhecimento dos vizinhos. Assim, este algoritmo necessita de duas iterações para convergir.

65 Capítulo 5. Estratégias de encaminhamento propostas 44 Todos os nós terão uma Tabela Vizinhos, que conterá todos os seus vizinhos, os respetivos vizinhos destes e o número de vizinhos. A estrutura da tabela está representada na Figura 5.6. Figura 5.6: Estrutura da Tabela Vizinhos dos nós na estratégia MPRstrateggy Como o contexto em que se enquadra é o das redes de dados nomeados, foi decidido que as mensagens de hello serão retransmitidas através de interesses e dados. Para isso, todos os nós serão consumidores e, simultaneamente, produtores do prefixo /hello. Todos os consumidores enviarão interesses hello de 5 em 5 segundos. O protocolo OLSR recomenda o envio de pacotes de hello de 2 em 2 segundos [34], mas como as simulações feitas são para cenários em que os dispositivos móveis são transportados por pedestres, foi decidido que o intervalo de tempo de 5 segundos era suficiente. Assim, quando um nó N envia um interesse com o prefixo /hello, todos os nós que receberem esse interesse serão, obviamente, os vizinhos de N. Como todos os nós são produtores do prefixo /hello, os vizinhos de N não reencaminharão o interesse e, em vez disso, devolverão os dados correspondentes. Para isso, irão à sua Tabela Vizinhos, verificar quais são os seus vizinhos e, de seguida, registarão, no conteúdo do pacote de dados, o seu próprio ID e o ID dos seus vizinhos. O nó N, ao receber o pacote de dados, irá registar na sua Tabela Vizinhos o seu vizinho e os respetivos vizinhos do vizinho. A Figura 5.7 ilustra um exemplo deste procedimento. É de notar que os nós adiam a transmissão dos pacotes de dados hello por um tempo T Hello, calculado aleatoriamente, a fim de evitar colisões. Quando o nó N enviava o interesse hello, todos os seus vizinhos recebiam-no ao mesmo tempo e, consequentemente, iriam enviar o respetivo pacote de dados hello, também, ao mesmo tempo, o que provocava várias colisões entre pacotes. Como resultado, N não recebia a informação de todos os vizinhos e ficava com um conhecimento incompleto da topologia, o que resultava num mau desempenho do protocolo de encaminhamento. Ao contrário dos outros tempos de atraso criados (T Interest, T Data e, como será visto mais à frente, T InterestMP R ), que servem, também, para evitar loops de encaminhamento, neste caso serve apenas para

66 Capítulo 5. Estratégias de encaminhamento propostas 45 Figura 5.7: Exemplo da troca de mensagens /hello na MPRstrategy os pacotes não serem enviados todos ao mesmo tempo. Na troca de pacotes hello não existem loops de encaminhamento, pois os nós nunca os reencaminham. Visto que o RTT é cerca de 5ms, foi decidido que o valor máximo para este temporizador seria 5ms. Assim, T Hello estará entre os 0 e 5ms. Quando um nó N recebe um pacote de dados /hello, com a informação de um vizinho, é verificado se já possui informação sobre aquele vizinho na Tabela Vizinhos. Se sim, elimina a informação obsoleta e insere a nova. Se não, simplesmente acrescenta a nova informação na tabela. Além disso, é estabelecido um tempo de vida para a informação de um vizinho na tabela, através da utilização de um temporizador T Neighbor, que é calculado através da Equação 5.3.

67 Capítulo 5. Estratégias de encaminhamento propostas 46 T Neighbor = Hello interval + T Hello + RT T (5.3) O valor Hello interval é o intervalo de envio de interesses hello, que é 5 segundos. T Hello é o tempo esperado para a retransmissão dos pacotes de dados hello e, nesta equação, tem o valor de 5 ms, que é o seu valor máximo. É escolhido o valor máximo, para não ocorrer a situação de um nó apagar a informação do vizinho, simplesmente por este estar no tempo de espera antes da retransmissão dos dados. Por fim, RTT é o tempo necessário, aproximadamente, desde que o nó N envia o interesse hello, até receber o pacote de dados correspondente, que tem o valor de 5ms. Este temporizador é iniciado quando é criada a informação desse vizinho na Tabela Vizinhos. Sempre que essa informação é atualizada, o temporizador é reiniciado. Caso o temporizador chegue ao fim, significa que aquele nó deixou de ser vizinho (pois o nó N não recebeu mais atualizações deste) e, por isso, a informação é apagada da Tabela Vizinhos Encaminhamento de interesses Quando um nó tiver um interesse para enviar (com a exceção do interesse com prefixo /hello), quer seja o consumidor ou um nó intermédio, terá de descobrir quais os seus vizinhos terão de reencaminhar o pacote, ou seja, quais são os MPRs, para que todos os vizinhos desses vizinhos recebam o interesse, mas com a menor redundância possível. O conjunto de nós MPRs serão colocados num novo campo do cabeçalho do interesse, designado por campo MPR Algoritmo MPR O algoritmo MPR, utilizado para calcular o conjunto de vizinhos MPRs de cada nó, utiliza uma tabela adicional, designada por Tabela provisorio, que está representada na Figura 5.8. O primeiro campo da Tabela provisorio, de um nó N, contém o ID do vizinho de N. O segundo campo contém a quantidade de vizinhos, do vizinho de N, que ainda não estão na área de cobertura dos nós já considerados MPRs. O terceiro campo contém os IDs desses vizinhos e, por fim, o último campo contém uma variável inteira, que indica se o vizinho de N é MPR (1), se já foi considerado não-mpr (0) ou se essa decisão

68 Capítulo 5. Estratégias de encaminhamento propostas 47 Figura 5.8: Estrutura da Tabela provisorio dos nós na estratégia MPRstrateggy ainda não foi feita (-1). Esta tabela serve como tabela auxiliar, para averiguar quais dos vizinhos de N (com a mesma quantidade de vizinhos) irão pertencer ao conjunto MPR. Supondo que N tem 5 vizinhos, que contêm todos eles 4 vizinhos cada um, o nó N irá registar na Tabela provisorio todas as informações desses nós, de forma a perceber quais terá de escolher como MPR, para uma menor redundância possível de pacotes na rede. Na Figura 5.9 está representado o fluxograma da técnica dos MultiPoint Relays. É de notar que o vetor com cobertura contém os IDs dos vizinhos dos vizinhos, que já estão na área de cobertura dos nós já considerados MPRs. Já o vetor sem cobertura contém os IDs dos vizinhos do vizinho, que ainda não estão na área de cobertura dos nós já considerados MPRs e servirá para colocar no terceiro campo da Tabela provisorio de cada vizinho de N.

69 Capítulo 5. Estratégias de encaminhamento propostas 48

70 Capítulo 5. Estratégias de encaminhamento propostas 49 Figura 5.9: Fluxograma da técnica MPR

71 Capítulo 5. Estratégias de encaminhamento propostas 50 De seguida, é mostrado um exemplo, para ilustrar a ideia do algoritmo MPR. A Figura 5.10 representa um exemplo da tabela Vizinhos de um nó N. Figura 5.10: Exemplo da Tabela Vizinhos do nó N na MPRstrategy Em primeiro lugar, o nó N terá de ir à tabela Vizinhos e construir uma lista ordenada, por ordem decrescente, com os seus os vizinhos, que contêm mais vizinhos. Neste caso, a lista ficaria: B-A-C-E-F-G-H-D. De seguida, terá de descobrir quais os vizinhos serão MPRs. O primeiro nó da lista ordenada é o B. Como a lista com cobertura ainda está vazia e não existe nenhum outro vizinho de N com a mesma quantidade de vizinhos do que B, significa que B é o primeiro da lista ordenada e é, também, o vizinho com mais vizinhos. Por isto, o nó B é considerado MPR. De seguida, os vizinhos de B são registados na lista com cobertura, para que N consiga perceber quais os vizinhos dos seus vizinhos já têm cobertura, pelos já considerados MPRs. O próximo nó da lista ordenada é o nó A, que tem como primeiro vizinho o nó 5. Como este já pertence à lista com cobertura, já receberá o pacote através de outro MPR. A pesquisa dos vizinhos de A continua, até haver algum vizinho que não conste na lista com cobertura ou que acabem os vizinhos de A. O próximo é o nó 2. Este ainda não consta na lista com cobertura. Contudo, como o nó A tem o mesmo número de vizinhos em relação ao próximo nó da lista ordenada, o nó C, a decisão de se o A é ou não um MPR não é feita neste momento, pois antes é necessário averiguar os vizinhos de todos

72 Capítulo 5. Estratégias de encaminhamento propostas 51 os nós, que contêm a mesma quantidade de vizinhos do que A, a fim de não considerar nós MPRs desnecessariamente e contribuir para a redundância de pacotes na rede. De seguida, o nó 2 é registado no vetor sem cobertura do nó A e a pesquisa dos vizinhos do nó A continuaria, mas, neste caso acabou, porque acabaram os vizinhos de A. No entanto, se A tivesse mais algum vizinho, o procedimento seria o mesmo, ou seja, se A tivesse um nó que ainda não pertencesse à lista com cobertura, registaria esse nó no vetor sem cobertura. Caso já pertencesse, descartava esse nó e continuava a pesquisa de vizinhos de A. Quando a pesquisa termina, é feito um registo na Tabela provisorio. Neste caso, o registo teria os valores (A; 1; 2; -1). A sua explicação está representada na Figura Figura 5.11: Exemplo de registo na Tabela provisorio do nó A na MPRstrategy O próximo é o nó C. Os seus vizinhos são os nós 5 e 1. O nó 5 já consta na lista com cobertura, mas o nó 1 ainda não. O procedimento é o mesmo que foi utilizado no nó A. Neste caso, o registo na Tabela provisorio teria os valores (C; 1; 1; -1). O próximo é nó E. Os seus vizinhos são os nós 1 e 2, que não constam na lista com cobertura. Neste caso, o registo na Tabela provisorio teria os valores (E; 2; 1,2; -1). O nó F tem os mesmos vizinhos de E. O registo na Tabela provisorio teria os valores (F; 2; 1,2; -1). O nó G contém os vizinhos 4 e 8, que não constam na lista com cobertura. Neste caso, o registo na Tabela provisorio teria os valores (G; 2; 4,8; -1). O último nó, que contém dois vizinhos, é nó H. Os seus vizinhos são os nós 1 e 6, que não constam na lista com cobertura. O registo na Tabela provisorio teria os valores (H; 2; 1,6; -1). Posto isto, chegou o momento de decidir quais os nós com 2 vizinhos serão MPRs. Para isso, é percorrida a Tabela provisorio, que está representada na Figura 5.12.

73 Capítulo 5. Estratégias de encaminhamento propostas 52 Figura 5.12: Exemplo da Tabela Provisorio do nó N na MPRstrategy Em primeiro lugar, é analisado o nó A. É percorrida a Tabela Provisorio, de forma a procurar se o nó 2 aparece mais vezes. É encontrado no nó E. Como ainda não está decidido se E será ou não um MPR, é verificado se este tem na sua área de cobertura todos os vizinhos de A e ainda um outro nó que A não tenha. Como tem todos e ainda mais o nó 1, o nó A é considerado não-mpr. A mesma situação acontece para o nó C. De seguida, é analisado o nó E. O seu primeiro vizinho é encontrado no grupo de vizinhos do nó C, mas como este já foi considerado não-mpr, o procedimento continua. O próximo nó que faz match com o nó 1 é o nó F. Como ainda não está decidido se F será ou não um MPR, é verificado se este tem na sua cobertura todos os vizinhos de E e, ainda, um outro nó que E não tenha. O nó F tem todos os vizinhos de E, mas não tem um outro diferente e, por isso, o procedimento continua. De seguida, é encontrado no nó H, e este não possui todos os vizinhos de E, por isso o procedimento continua. Como não existe outro nó que faça match com o vizinho 1, é feita a verificação final: como ainda não está decidido se E é ou não MPR, E é considerado oficialmente MPR e são registados os vizinhos de E, que estavam na lista sem cobertura, na lista com cobertura. O próximo é o nó F. O seu vizinho 1 é encontrado no nó C, que já foi considerado não-mpr e, por isso, continua a pesquisa. É encontrado, também, no nó E, que já foi considerado MPR. De seguida, é verificado se o nó F possui algum outro nó que E não possua. Como não possui, o nó F é considerado não-mpr. Por fim, é também encontrado no nó H, mas aqui nada acontece (porque H não possui todos os vizinhos de F) e, assim, o nó F fica considerado não-mpr.

74 Capítulo 5. Estratégias de encaminhamento propostas 53 É analisado, agora, o nó G. O seu primeiro vizinho é o nó 4, que não faz match com nenhum nó da Tabela Provisorio. Então, o nó G é logo considerado MPR, sem haver necessidade de analisar os seus restantes vizinhos. Por fim, são registados os vizinhos de G, que estavam na lista sem cobertura, na lista com cobertura. Finalmente, é analisado o nó H. O seu vizinho 1 é encontrado no nó C, que já foi considerado não-mpr e, por isso, continua a pesquisa. É encontrado, também, no nó E, que já foi considerado MPR. Como H possui outro nó que F não possui, H é considerado temporariamente MPR. Como o seu próximo vizinho, o nó 6, é único na Tabela Provisorio, H é considerado MPR. Esta estratégia, de marcar os nós como temporariamente MPRs, serve para não serem tomadas decisões precipitadas, testando todas as relações entre os nós, para uma melhor decisão final da escolha dos MPRs. No final deste processo, a Tabela Provisorio é apagada. O último nó da lista ordenada é o nó D, que possui apenas um vizinho. Como este já pertence à lista com cobertura, o nó D é considerado não-mpr. Neste momento, o nó N já decidiu quais os seus vizinhos serão MPRs: B, E, G e H. Conclusão: neste caso, o nó N possui 8 vizinhos, mas apenas 4 deles são considerados MPRs. Serão feitos metade dos reencaminhamentos, o que levará a que o tráfego seja diminuído em grande medida e a estratégia de encaminhamento tenha um desempenho muito melhor, com o reencaminhamento de interesses controlado. O próximo passo é colocar esta lista de nós no campo MPR do interesse. Quando os vizinhos de N receberem o pacote, através de N, terão de verificar se pertencem à lista de MPRs. Caso não pertençam, não reencaminham. Caso pertençam e não possuam os dados correspondentes, utilizam o algoritmo MPR para os seus próprios vizinhos, a fim de descobrirem quais deles serão considerados MPRs, alteram o campo MPR do interesse com o resultado obtido e, por fim, reencaminham o interesse. O processo repete-se até que o interesse chegue a um produtor ou a um nó que possua os dados correspondentes na sua Content Store. É de notar que, sempre que um nó intermédio tenha um interesse para encaminhar, este adia a sua transmissão por um tempo T InterestMP R, calculado aleatoriamente, a fim de evitar colisões. O valor deste temporizador estará entre os 0 e 5ms, tal como o T Hello. Se durante o período de T InterestMP R, o nó receber os dados correspondentes, o encaminhamento do interesse é abortado.

75 Capítulo 5. Estratégias de encaminhamento propostas 54 Outro aspeto importante é o facto de que o algoritmo MPR tem em conta a rota do interesse, ou seja, se o interesse recebido por N tem a rota X-A-N, quando é executado o algoritmo MPR no nó N, este irá descartar, caso possua, os vizinhos A e X e os vizinhos dos vizinhos A e X nos seus cálculos. Assim, diminuirá a probabilidade de loops Encaminhamento de dados Quanto ao encaminhamento de pacotes de dados, este não foi alterado, ou seja, continua a seguir o percurso inverso do interesse e, caso não pertença à rota do interesse, espera um período de T Data. Se durante esse período não receber outro pacote de dados igual, reencaminha o pacote ao fim de período de T Data. Caso contrário, descarta o pacote. É de notar que no reencaminhamento de interesses, os nós continuam a colocar os seus IDs no campo Path do cabeçalho do pacote. Poderia ter sido proposta uma outra variante desta estratégia de encaminhamento, que alterasse o encaminhamento dos dados, à semelhança do que foi feito para os interesses. Em vez de os dados seguirem a rota do interesse, seria utilizado o algoritmo MPR. No entanto, existe uma limitação, que é uma regra das NDNs, que põe em causa este protocolo. Quando um nó recebe um pacote de dados, verifica se tem uma entrada PIT correspondente. Caso não tenha, descarta o pacote não solicitado. Desta forma, como o algoritmo MPR define um conjunto reduzido de nós para reencaminharem o pacote, se esses nós não tiverem recebido o interesse correspondente, irão descartar o pacote e o encaminhamento termina, não conseguindo fazer com que os dados cheguem ao consumidor. Por esta razão, foi decidido que esta estratégia não seria proposta.

76 Capítulo 6 Implementação Neste capítulo será descrita a implementação da rede de dados nomeados no contexto de uma rede Ad Hoc, bem como as três estratégias de encaminhamento implementadas. Além disso, será explicado o funcionamento do simulador utilizado. Para a implementação da rede, foi usado o simulador ndnsim 2.0 [8], que é uma versão estendida do NS-3, que incorpora o paradigma dos dados nomeados. 6.1 Simulador ndnsim A ferramenta ndnsim implementa todas as características básicas da arquitetura NDN, incluindo: A utilização de um esquema de nomes hierárquico e o formato de pacotes de interesses/dados; O uso de tabelas para o processamento de pacotes, tais como CS, PIT e FIB; A abstração de estratégias de encaminhamento; A abstração de interfaces, a fim de suportar a interface entre a arquitetura NDN e as camadas superiores (aplicações) e inferiores (rede, ligação). No ndnsim 2.0, todo o encaminhamento e gestão NDN é implementado diretamente, usando o código fonte do NDN Forwarding Daemon (NFD) [8]. O NDN Forwarding Daemon (NFD) é um encaminhador de rede e foi projetado para permitir simular experiências diversificadas, tendo em conta as características, algoritmos e aplicações das redes NDN. Assim, o NFD implementa e evolui com o protocolo NDN. 55

77 Capítulo 6. Implementação 56 Nesta secção será explicada a estrutura do NFD: em primeiro lugar serão apresentadas as tabelas usadas pelo NFD, depois a estrutura dos pacotes e, por fim, será explicado o processo de encaminhamento de interesses e dados. 6.2 Tabelas O NFD implementa a PIT, FIB e CS, além de outras tabelas de suporte, como a tabela Strategy Choice e a tabela Measurements. A tabela Forwarding Information Base (FIB) é usada para encaminhar pacotes de interesse em direção a potenciais fontes dos dados. É quase idêntica a uma tabela de encaminhamento IP, com a diferença de que a FIB permite ter uma lista de interfaces de saída, em vez de uma única. Uma entrada FIB contém o nome do prefixo e um conjunto de NextHops. Quando existe uma entrada FIB para um determinado prefixo significa que pode ser alcançada uma potencial fonte de dados correspondente, através das interfaces contidas no registo de NextHops, nessa entrada FIB. Cada registo de NextHop contém uma interface de saída, para uma potencial fonte de dados, e o seu custo de encaminhamento. A tabela Content Store (CS) é uma cache de pacotes de dados. Os pacotes de dados, recebidos por um nó, são colocados nesta cache por um período de tempo, a fim de satisfazer os interesses futuros que solicitem os mesmos dados. Cada entrada da Tabela CS contém o pacote de dados, a indicação se o pacote de dados não é solicitado e a hora em que os dados em cache se irão tornar obsoletos. A tabela Pending Interest Table (PIT) tem como objetivo controlar os interesses encaminhados em direção a produtores de dados, para que os dados possam ser enviados para o respetivo consumidor [35]. Além disso, contém interesses satisfeitos recentemente, para que possam ser detetados ciclos. Uma entrada PIT representa um interesse pendente ou um interesse que foi recentemente satisfeito e é constituída por um conjunto de registos de entrada, um conjunto de registos de saída, dois temporizadores (o temporizador insatisfeito, que expira quando todos os registos da entrada PIT expirarem; e o temporizador straggler, que expira quando a entrada PIT pode ser removida por ter sido satisfeita ou rejeitada, e já não ser necessária para detetar ciclos) e, por fim, uma lista Nonce. Cada interesse possui um valor Nonce, que pode ser considerado como o seu identificador e serve, principalmente, para verificar se o interesse recebido por um dado nó é

78 Capítulo 6. Implementação 57 duplicado. Supondo que um consumidor envia um interesse com um valor Nonce = x. Caso o mesmo consumidor deseje enviar outro pacote, mesmo sendo igual ao primeiro interesse, esse interesse já vai ter um valor Nonce x. A lista Nonce é formada por um conjunto de Nonces de pacotes de interesse recebidos, que correspondam a uma entrada PIT. Assim, caso um nó receba dois pacotes de interesse com o mesmo nome, mas o primeiro com Nonce = x e o segundo com Nonce x, vai perceber que são diferentes, não detetando um loop falso. A tabela Strategy Choice contém a estratégia de encaminhamento escolhida. A tabela Measurements é usada pelas estratégias de encaminhamento, para armazenar informações de medições por prefixos de dados. 6.3 Estrutura dos Pacotes interesse/dados Cada pacote NDN é codificado com o formato Type-Length-Value (TLV) [36]. Este formato não tem um cabeçalho fixo, o que torna o envio de pacotes de tamanhos muito pequenos mais eficiente, pois não implica tanta sobrecarga na rede Pacote de interesse Um pacote de interesse, que está representado na Figura 6.1, é constituído por quatro campos: Name, Selectors, Nonce e InsterestLifeTime. Os campos Name e Nonce são os únicos obrigatórios, todos os outros são facultativos [37]. Figura 6.1: Estrutura do pacote de interesse Name: é o nome do prefixo. Selectors: são usados para ajudar na seleção dos dados a enviar, quando existem vários pacotes que correspondem ao interesse. O campo Selector contém cinco

79 Capítulo 6. Implementação 58 sub-campos: MinSuffixComponents e MaxSuffixComponents, PublisherPublicKey- Locator, Exclude, ChildSelector e MustBeFresh [37]. MinSuffixComponents e MaxSuffixComponents: permite que um consumidor de dados possa indicar se o nome do interesse é o nome completo. O valor por defeito de MinSuffixComponents é 0 e de MaxSuffixComponents é efetivamente infinito. Quando são estes os valores usados, significa que qualquer pacote de dados, cujo nome comece com o prefixo, corresponde ao interesse do consumidor [37]. PublisherPublicKeyLocator: especifica a chave pública, que corresponde à chave privada que deverá ser usada para assinar o pacote de dados, que o consumidor solicitou. Esta é uma maneira de o interesse selecionar respostas de um determinado produtor [37]. Exclude: permite especificar uma lista de nomes, que não devem aparecer como uma continuação do nome do prefixo, no pacote de dados [37]. ChildSelector: muitas vezes um determinado interesse irá corresponder a mais do que um pacote de dados contido na Content Store dos nós. O ChildSelector serve para especificar qual dos pacotes o consumidor deseja receber [37] (especificar versões dos pacotes, por exemplo). MustBeFresh: quando MustBeFresh não existe no pacote de interesse, um nó pode responder com um pacote de dados a partir de sua CS, com o FreshnessPeriod válido ou já expirado. Quando este campo existe num pacote de interesse, o nó não deve retornar o pacote de dados a partir da sua CS, caso o valor de FreshnessPeriod esteja expirado. Cada pacote de dados contém um valor de FreshnessPeriod, que é definido pelo seu produtor inicial. A sua contagem regressiva começa quando o pacote de dados chega a um nó [37]. Nonce: é um identificador de um pacote de interesse e serve, principalmente, para verificar se o interesse é duplicado. Guiders: contém um sub-campo, designado por InterestLifetime, que indica o tempo de vida de um interesse [37].

80 Capítulo 6. Implementação Pacote de dados Um pacote de dados, que está representado na Figura 6.2, é constituído por quatro campos: Name, MetaInfo, Content e Signature. O pacote de dados contém o seu conteúdo (armazenado no campo Content), o seu nome (Name), alguns bits adicionais de informação (MetaInfo) e uma assinatura digital dos outros três elementos (Signature)[38]. Figura 6.2: Estrutura do pacote de dados Name: é o nome do prefixo. MetaInfo: é um campo opcional, que contém informação adicional e é dividida em 3 sub-campos: ContentType, FreshnessPeriod e FinalBlockId. ContentType: corresponde ao tipo de dados que o pacote transporta. Existem três tipos: default (=0), Link (=1) e Key (=2). Quando está ativado o tipo default, significa que o conteúdo (campo Content) é identificado pelo campo Name. No caso do tipo Link, o conteúdo corresponde a outro nome que identifica o pacote de dados. O tipo Key indica que o conteúdo do pacote transporta uma chave pública [38]. FreshnessPeriod: indica o tempo de vida do pacote de dados, até este ser marcado como expirado. A expiração do FreshnessPeriod significa, apenas, que o produtor pode ter produzido dados mais recentes. Quando FreshnessPeriod é omitido, o pacote de dados não pode ser marcado como obsoleto [38]. FinalBlockId: indica o identificador do último pacote de dados de uma sequência de fragmentos. Este campo deve estar presente no pacote final, e pode também estar presente noutros fragmentos, a fim de proporcionar um aviso antecipado ao consumidor. O valor do FinalBlockId deve ser igual ao campo Name do último pacote da sequência de fragmentos [38]. Content: contém o conteúdo (dados) do pacote de dados.

81 Capítulo 6. Implementação 60 Signature: é uma assinatura digital dos outros três campos do pacote de dados [38]. Na estratégia DSRstrategy, foi introduzido um novo campo no cabeçalho do pacote de interesse e do pacote de dados, designado por Path e, por isso, a estrutura dos pacotes é diferente nesta estratégia. A nova estrutura do pacote de interesse está representada na Figura 6.3 e a do pacote de dados está representada na Figura 6.4. Figura 6.3: Estrutura do pacote de interesse na estratégia DSRstrategy Figura 6.4: Estrutura do pacote de dados na estratégia DSRstrategy Na estratégia MPRstrategy, foi, também, introduzido um novo campo ao cabeçalho do interesse, designado por campo MPR. Assim, a estrutura do pacote de interesse foi, novamente, alterada e pode ser vista na Figura 6.5. Nesta estratégia, o pacote de dados é igual à estratégia DSRstrategy. 6.4 Processamento de pacotes pelo NFD Os pacotes chegam ao NFD através de interfaces. Uma interface pode ser tanto uma interface física (caso a NDN opere diretamente pela Ethernet), como um túnel overlay (caso a NDN opere como um overlay acima do TCP ou UDP) [6]. O processamento de pacotes no NFD é desempenhado através de pipelines de encaminhamento e estratégias de encaminhamento [6]. Um pipeline é um conjunto de

82 Capítulo 6. Implementação 61 Figura 6.5: Estrutura do pacote de interesse na estratégia MPRstrategy etapas, levadas a cabo sobre um pacote ou numa entrada PIT, e é acionado por um evento específico: receção de interesses, deteção de interesses recebidos em loop, deteção de quando o interesse está pronto para ser enviado para outro nó, etc. A estratégia é um tomador de decisões sobre o encaminhamento de interesses, que é anexado no final ou início dos pipelines. Por outras palavras, a estratégia toma decisões se, quando e para onde encaminhar um interesse, enquanto os pipelines fornecem à estratégia informações de apoio para tomar essas decisões [6]. A Figura 6.6 mostra a relação das tarefas dos pipelines e das estratégias, onde as caixas azuis representam pipelines e as caixas brancas representam pontos de decisão da estratégia. Figura 6.6: Relação entre pipelines e a estratégia [6]

83 Capítulo 6. Implementação 62 O processamento de pacotes de interesses e dados pelo NDN é diferente (o primeiro serve como um pedido, enquanto o segundo satisfaz pedidos pendentes) e, por isso, os pipelines de encaminhamento são separados em dois grupos: processamento de interesses e processamento de dados [6], que serão descritos de seguida Processamento de interesses O processamento dos interesses é constituído por vários pipelines: Incoming interest: processamento de interesses recebidos por um nó. Interest loop: processamento de interesses recebidos em loop. Outgoing interest: preparação e envio de interesses. Interest reject: processamento de entradas PIT, que são rejeitadas pela estratégia. Interest unsatisfied: processamento de entradas PIT, que se tornam insatisfeitas. Quando um nó recebe um interesse, é iniciado o pipeline Incoming interest. Em primeiro lugar, é inserida uma entrada na tabela Pending Interest Table (PIT). A cada entrada PIT são associados dois temporizadores: o temporizador insatisfeito, que expira quando a entrada PIT expira; e o temporizador straggler, que expira quando a entrada PIT pode ser removida, pois foi satisfeita ou rejeitada, e já não é necessária para fins de deteção e verificação de loops. Caso seja detetado que o interesse é duplicado, é iniciado o pipeline Interest loop, onde o pacote é descartado. Se o interesse não for duplicado, é realizada uma pesquisa na tabela Content Store (CS). Se existirem os dados correspondentes na CS, é enviado o pacote de dados; caso contrário, o interesse deve ser encaminhado. A estratégia de encaminhamento decide como encaminhar um interesse. Para decidir qual estratégia é responsável por encaminhar um interesse, é realizada uma pesquisa de correspondência mais longa de prefixo na tabela de Strategy Choice, que contém a configuração da estratégia. A estratégia responsável por um interesse (ou, mais precisamente, pela entrada PIT) decide se, quando e para onde encaminhar o interesse. Caso a estratégia decida que não pode enviar o interesse, é iniciado o pipeline Interest reject, onde o pacote é descartado. Após a estratégia decidir encaminhar um interesse para uma interface específica, o interesse é enviado através do pipeline Outgoing interest, onde é passado para a interface.

84 Capítulo 6. Implementação 63 A interface, dependendo do protocolo subjacente, acrescenta o cabeçalho da camada de ligação, os fragmentos, se necessário, e envia os pacotes da camada de ligação, como fluxo de saída ou datagramas, através da API do sistema operativo. Caso uma entrada PIT não seja satisfeita, depois de o temporizador insatisfeito expirar, é iniciado o pipeline Interest unsatisfied, onde a entrada PIT é eliminada Processamento de dados O processamento de dados pelo NFD é dividido nos seguintes pipelines: Incoming data: processamento de pacotes de dados recebidos. Data unsolicited: processamento de pacotes de dados recebidos não solicitados. Outgoing data: Preparação e envio de pacotes de dados. Quando um nó recebe um pacote de dados, é iniciado o pipeline Incoming data. O primeiro passo deste pipeline é verificar se existem entradas PIT que possam ser satisfeitas com este pacote de dados. Todas as entradas correspondentes são, então, selecionadas para posterior processamento e são cancelados os temporizadores insatisfeito e straggler, para cada entrada PIT encontrada, pois o interesse pendente ficou, agora, satisfeito. Se esses dados não satisfizerem nenhuma das entradas PIT, significa que o pacote de dados não foi solicitado e, por isso, é iniciado o pipeline Data unsolicited, onde o pacote é descartado. No entanto, em casos especiais, dados não solicitados, a partir de uma aplicação local, são armazenados em cache na CS. Finalmente, os dados são enviados para todos os consumidores. O processo de envio de dados através de uma interface é semelhante ao envio de um interesse e realiza-se através do pipeline Outgoing data. 6.5 Estratégias de encaminhamento implementadas Até ao momento, a maioria dos trabalhos que usaram a ferramenta ndnsim [39] têm-se focado em redes com fios, e não em redes wireless Ad Hoc [5]. Talvez por esta razão, a comunicação wireless multihop ainda não seja suportada pela versão atual oficial do ndnsim [8]. Nesta ferramenta, um nó pode encaminhar um pacote de interesse/dados recebido através de todas as interfaces de rede, exceto através da interface pela qual o pacote chegou. Como consequência, o pacote recebido pela interface não seria

85 Capítulo 6. Implementação 64 enviado diretamente através da mesma interface, a fim de permitir uma comunicação wireless multihop. Assim, a ferramenta teve de ser reformulada, para contornar este problema e suportar o reencaminhamento em interfaces rádio A restrição para os interesses estava mencionada no arquivo pit-entry.cpp, na função canforwarto. Todas as estratégias acediam a essa função, para averiguar se podiam, ou não, reencaminhar o interesse. Assim, todas as novas estratégias implementadas, em vez de utilizarem a função canforwarto da pit-entry.cpp, utilizam uma nova função, que faz exatamente o mesmo do que a função original, eliminado a restrição não desejada. Já a restrição para os pacotes de dados era aplicada no arquivo forwarder.cpp, mais propriamente na função onincomingdata. Esta função verificava quais os downstreams pendentes e enviava o pacote por esses, caso não fossem iguais à interface de entrada. Assim, neste caso bastou eliminar essa restrição. Desta forma, já é possível simular uma rede com uma comunicação wireless multihop Estratégia BFstrategy Como já tinha sido referido, a estratégia BFstrategy, abordada anteriormente na Secção 5.1, tem como objetivo principal adiar a transmissão de interesses e dados, por um intervalo de tempo, calculado aleatoriamente, a fim de diminuir a probabilidade de colisões. As tabelas de interesses atrasados e de dados atrasados, que todos os nós possuem, são representadas por duas estruturas de dados (struct). A estrutura de interesses atrasados está representada na Figura 6.7 e a estrutura de dados atrasados está representada na Figura 6.8. Figura 6.7: Estrutura da Struct de interesses atrasados na BFstrategy

86 Capítulo 6. Implementação 65 Figura 6.8: Estrutura da Struct de dados atrasados na BFstrategy O campo ID é do tipo int, o campo prefixo é do tipo ndn::name, o campo validade e o campo dados são do tipo bool. A estrutura da struct de dados atrasados é igual à estrutura da struct de interesses atrasados, com a exceção da última ter um campo adicional, o campo dados Encaminhamento de interesses Como foi criada uma nova estratégia, foi necessário criar dois arquivos: BFstrategy.cpp e BFstrategy.hpp. Todas as estratégias de encaminhamento no simulador ndn- SIM têm de ter a função afterreceiveinterest, que é chamada pela função onincominginterest do forwarder.cpp. A função afterreceiveinterest tem o objetivo principal de verificar se é possível reencaminhar o interesse, para si próprio ou para a rede, e, caso seja possível, enviar o interesse pela interface de saída. No entanto, dependendo da estratégia, pode ter, ou não, mais funcionalidades. Aos parâmetros desta função, foram acrescentados a struct de interesses atrasados e um valor inteiro loop, que indica se foi detetado que o interesse está em loop (=1) ou não (=0). Este valor inteiro serve para fazer o registo do interesse recebido na struct de interesses atrasados, a fim de ser verificado se existe outro interesse com o mesmo prefixo na struct. Caso exista, este será marcado como inválido. Nesta estratégia, a função afterreceiveinterest foi alterada: é verificado se é o consumidor a enviar o interesse, criado por si. Se sim, envia de imediato o pacote para a rede, senão invoca a função wait interest. Nos arquivos BFstrategy.cpp e BFstrategy.hpp, foram acrescentadas, então, duas novas funções: wait interest e sendinterest. A função wait interest tem uma primeira tarefa de verificar se é o produtor a receber o interesse. Caso seja, envia de imediato o interesse por uma interface local (enviar ou receber um pacote, através de uma interface

Redes Ad-Hoc FEUP MPR. » DNS, routing pouco adequados, actualmente» IP Móvel requer rede infraestruturada; HomeAgent na rede fixa

Redes Ad-Hoc FEUP MPR. » DNS, routing pouco adequados, actualmente» IP Móvel requer rede infraestruturada; HomeAgent na rede fixa AdHoc 1 Redes Ad-Hoc FEUP MPR AdHoc 2 Redes Móveis Ad-Hoc Mobilidade IP» DNS, routing pouco adequados, actualmente» IP Móvel requer rede infraestruturada; HomeAgent na rede fixa Pode, no entanto, não haver

Leia mais

Redes Ad-Hoc FEUP MPR. » Áreas remotas, reuniões ad-hoc, zonas de desastre» Custo elevado Ł Necessidade de redes ad-hoc

Redes Ad-Hoc FEUP MPR. » Áreas remotas, reuniões ad-hoc, zonas de desastre» Custo elevado Ł Necessidade de redes ad-hoc AdHoc 1 Redes Ad-Hoc FEUP MPR AdHoc 2 Redes Móveis Ad-Hoc Mobilidade IP» DNS, routing lentos ou inadequado» IP Móvel requer rede estruturada; HomAgent na rede fixa Pode, no entanto, não haver infraestrutura

Leia mais

Novas Tecnologias de Redes de Computadores

Novas Tecnologias de Redes de Computadores Novas Tecnologias de Redes de Computadores Ricardo José Cabeça de Souza www.ricardojcsouza.com.br rjcsouza@superig.com.br 2013 MANET (Mobile Ad Hoc Network) Redes Ad Hoc Características Esperadas com Roteamento

Leia mais

Redes (celulares) tradicionais. Redes móveis ad hoc MANET. Redes ad hoc. Para que MANETs? Aplicações. Conectividade single hop com o mundo com fio

Redes (celulares) tradicionais. Redes móveis ad hoc MANET. Redes ad hoc. Para que MANETs? Aplicações. Conectividade single hop com o mundo com fio Redes (celulares) tradicionais Redes móveis ad hoc Alfredo Goldman Conectividade single hop com o mundo com fio Células gerenciadas por ERBs Apenas as UMs se movem Existência de hand-offs Baseado em: Mobile

Leia mais

ROUTER. Alberto Felipe Friderichs Barros

ROUTER. Alberto Felipe Friderichs Barros ROUTER Alberto Felipe Friderichs Barros Router Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de

Leia mais

Zone Routing Protocol - ZRP[1]

Zone Routing Protocol - ZRP[1] Zone Routing Protocol - ZRP[1] Rafael de M. S. Fernandes 1 1 Programa de Engenharia de Sistemas e Computação - Coppe/UFRJ Rio de Janeiro - RJ - Brasil rafaelmsf@cos.ufrj.br Resumo. O protocolo ZRP busca

Leia mais

Roteamento e Roteadores. Conceitos Diversos

Roteamento e Roteadores. Conceitos Diversos e Roteadores Conceitos Diversos Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de acordo com as

Leia mais

Gestão de Sistemas e Redes

Gestão de Sistemas e Redes Gestão de Sistemas e Redes Comutação em Redes Locais Paulo Coelho 005 Versão.0 Comutação em LANs Sumário Comutadores Store-and-Forward Comutação de circuitos vs Datagramas Bridges e segmentação de LANs

Leia mais

# $ % & ' ( ) * ' ( ) *! " " Orientador +, -

# $ % & ' ( ) * ' ( ) *!   Orientador +, - #$ %&'()* '()*!"" Orientador +,- ."%&/0#12 3"/%'0)/))&/ )4506 7" %/0)/))&/ 8906 8)) :"'/0)/))&/ '% '); Um roteador recebe em alguma de suas interfaces um pacote vindo da rede local ou da rede externa.

Leia mais

CCNA 1 Roteamento e Sub-redes. Kraemer

CCNA 1 Roteamento e Sub-redes. Kraemer CCNA 1 Roteamento e Sub-redes Roteamento e Sub-redes Introdução Protocolo roteado Visão geral de roteamento Endereçamento de sub-redes Introdução IP é o principal protocolo roteado da Internet IP permite

Leia mais

Universidade Federal do Rio de Janeiro COPPE - UFRJ. Optimized Link State Routing Protocol (OLSR) Julio Heitor Silva Nóbrega

Universidade Federal do Rio de Janeiro COPPE - UFRJ. Optimized Link State Routing Protocol (OLSR) Julio Heitor Silva Nóbrega Universidade Federal do Rio de Janeiro COPPE - UFRJ Optimized Link State Routing Protocol (OLSR) Julio Heitor Silva Nóbrega Agosto 2006 1 1 Introdução O protocolo OLSR é um protocolo que herda a estabilidade

Leia mais

Sumário. Protocolos em Redes de Dados- Aula 13 -Mobilidade p.4. Terminologia. Mobile IP. Encaminhamento em redes ad hoc

Sumário. Protocolos em Redes de Dados- Aula 13 -Mobilidade p.4. Terminologia. Mobile IP. Encaminhamento em redes ad hoc Sumário Protocolos em Redes de Dados - Aula 13 - Mobile IP. Encaminhamento em redes ad hoc Mobilidade Luís Rodrigues ler@di.fc.ul.pt DI/FCUL Protocolos em Redes de Dados- Aula 13 -Mobilidade p.1 Protocolos

Leia mais

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços - italo@dcc.ufba.br Gestores da Rede Acadêmica de Computação Departamento de Ciência da Computação Universidade Federal da Bahia,

Leia mais

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11 REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11 Índice 1. ROTEAMENTO...3 1.1 Introdução... 3 1.2 O roteamento e seus componentes... 3 1.3 Tabelas de roteamento... 3 1.4 Protocolos de roteamento... 3

Leia mais

RIP OSPF. Características do OSPF. Características do OSPF. Funcionamento do OSPF. Funcionamento do OSPF

RIP OSPF. Características do OSPF. Características do OSPF. Funcionamento do OSPF. Funcionamento do OSPF OSPF & mospf Visão Geral do Protocolo Escopo da Apresentação Introdução - Protocolos de roteamento - Tipos de protocolos - Histórico do protocolos de roteamento (RIP e suas características) OSPF MOSPF

Leia mais

Aula 13 Roteamento Dinâmico com Protocolos Link-State (Protocolo OSPF)

Aula 13 Roteamento Dinâmico com Protocolos Link-State (Protocolo OSPF) Disciplina: Dispositivos de Rede I Professor: Jéferson Mendonça de Limas 3º Semestre Aula 13 Roteamento Dinâmico com Protocolos Link-State (Protocolo OSPF) 2014/1 Roteiro de Aula Introdução Funcionamento

Leia mais

3º Semestre. Aula 02 Introdução Roteamento

3º Semestre. Aula 02 Introdução Roteamento Disciplina: Dispositivos de Redes I Professor: Jéferson Mendonça de Limas 3º Semestre Aula 02 Introdução Roteamento 2014/1 Roteiro de Aula O que é Roteamento? IP X Protocolos de Roteamento Roteamento Direto

Leia mais

INF-111 Redes Sem Fio Aula 07 Redes Ad Hoc Prof. João Henrique Kleinschmidt

INF-111 Redes Sem Fio Aula 07 Redes Ad Hoc Prof. João Henrique Kleinschmidt INF-111 Redes Sem Fio Aula 07 Redes Ad Hoc Prof. João Henrique Kleinschmidt Santo André, março de 2016 Roteiro Introdução Camada de acesso ao meio Roteamento Protocolos pró-ativos, reativos e híbridos

Leia mais

A Arquitetura do s

A Arquitetura do s A Arquitetura do 802.11s Cliente ou Estação (STA) é um nó que requer serviços, mas não repassa dados, nem participa da descoberta de caminhos feita pelos protocolos de roteamento. Mesh Point (MP) é um

Leia mais

Flávio G F Camacho Vipnet Baixada Telecomunicações e Informática LTDA

Flávio G F Camacho Vipnet Baixada Telecomunicações e Informática LTDA Flávio G F Camacho Vipnet Baixada Telecomunicações e Informática LTDA Sede em Duque de Caxias / RJ Filial em São João de Meriti / RJ Foco exclusivo fornecimento de links dedicados a empresas. Sempre com

Leia mais

Redes de Computadores e a Internet

Redes de Computadores e a Internet Redes de Computadores e a Internet Universidade Federal do Espírito Santo - Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM 2010 Capítulo 4: Camada de Rede 4. 1 Introdução

Leia mais

Compreendendo o Cisco Express Forwarding (CEF)

Compreendendo o Cisco Express Forwarding (CEF) Compreendendo o Cisco Express Forwarding (CEF) Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Visão geral Operações de CEF Atualizando as Tabelas de GRP Routing Encaminhamento

Leia mais

Redes de Computadores. Prof. MSc André Y. Kusumoto

Redes de Computadores. Prof. MSc André Y. Kusumoto Redes de Computadores Prof. MSc André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão

Leia mais

Capítulo 7: Roteando Dinamicamente (Resumo)

Capítulo 7: Roteando Dinamicamente (Resumo) Unisul Sistemas de Informação Redes de Computadores Capítulo 7: Roteando Dinamicamente (Resumo) Protocolos de roteamento Academia Local Cisco UNISUL Instrutora Ana Lúcia Rodrigues Wiggers Presentation_ID

Leia mais

CPE710: Redes Móveis. Prof. Miguel Elias Mitre Campista.

CPE710: Redes Móveis. Prof. Miguel Elias Mitre Campista. CPE710: Redes Móveis Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel CPE710: Redes Móveis REDES MÓVEIS AD HOC Características das Redes Ad Hoc Limitação dos dispositivos Raio de alcance

Leia mais

Capítulo 3 - Sumário. Tipos de Rotas (Diretas, Estáticas e Dinâmicas) Protocolos de Roteamento (RIP, OSPF e BGP)

Capítulo 3 - Sumário. Tipos de Rotas (Diretas, Estáticas e Dinâmicas) Protocolos de Roteamento (RIP, OSPF e BGP) 1 Capítulo 3 - Sumário - Conceitos Tipos de Rotas (Diretas, Estáticas e Dinâmicas) Rotas Default Sumarização de Rotas Algoritmos de Roteamento Protocolos de Roteamento (RIP, OSPF e BGP) 2 ROTA é um caminho

Leia mais

Aula 12 Protocolo de Roteamento EIGRP

Aula 12 Protocolo de Roteamento EIGRP Disciplina: Dispositivos de Rede I Professor: Jéferson Mendonça de Limas 4º Semestre Aula 12 Protocolo de Roteamento EIGRP 2014/1 09/06/14 1 2 de 34 Introdução Em 1985 a Cisco criou o IGRP em razão das

Leia mais

% & ' ( serviços fornecidos pela camada de rede. roteamento na Internet. princípios de roteamento. funcionamento de um roteador. IPv6.

% & ' ( serviços fornecidos pela camada de rede. roteamento na Internet. princípios de roteamento. funcionamento de um roteador. IPv6. -, % * % % " ) " serviços fornecidos pela camada de rede princípios de roteamento roteamento hierárquico protocolo IP roteamento na Internet intra-domínio inter-domínio funcionamento de um roteador IPv6

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática 90 minutos * 24.05.2013 =VERSÃO B= 1 1. Esta teste serve como avaliação de frequência às aulas teóricas. 2. Leia as perguntas com atenção antes de responder. São 70 perguntas de escolha múltipla. 3. Escreva

Leia mais

Novas Tecnologias de Redes de Computadores

Novas Tecnologias de Redes de Computadores Novas Tecnologias de Redes de Computadores Ricardo José Cabeça de Souza www.ricardojcsouza.com.br rjcsouza@superig.com.br 2013 MANET (Mobile Ad Hoc Network) Hierarchical State Routing (HSR) São atribuídas,

Leia mais

Capítulo 7: Roteando Dinamicamente

Capítulo 7: Roteando Dinamicamente Capítulo 7: Roteando Dinamicamente Protocolos de roteamento 1 Capítulo 7 7.1 Protocolos de roteamento dinâmico 7.2 Roteamento dinâmico de vetor distância 7.3 Roteamento RIP e RIPng 7.4 Roteamento dinâmico

Leia mais

SrcRR: Um Protocolo de Roteamento de Alto Throughtput para Redes Mesh

SrcRR: Um Protocolo de Roteamento de Alto Throughtput para Redes Mesh SrcRR: Um Protocolo de Roteamento de Alto Throughtput para Redes Mesh Rafael Lopes Bezerra Julho de 2006 Resumo O Projeto Roofnet no MIT desenvolveu o SrcRR, uma modificação do protocolo DSR que estima

Leia mais

Protocolos de Roteamento link-state

Protocolos de Roteamento link-state CCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolos de Roteamento link-state Cronograma Introdução Introdução ao algoritmo SPF Processo de roteamento link-state Criação de um B.D. link-state

Leia mais

Capítulo 7: Roteando Dinamicamente

Capítulo 7: Roteando Dinamicamente Capítulo 7: Roteando Dinamicamente Protocolos de roteamento Presentation_ID 1 Capítulo 7 7.1 Protocolos de roteamento dinâmico 7.2 Roteamento dinâmico de vetor distância 7.3 Roteamento RIP e RIPng 7.4

Leia mais

Nível de Rede. Disciplina: Redes de Computadores. Profa. Débora Christina Muchaluat Saade

Nível de Rede. Disciplina: Redes de Computadores. Profa. Débora Christina Muchaluat Saade epartamento de iência da omputação - UFF isciplina: Redes de omputadores Nível de Rede Profa. ébora hristina Muchaluat Saade debora@midiacom.uff.br Redes de omputadores Link State 8 Link State ü topologia

Leia mais

Análise de Descarte em Redes Ad Hoc: Estudo de Escalabilidade do Protocolo de Roteamento OLSR

Análise de Descarte em Redes Ad Hoc: Estudo de Escalabilidade do Protocolo de Roteamento OLSR Análise de Descarte em Redes Ad Hoc: Estudo de Escalabilidade do Protocolo de Roteamento OLSR Erico Augusto Cavalcanti Guedes Centro de Informática Universidade Federal de Pernambuco (UFPE) Av. Prof. Luis

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 5: REDE DE ACESSO CAMADA ENLACE. Prof. LUIZ LEÃO

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 5: REDE DE ACESSO CAMADA ENLACE. Prof. LUIZ LEÃO AULA 5: REDE DE ACESSO CAMADA ENLACE Prof. LUIZ LEÃO Conteúdo Desta Aula FLUXO DE TRANSMISSÃO TOPOLOGIA FÍSICA PROTOCOLOS DE CONTROLO DE ACESSO 1 2 3 4 5 LINHAS DE COMUNICAÇÃO MÉTODOS DE CONTROLE DE ACESSO

Leia mais

Como funciona o balanceamento de carga em caminhos de custos desiguais (variância) no IGRP e no EIGRP?

Como funciona o balanceamento de carga em caminhos de custos desiguais (variância) no IGRP e no EIGRP? Como funciona o balanceamento de carga em caminhos de custos desiguais (variância) no IGRP e no EIGRP? Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Balanceamento de carga

Leia mais

Redes de Computadores e Aplicações. Aula 37 Roteamento IP Unicast Dinâmico RIP

Redes de Computadores e Aplicações. Aula 37 Roteamento IP Unicast Dinâmico RIP Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do N Campus Currais Novos Redes de Computadores e Aplicações Aula 37 Roteamento IP Unicast Dinâmico RIP Prof. Diego Pereira

Leia mais

RCO2. Redes Locais: Interligação de LANs com roteadores

RCO2. Redes Locais: Interligação de LANs com roteadores RCO2 Redes Locais: Interligação de LANs com roteadores Pontes e switches: ativos de camada de enlace 2 Pontes e switches: aprendem que estações estão em cada porta Mas pode haver problemas! Considere a

Leia mais

Algoritmos Distribuídos para Roteamento em Redes Ad Hoc

Algoritmos Distribuídos para Roteamento em Redes Ad Hoc Algoritmos Distribuídos para Roteamento em Redes Ad Hoc Tiago Rodrigues Chaves Orientador: Ricardo Augusto Rabelo de Oliveira Programa de Pós-Graduação em Ciência da Computação PPGCC/UFOP 26 de julho de

Leia mais

Open Shortest Path First (OSPF)

Open Shortest Path First (OSPF) Open Shortest Path First (OSPF) Carlos Gustavo A. da Rocha Introdução Protocolo de roteamento baseado em estado de enlace, padronizado na RFC 2328 Criado para solucionar as deficiências do RIP Roteadores

Leia mais

Aplicando Gestão de Energia ao Protocolo de Roteamento para Redes Ad Hoc Móveis VRP

Aplicando Gestão de Energia ao Protocolo de Roteamento para Redes Ad Hoc Móveis VRP Aplicando Gestão de Energia ao Protocolo de Roteamento para Redes Ad Hoc Móveis VRP Orientando: Angelo Bannack Orientador: Prof. Dr. Luiz Carlos Pessoa Albini 25 de Agosto de 2008 Roteiro Introdução; Técnicas

Leia mais

Redes. DIEGO BARCELOS RODRIGUES Ifes - Campus Cachoeiro de Itapemirim

Redes. DIEGO BARCELOS RODRIGUES Ifes - Campus Cachoeiro de Itapemirim Redes DIEGO BARCELOS RODRIGUES dbarcelos@ifes.edu.br 1 Agenda Correção do Trabalho de Casa Exercício Ponto Extra Roteamento o Estático o Dinâmico 2 Exercício Valendo Ponto Extra Utilize VLSM para distribuir

Leia mais

Arquitectura de Redes

Arquitectura de Redes Arquitectura de Redes Revisões de alguns conceitos dados em RSD Camadas Protocolares Aplicação Cabeç Dados Transporte Cabeç Dados Internet Cabeç Dados Revisões Ligação Física Cabeç Dados Dados TCP/IP PDU

Leia mais

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes;

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes; 2.3 A CAMADA DE REDE Fornece serviços para o nível de transporte, sendo, freqüentemente, a interface entre a rede do cliente e a empresa de transporte de dados (p.ex. Embratel). Sua principal função é

Leia mais

Arquitectura de Redes

Arquitectura de Redes Arquitectura de Redes Routing Dinâmico BGP 1 EGPs (Exterior Gateway Protocols) 2 Os protocolos de encaminhamento exteriores foram criados para controlar o crescimento das tabelas de encaminhamento e para

Leia mais

Roteamento Estático. Protocolos de roteamento. Capítulo 6 do CCNA2

Roteamento Estático. Protocolos de roteamento. Capítulo 6 do CCNA2 Roteamento Estático Capítulo 6 do CCNA2 Protocolos de roteamento 1 Capítulo 6 6.1 Implementação de roteamento estático 6.2 Configuração de rotas estáticas e padrão 6.3 Revisão de CIDR e de VLSM 6.4 Configuração

Leia mais

Capítulo 4 A camada de REDE

Capítulo 4 A camada de REDE Capítulo 4 A camada de REDE slide 1 Introdução A camada de rede slide 2 Repasse e roteamento O papel da camada de rede é transportar pacotes de um hospedeiro remetente a um hospedeiro destinatário. Repasse.

Leia mais

Camada de rede do modelo OSI Redes de Comunicação Módulo 3 Parte 2

Camada de rede do modelo OSI Redes de Comunicação Módulo 3 Parte 2 Curso Profissional de Gestão de Programação de Sistemas Informáticos Ano Letivo 2015/2016 Camada de rede do modelo OSI Redes de Comunicação Módulo 3 Parte 2 Rotas Estáticas e Dinâmicas Os routers guardam

Leia mais

Capítulo 6: Roteamento Estático. Protocolos de roteamento

Capítulo 6: Roteamento Estático. Protocolos de roteamento Capítulo 6: Roteamento Estático Protocolos de roteamento 1 Capítulo 6 6.1 Implementação de roteamento estático 6.2 Configurar rotas estáticas e padrão 6.3 Revisão de CIDR e de VLSM 6.4 Configurar rotas

Leia mais

Roteamento Prof. Pedro Filho

Roteamento Prof. Pedro Filho Roteamento Prof. Pedro Filho Definição Dispositivo intermediário de rede projetado para realizar switching e roteamento de pacotes O roteador atua apenas na camada 3 (rede) Dentre as tecnologias que podem

Leia mais

12/03/2015. Multicast e EIGRP. Prof. Alexandre Beletti. Multicast

12/03/2015. Multicast e EIGRP. Prof. Alexandre Beletti. Multicast Multicast e EIGRP Prof. Alexandre Beletti Multicast 1 Multicast Transmissão seletiva para múltiplos pontos Cada máquina escolhe se deseja ou não participar da transmissão As interfaces de rede são configuradas

Leia mais

Redes de Computadores 2 o Teste

Redes de Computadores 2 o Teste Redes de Computadores 2 o Teste 23 de Janeiro de 2009 LEIC-Tagus Nota prévia As respostas erradas nas questões de escolha múltipla descontam a cotação dessa questão a dividir pelo número de alternativas.

Leia mais

Directed Diffusion. Danilo Michalczuk Taveira 1. Grupo de Teleinformática e Automação (GTA) Disciplina CPE825 - Roteamento em Redes de Computadores

Directed Diffusion. Danilo Michalczuk Taveira 1. Grupo de Teleinformática e Automação (GTA) Disciplina CPE825 - Roteamento em Redes de Computadores Directed Diffusion Danilo Michalczuk Taveira 1 1 Universidade Federal do Rio de Janeiro (UFRJ) Grupo de Teleinformática e Automação (GTA) Disciplina CPE825 - Roteamento em Redes de Computadores danilo@gta.ufrj.br

Leia mais

RIP Routing Information Protocol

RIP Routing Information Protocol Routing Information Protocol Carlos Gustavo A. da Rocha Introdução O objetivo final de qualquer protocolo de roteamento é automatizar o processo de preenchimento das tabelas de rotas de roteadores Dependendo

Leia mais

Um sistema de difusão de informação a nível da aplicação

Um sistema de difusão de informação a nível da aplicação Um sistema de difusão de informação a nível da aplicação Projecto de Redes de Computadores I - 2008/2009 LEIC IST, Tagus Park 21 de Setembro de 2008 1. Sumário O projecto pretende desenvolver um sistema

Leia mais

Mobile Communications. RedesAd-hoc

Mobile Communications. RedesAd-hoc Ad-hoc 1 Mobile Communications RedesAd-hoc Manuel P. Ricardo Faculdade de Engenharia da Universidade do Porto Ad-hoc 2 Redes Ad-Hoc (Nível 3) Rede autoconfigurável Ligações sem fios Nós móveis topologia

Leia mais

O que o comando show ip ospf interface revela?

O que o comando show ip ospf interface revela? O que o comando show ip ospf interface revela? Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Exemplo da estrutura de dados da interface Estado da interface Endereço IP e

Leia mais

Nome: Nº de aluno: Indique se vai realizar exame ou 2º teste: Exame: 2º teste: PARTE 1 (7 valores)

Nome: Nº de aluno: Indique se vai realizar exame ou 2º teste: Exame: 2º teste: PARTE 1 (7 valores) Redes de Computadores Prova modelo Exame + 2º teste ATENÇÃO: Esta prova contém, simultaneamente, o 1º exame e o 2º teste. Os alunos que queiram realizar o 2º teste apenas precisam de realizar a PARTE 2

Leia mais

também conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns:

também conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns: Roteamento intra-as também conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns: RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior

Leia mais

Nome: Nº de aluno: 2ª Ficha de Avaliação Teórica Data Limite de Entrega 06/11/2015

Nome: Nº de aluno: 2ª Ficha de Avaliação Teórica Data Limite de Entrega 06/11/2015 Instituto Superior de Engenharia de Lisboa Área Departamental de Engenharia de Electrónica e Telecomunicações e de Computadores Redes de Internet (LEIC/LEETC/LEIM) Nome: Nº de aluno: 2ª Ficha de Avaliação

Leia mais

Camada de Rede Fundamentos e Protocolos. 6/7/18 Organizado por Bruno Pereira Pontes brunopontes.com.br

Camada de Rede Fundamentos e Protocolos. 6/7/18 Organizado por Bruno Pereira Pontes brunopontes.com.br Camada de Rede Fundamentos e Protocolos 1 Objetivos Conhecer as características, funcionalidades e protocolos da camada de rede, especialmente os protocolos IP e ICMP; Entender as principais características

Leia mais

Capítulo 4 A camada de REDE

Capítulo 4 A camada de REDE Capítulo 4 A camada de REDE slide 1 Introdução A camada de rede slide 2 Repasse e roteamento O papel da camada de rede é transportar pacotes de um hospedeiro remetente a um hospedeiro destinatário. Repasse.

Leia mais

Redes de computadores. Monteiro, Emiliano S. Professor Out/2016

Redes de computadores. Monteiro, Emiliano S. Professor Out/2016 Redes de computadores Monteiro, Emiliano S. Professor Out/2016 Algoritmos de Roteamento Algoritmos não adaptativos: não baseiam suas decisões de roteamento em medidas ou estimativas de tráfego e da topologia

Leia mais

Meios de Comunicação de Dados.

Meios de Comunicação de Dados. Meios de Comunicação de Dados www.profjvidal.com Redes sem Fio: - Com infraestrutura - Sem infraestrutura ou AD-HOC Introdução As redes de computadores vieram para revolucionar a forma como nos comunicamos

Leia mais

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

CCNA 2 Conceitos Básicos de Roteadores e Roteamento CCNA 2 Conceitos Básicos de Roteadores e Roteamento Capítulo 9 - Princípios Básicos de Solução de ProblemasP com Roteadores 1 Objetivos do Capítulo Aplicar e compreender os comandos: ping, telnet, show

Leia mais

Arquitectura de Redes

Arquitectura de Redes Arquitectura de Redes Routing Dinâmico BGP 1 EGPs (Exterior Gateway Protocols) 2 Os protocolos de encaminhamento exteriores foram criados para controlar o crescimento das tabelas de encaminhamento e para

Leia mais

Ad Hoc On-Demand Distance Vector (AODV)

Ad Hoc On-Demand Distance Vector (AODV) Ad Hoc On-Demand Distance Vector (AODV) Carina T. de Oliveira 1 1 Grupo de Teleinformática e Automação (GTA) Universidade Federal do Rio de Janeiro (UFRJ) Rio de Janeiro RJ Brasil carina@gta.ufrj.br Abstract.

Leia mais

Meios de Comunicação de Dados.

Meios de Comunicação de Dados. Meios de Comunicação de Dados www.profjvidal.com Redes sem Fio: - Com infraestrutura - Sem infraestrutura ou AD-HOC Introdução As redes de computadores vieram para revolucionar a forma como nos comunicamos

Leia mais

Capítulo 1: Introdução às redes comutadas

Capítulo 1: Introdução às redes comutadas Capítulo 1: Introdução às redes comutadas Roteamento e Comutação Material adaptado pelo Prof. Kleber Rezende Presentation_ID 1 Capítulo 1 1.0 Introdução 1.1 Projeto de LAN 1.2 O ambiente comutado 1.3 Resumo

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Seminário 4. Sundaram Rajagopalan and Chien-Chung Shen. A Cross-layer Decentralized BitTorrent for Mobile Ad hoc Networks.

Seminário 4. Sundaram Rajagopalan and Chien-Chung Shen. A Cross-layer Decentralized BitTorrent for Mobile Ad hoc Networks. Seminário 4 Sundaram Rajagopalan and Chien-Chung Shen. A Cross-layer Decentralized BitTorrent for Mobile Ad hoc Networks. Renan Manola Agenda Definições Redes Ad hoc Arquitetura Cross-Layer MANETs ANSI

Leia mais

Directional Routing Protocol (DRP)

Directional Routing Protocol (DRP) Directional Routing Protocol (DRP) Natanael Delgado de Freitas 1 1 GTA PEE - COPPE Universidade Federal do Rio de Janeiro (UFRJ) Caixa Postal 68.504 21.945-970 Rio de Janeiro RJ Brasil {natanael}@gta.ufrj.br

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Curso BCOP. Introdução ao roteamento

Curso BCOP. Introdução ao roteamento Curso BCOP Introdução ao roteamento Licença de uso do material Esta apresentação está disponível sob a licença Creative Commons Atribuição Não a Obras Derivadas (by-nd) http://creativecommons.org/licenses/by-nd/3.0/br/legalcode

Leia mais

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável Zhen Xiao, Kennneth P. Birman Apresentação: Henrique Moniz Sumário Introdução: multicast e o contexto do problema Tipos de multicast

Leia mais

Redes de Computadores (LTIC) 2014/15. Parte 1 (8 valores) Exame Final (1ª Época) 24 de junho de Nome:

Redes de Computadores (LTIC) 2014/15. Parte 1 (8 valores) Exame Final (1ª Época) 24 de junho de Nome: Redes de Computadores (LTIC) 2014/15 Exame Final (1ª Época) 24 de junho de 2015 ATENÇÃO: A duração da prova é de 2,5 horas (150 minutos). Só poderá haver desistências após 60 minutos. Todas as respostas

Leia mais

CPE710: Redes Móveis. Prof. Miguel Elias Mitre Campista.

CPE710: Redes Móveis. Prof. Miguel Elias Mitre Campista. CPE710: Redes Móveis Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel CPE710: Redes Móveis REDES EM MALHA SEM-FIO Introdução às Redes em Malha Sem-fio Alternativa de baixo custo para as

Leia mais

CPE710: Redes Móveis. Introdução às Redes em. Introdução às Redes em Malha Sem-fio. Arquiteturas. Arquiteturas. Prof. Miguel Elias Mitre Campista

CPE710: Redes Móveis. Introdução às Redes em. Introdução às Redes em Malha Sem-fio. Arquiteturas. Arquiteturas. Prof. Miguel Elias Mitre Campista CPE710: Redes Móveis Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel CPE710: Redes Móveis REDES EM MALHA SEM-FIO Introdução às Redes em Malha Sem-fio Alternativa de baixo custo para as

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Prof. André Y. Kusumoto Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 2/16 Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão

Leia mais

4 Simulação e Resultados

4 Simulação e Resultados 4 Simulação e Resultados Conforme anteriormente dito, o simulador GloMoSim foi utilizado para implementar os métodos de simulação para os testes propostos no capítulo anterior. Os parâmetros de simulação

Leia mais

Redes Orientadas a Conteúdo

Redes Orientadas a Conteúdo Redes Orientadas a Conteúdo Pedro Maia Caldas Filipe Vital Mauro Noli UFRJ Universidade Federal do Rio de Janeiro Programa de Engenharia Elétrica - PEE/COPPE/UFRJ 1 Universidade Federal do Rio de Janeiro

Leia mais

Prof. Roitier Campos Gonçalves 1. Aula 02. Introdução aos Conceitos de Roteamento

Prof. Roitier Campos Gonçalves 1. Aula 02. Introdução aos Conceitos de Roteamento Prof. Roitier Campos Gonçalves 1 Aula 02 Introdução aos Conceitos de Roteamento Prof. Roitier Campos Gonçalves 2 Conceito Roteamento é a transferência de informação da origem até o destino através de uma

Leia mais

AULA 07 Roteamento Dinâmico com Protocolo RIP

AULA 07 Roteamento Dinâmico com Protocolo RIP Disciplina: Dispositivos de Rede I Professor: Jéferson Mendonça de Limas 3º Semestre AULA 07 Roteamento Dinâmico com Protocolo RIP 2014/1 Roteiro de Aula Introdução a Conceitos de Roteamento Dinâmico Problemas

Leia mais

Apresentação do artigo Routing Protocol in Intervehicle Communication System: A Survey. Érica Julião Alvim Frederico José Dias Moller

Apresentação do artigo Routing Protocol in Intervehicle Communication System: A Survey. Érica Julião Alvim Frederico José Dias Moller Apresentação do artigo Routing Protocol in Intervehicle Communication System: A Survey Érica Julião Alvim Frederico José Dias Moller Sumário 3- Objetivos 4- Introdução 6- WAVE 12- Protocolos de roteamento

Leia mais

Parte 3: Camada de Rede

Parte 3: Camada de Rede Parte 3: Camada de Rede Objetivos: Visão Geral: Entender os princípios dos serviços da Camada de Rede: Roteamento (seleção de caminho). Implementação na Internet. Serviços da Camada de Rede. Princípios

Leia mais

Referências. Roteamento em Redes Ad Hoc (MANETS) Redes Ad hoc: Principais Características. Roteiro

Referências. Roteamento em Redes Ad Hoc (MANETS) Redes Ad hoc: Principais Características. Roteiro Referências Roteamento em Redes Ad Hoc (MANETS) J. Schiller, seção 9.3 Johnson, Malz: Dynamic Source Routing in ad hoc wireless networks, Mobile Computing, (Ed. Imielinski/Koth), Kluwer, 1996. Perkins,

Leia mais

Camada de Rede. Endereçamento de Rede Protocolo IP

Camada de Rede. Endereçamento de Rede Protocolo IP Camada de Rede Endereçamento de Rede Protocolo IP Camada de Rede Protocolo mais importante: IP IPv4 (mais utilizada) IPv6 (atender ao crescimento das redes e a necessidade de novos endereços). PDU: Pacote

Leia mais

Compreendendo e configurando o comando ip unnumbered

Compreendendo e configurando o comando ip unnumbered Compreendendo e configurando o comando ip unnumbered Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções O que é uma interface sem número? IP e IP sem número Exemplos de configuração

Leia mais

Redes de Computadores e a Internet

Redes de Computadores e a Internet Redes de Computadores e a Internet Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM 2010 Capítulo 4:

Leia mais

Capítulo 8: OSPF de Área Única

Capítulo 8: OSPF de Área Única Capítulo 8: OSPF de Área Única Protocolos de roteamento 1 Capítulo 8 8.1 Características do OSPF 8.2 Configuração da área única do OSPFv2 8.3 Configurar OSPFv3 de área única 2 Capítulo 8: Objetivos 3 8.1

Leia mais

Recursos de demanda de circuito OSPF

Recursos de demanda de circuito OSPF Recursos de demanda de circuito OSPF Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Como o OSPF em um circuito de demanda é diferente de um circuito normal? Saudações periódicas

Leia mais

UMinho 2013 Tiago Filipe Meneses Magalhães Coelho Encaminhamento com QoS em Redes Móveis Ad Hoc

UMinho 2013 Tiago Filipe Meneses Magalhães Coelho Encaminhamento com QoS em Redes Móveis Ad Hoc Universidade do Minho Escola de Engenharia Tiago Filipe Meneses Magalhães Coelho UMinho 2013 Tiago Filipe Meneses Magalhães Coelho Encaminhamento com QoS em Redes Móveis Ad Hoc Encaminhamento com QoS em

Leia mais

AULA 04 CONCEITOS DA CAMADA 02 PARTE 02

AULA 04 CONCEITOS DA CAMADA 02 PARTE 02 AULA 04 CONCEITOS DA CAMADA 02 PARTE 02 UNICAST Um endereço MAC unicast (ponto-a-ponto) é o endereço exclusivo utilizado quando um quadro é enviado de um único dispositivo transmissor para um único dispositivo

Leia mais

Detecção e Mitigação de Ataque de Negação de Serviço Distribuído em Redes Centradas no Conteúdo.

Detecção e Mitigação de Ataque de Negação de Serviço Distribuído em Redes Centradas no Conteúdo. NetCafé Detecção e Mitigação de Ataque de Negação de Serviço Distribuído em Redes Centradas no Conteúdo. Mestrando: Nilton F. S. Seixas Orientador Prof. Dr. Leobino N. Sampaio 1 Sumário

Leia mais

Pop-Routing: Centrality-based Tuning of Control Messages for Faster Route Convergence

Pop-Routing: Centrality-based Tuning of Control Messages for Faster Route Convergence Pop-Routing: Centrality-based Tuning of Control Messages for Faster Route Convergence Leonardo Maccari, Renato Lo Cigno DISI University of Trento, Italy INFOCOM 2016 Aluna: Mariana de Souza Maciel Barbosa

Leia mais

Aula 2 Topologias de rede

Aula 2 Topologias de rede Aula 2 Topologias de rede Redes e Comunicação de Dados Prof. Mayk Choji UniSALESIANO Araçatuba 13 de agosto de 2016 Sumário 1. Topologias de Rede 2. Topologias Físicas Ponto-a-Ponto Barramento BUS Anel

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Aula 13 Segurança de Redes Sem Fio Prof. Ricardo M. Marcacini ricardo.marcacini@ufms.br Curso: Sistemas de Informação 1º Semestre / 2015 http://moodle.lives.net.br/ Elementos de uma

Leia mais

Sistemas entre Pares e Redes Sobrepostas

Sistemas entre Pares e Redes Sobrepostas Redes não estruturadas I 1 ricardo.pereira@inesc-id.pt IST 28-9-2009 1 imagens criadas por Rüdiger Schollmeier and Jörg Eberspächer (Technische Universität München) para o livro Peer-to-Peer Systems and

Leia mais