• Nenhum resultado encontrado

Encaminhamento de pacotes em redes orientadas a conteúdo

N/A
N/A
Protected

Academic year: 2021

Share "Encaminhamento de pacotes em redes orientadas a conteúdo"

Copied!
61
0
0

Texto

(1)

Instituto de Computa¸

ao

Departamento de Ciˆ

encia da Computa¸

ao

Ian Vilar Bastos

Victor Costa Macedo Sousa

ENCAMINHAMENTO DE PACOTES EM REDES

ORIENTADAS A CONTE ´

UDO

Niter´

oi-RJ

2015

(2)

ii IAN VILAR BASTOS

VICTOR COSTA MACEDO SOUSA

ENCAMINHAMENTO DE PACOTES EM REDES ORIENTADAS A CONTE ´UDO

Trabalho submetido ao Curso de Bacharelado em Ciˆencia da Computa¸c˜ao da Universidade Federal Fluminense como requisito parcial para a obten¸c˜ao do t´ıtulo de Bacharel em Ciˆencia da Computa¸c˜ao.

Orientador: Prof. Igor Monteiro Moraes

Niter´oi-RJ 2015

(3)

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

B327 Bastos, Ian Vilar

Encaminhamento de pacotes em redes orientadas a conteúdo / Ian Vilar Bastos, Victor Costa Macedo Sousa. – Niterói, RJ : [s.n.], 2015.

60 f.

Trabalho (Conclusão de Curso) – Departamento de Computação, Universidade Federal Fluminense, 2015.

Orientador: Igor Monteiro Moraes.

1. Arquitetura de redes de computador. 2. Rede orientada a

conteúdo. 3. Internet. I. Sousa,Victor Costa Macedo. II. Título.

CDD 004.6

(4)
(5)

`

(6)

v

Agradecimentos

Primeiramente, eu, Ian, gostaria de agradecer aos meus pais, Vilma e Roberto, por todo apoio e carinho que sempre me concederam, por estarem sempre presentes, de-monstrando interesse e participando dos meus estudos al´em de oferecer todas as bases necess´arias para minha forma¸c˜ao pessoal e profissional. Em toda sua dedica¸c˜ao nunca foram poupados esfor¸cos para que esse momento pudesse ser realizado, e como esse tra-balho ´e o resultado de toda essa dedica¸c˜ao, gostaria principalmente de compartilhar essa conquista com eles.

Gostaria de fazer tamb´em um agradecimento especial aos meus av´os, Maria das Neves, Dulcin´ea e Jovino e a toda fam´ılia, que sempre deram muito suporte e conselhos durante todo o curso, o que fez me manter focado e motivado at´e o fim dessa jornada.

Aos amigos, Humberto, Murilo, Vinicius e C´assio, que compartilhei muitos mo-mentos desses quatro anos e meio. Nossas conversas, fossem elas de quest˜oes acadˆemicas ou n˜ao, sempre foram fundamentais para refletir, passar pelas dificuldades e rir para ter um pouco de descontra¸c˜ao.

Eu, Victor, gostaria de agradecer primeiramente a meus pais, Marcos e Ana, irm˜ao, Allan, e toda a minha familia pelo amor, incentivo e apoio que sempre me deram e a capacidade de acreditar em mim e investir em mim mesmos nos momentos dif´ıceis.

Aos amigos, Leandro, Olavo, Giulio, Matheus, Fabio e Gabriel, companheiros de trabalhos e irm˜aos na amizade que fizeram parte da minha forma¸c˜ao e que v˜ao continuar presentes em minha vida com certeza.

Ao professor Igor Moraes, por ter se disponibilizado a nos orientar e cumprir sua fun¸c˜ao com toda competˆencia que possui. Agredecemos muito a todos os conselhos, revis˜oes e reuni˜oes, sua dedi¸c˜ao n˜ao s´o nos mostrou a dire¸c˜ao correta para resolver os problemas que surgiram, como teve grande contribui¸c˜ao em nossa evolu¸c˜ao profissional.

(7)

de nossa banca.

Aos professores do instituto de computa¸c˜ao, que, em sua maioria, foram sempre sol´ıcitos e dedicados exercendo sua profiss˜ao com grande paix˜ao. Sem d´uvidas seus ensina-mentos, dentro e fora da sala de aula, foram de grande importˆancia para o conhecimento adquirido ao longo desses anos.

Aos funcion´arios do IC/UFF como um todo, assim como os alunos e funcion´arios do laborat´orio M´ıdiaCom que nos forneceram grande aux´ılio nesse ´ultimo semestre.

Por fim, ao CNPq, CAPES, FAPERJ, Proppi/UFF, TBE/ANEEL e CELESC/ANEEL por todos os recursos disponibilizados para que esse trabalho pudesse ser realizado.

(8)

vii

Resumo

Atualmente, os usu´arios da Internet est˜ao mais interessados em obter conte´udos de interesse independentemente de onde estejam localizados e de quem envie esses conte´udos. Mais de 60% do tr´afego atual da Internet s˜ao de aplica¸c˜oes com essa caracter´ıstica. O interesse pelo conte´udo independentemente da sua localiza¸c˜ao ´e a principal premissa para a proposta de novas arquiteturas para Internet, chamadas de Redes Orientadas a Conte´udo. Uma da arquiteturas propostas ´e a Content Centric Networking (CCN). Nessa arquitetura, os conte´udos s˜ao requisitados e encaminhados atrav´es de seus nomes, dife-rentemente da Internet atual em que o encaminhamento ´e baseado no endere¸co IP. Al´em disso, os elementos da rede realizam armazenamento tempor´ario (caching) dos conte´udos ao encaminharem os conte´udos em dire¸c˜ao a quem os requisitou. Na presen¸ca de uma enorme estrutura distribu´ıda de caching, a localiza¸c˜ao, assim como a disponibilidade dos conte´udos ´e dinˆamica ao longo do tempo, devido `a forma na qual os conte´udos estar˜ao dis-tribu´ıdos atrav´es da rede. Assim, pode-se argumentar que um mecanismo que investigue a rede por conte´udos armazenados em caches de n´os vizinhos em um determinado instante de tempo ´e mais apropriado do que descobrir e manter uma rota para os produtores de tais conte´udos. Na segunda abordagem, o aumento da disponibilidade s´o ocorrer´a na rota predefinida entre quem requisita e quem produz o conte´udo.

Com isso em mente, esse trabalho prop˜oe uma estrat´egia de encaminhamento de pacotes para a CCN. A proposta usa a t´ecnica de aprendizado por refor¸co, cuja ideia prin-cipal ´e realizar um balan¸co entre explorar novos caminhos e se aproveitar da informa¸c˜ao adquirida durante explora¸c˜oes anteriores. As interfaces de um n´o da rede s˜ao classificadas com base no tempo de recupera¸c˜ao dos conte´udos e todo interesse com o mesmo prefixo para um conte´udo j´a encaminhado ´e enviado pela interface com o menor tempo de recu-pera¸c˜ao m´edio. A explora¸c˜ao ´e realizada probabilisticamente, na qual cada n´o envia o mesmo interesse para a interface melhor classificada e tamb´em para uma outra interface

(9)

escolhida aleatoriamente. O objetivo ´e fazer com que o conte´udo seja entregue pelo me-lhor caminho encontrado at´e o momento e ao mesmo tempo explorar c´opias que possam ter sido armazenadas em caches ainda mais pr´oximos recentemente. Os resultados de simula¸c˜ao mostram que a estrat´egia proposta reduz o n´umero de saltos cerca de 28% em cada n´o e 80% a carga de interesses tamb´em por n´o em determinados cen´arios quando comparada `as outras estrat´egias de encaminhamento propostas para a CCN.

Palavras-chave: Redes Orientadas a Conte´udo, CCN, Encaminhamento, Aprendizado por Refor¸co.

(10)

ix

Abstract

Internet users are currently more interested in obtaining contents regardless of where these contents are located or who provides them. More than 60% of the Internet traffic is from applications with these characteristics. The interest in contents regardless of its location is the main assumption of a set of architectures proposed to the Future Internet, called Information Centric Networks (ICN). The Content Centric Networking (CCN) is one of these new architectures. In CCN data is requested and forwarded by using named contents differently from the current Internet architecture, where forwarding is based on IP addresses. Furthermore, core nodes store content replicas after forwar-ding the requested contents to the users. In the presence of such a highly distributed caching infrastructure, content availability and location can vary over the time because of temporary replicas spread across the network. Thus, we argue that a mechanism that investigates the network looking for content replicas stored in cache of neighbor nodes is more appropriate than mechanisms that discover and mantain routes to the location or domain of content producers. In this case, growth of availability will only occur en-route of those who requests and produces the content. With that in mind, this work proposes a packet forwarding strategy for CCN. Our proposal is based on reinforcement learning techniques and aims at balancing the exploration of new paths and data acquired from previous exploitations. The output interfaces of a node are classified according to the content retrieval time and all interests that share the same prefix with contents previ-ously forwarded are sent through the interface with the lowest mean retrieval time. The path exploration is probabilistic. Each node sends the same interest through the best interface and through another interface chosen at random simultaneously. The goal is to retrieve the content by using the best path found until present moment and at the same time explore copies that are recently stored in the cache of nearest nodes. Simulation results shows that the proposed strategy reduces up to 28% the number of hops traversed

(11)

by received contents and up to 80% the interest load per node in comparison to other forwarding strategies.

(12)

Sum´

ario

Resumo vii

Abstract ix

Lista de Figuras xiv

1 Introdu¸c˜ao 1

1.1 Motiva¸c˜ao . . . 3

1.2 Objetivo . . . 5

1.3 Organiza¸c˜ao do Texto . . . 5

2 Redes Orientadas a Conte´udo 6 2.1 Motiva¸c˜ao . . . 6

2.2 Vis˜ao Geral da CCN . . . 8

2.2.1 Nomea¸c˜ao de Conte´udos . . . 9

2.2.2 Processo de Requisi¸c˜ao e Obten¸c˜ao de Conte´udos . . . 11

3 Encaminhamento na Arquitetura CCN 16 3.1 Trabalhos Relacionados . . . 16

3.2 O Problema das M´aquinas Ca¸ca-N´ıqueis . . . 19

3.3 M´etodo A¸c˜ao-Valor . . . 21

3.4 Implementa¸c˜ao Incremental . . . 21

3.5 Rastreando um Problema N˜ao-Estacion´ario . . . 23

3.6 Estrat´egia de Encaminhamento como um Problema das M´aquinas Ca¸ca-N´ıqueis . . . 24

3.6.1 Constru¸c˜ao da Tabela de Encaminhamento . . . 25

3.6.2 O Processo de Encaminhamento e Explora¸c˜ao . . . 26 xi

(13)

4 Modelo de Simula¸c˜ao 29

4.1 Funcionamento B´asico do ndnSIM . . . 29

4.2 A Topologia de Rede Utilizada . . . 31

4.3 Comportamento dos N´os da Rede . . . 31

4.3.1 Publicadores de Conte´udo . . . 32

4.3.2 Consumidor . . . 32

4.3.3 Roteadores . . . 33

5 Resultados 34 5.1 Defini¸c˜ao dos Parˆametros da Estrat´egia de Encaminhamento Proposta MAB 35 5.2 Compara¸c˜ao das Estrat´egias de Encaminhamento . . . 37

6 Conclus˜ao 41 6.1 Trabalhos Futuros . . . 42 Referˆencias Bibliogr´aficas 43

(14)

Lista de Figuras

1.1 As dez aplica¸c˜oes que geraram mais tr´afego na Am´erica Latina em 2014 [1]. 2 2.1 Porcentagem de tr´afego downstream em per´ıodo de pico na Am´erica do

Norte por aplica¸c˜ao [2]. . . 7

2.2 Compara¸c˜ao da pilha de protocolos TCP/IP e CCN [3]. . . 10

2.3 Nome hier´arquico estruturado [3]. . . 11

2.4 Formato do cabe¸calho dos pacotes na CCN [3]. . . 11

2.5 Estrutura dos mecanismos de um n´o CCN. . . 13

2.6 Processo de encaminhamento de pacotes dos interesse [4]. . . 14

2.7 Processo de encaminhamento dos pacotes de dados [4]. . . 14

2.8 Recupera¸c˜ao de pacotes de dados. . . 15

3.1 M´aquina Ca¸ca-N´ıquel. . . 20

3.2 Entrada da tabela de encaminhamento. . . 25

3.3 Processo decis´orio ao encaminhar um pacote de interesse. . . 26

4.1 A arquitetura do ndnSIM [5]. . . 30

4.2 A Topologia Rocketfuel. . . 32

5.1 Atraso m´edio por n´o em fun¸c˜ao de α. . . 36

5.2 Desvio Padr˜ao. . . 36

5.3 Atraso m´edio por n´o em fun¸c˜ao de ε. . . 37

5.4 Desvio Padr˜ao. . . 37

5.5 M´edia de interesses satisfeitos e interesses recebidos por n´o. . . 37

5.6 M´edia do n´umero de saltos por n´o em fun¸c˜ao da quantidade de consumidores. 38 5.7 Atraso m´edio por n´o em fun¸c˜ao da quantidade de consumidores. . . 38

(15)

5.8 M´edia da quantidade de pacotes de dados recebidos por n´o em fun¸c˜ao da quantidade de consumidores . . . 38 5.9 M´edia da quantidade de pacotes de interesse recebidos por n´o em fun¸c˜ao

da quantidade de consumidores . . . 38 5.10 M´edia da quantidade de pacotes de dados recebidos por n´o para cada cen´ario. 39 5.11 M´edia da quantidade de pacotes de interesse recebidos por n´o para cada

cen´ario. . . 39 5.12 M´edia do n´umero de saltos por n´o para cada cen´ario. . . 40 5.13 Atraso m´edio por n´o para cada cen´ario. . . 40

(16)

Cap´ıtulo 1

Introdu¸

ao

No in´ıcio do desenvolvimento da Internet na d´ecada de 1970, os principais desafios estavam em torno do compartilhamento de recursos e comunica¸c˜ao eficiente entre siste-mas finais [3]. Esta¸c˜oes interconectadas realizavam troca de informa¸c˜oes, basicamente textuais, como ocorrem nos protocolos de acesso remoto e de correio eletrˆonico, e com-partilhavam recursos de equipamentos que possu´ıam um alto custo na ´epoca e eram de grande importˆancia para os usu´arios, como impressoras e sistemas de arquivos remotos. Desta forma, a Internet foi desenvolvida em um modelo denominado Cliente-Servidor, no qual um sistema final que queira usar algum tipo de servi¸co, deve requisitar este servi¸co a um outro sistema final espec´ıfico que o forne¸ca e possa atender a essa requisi¸c˜ao. Para tanto, ´e preciso conhecer a priori o endere¸co de rede do sistema final que hospeda esse servi¸co.

Atualmente, tecnologias de rede empregadas no n´ucleo da rede e em redes de acesso `

a Internet experimentam um aumento significativo de suas capacidades ao mesmo tempo em que o custo de acesso para os usu´arios finais ´e reduzido. Assim, h´a uma populariza¸c˜ao do acesso `a Internet, o que permite que novas aplica¸c˜oes e servi¸cos sejam desenvolvidos, como as redes par-a-par (peer-to-peer - P2P) para compartilhamento de arquivos e siste-mas de publica¸c˜oes de v´ıdeos [6]. O uso dessas aplica¸c˜oes acabou se mostrando de grande sucesso. Dados comprovam que 60% do tr´afego em 2014 na Internet teve como origem as redes de compartilhamento e de distribui¸c˜ao de conte´udos [1]. A Figura 1.1 mostra que aplica¸c˜oes como YouTube e BitTorrent s˜ao l´ıderes de tr´afego compartilhado na Am´erica Latina. Dessa forma, ´e poss´ıvel observar uma mudan¸ca nas necessidades dos usu´arios que utilizam a Internet nesse processo de evolu¸c˜ao, em que se afasta cada vez mais do

(17)

modelo de sistema de informa¸c˜ao textual e se caminha para um modelo multim´ıdia, no qual dados, servi¸cos e aplica¸c˜oes s˜ao consumidos como conte´udos [7]. Essa mudan¸ca de perfil enfatiza que o interesse dos usu´arios est´a no conte´udo em si, independente da sua localiza¸c˜ao ou de quem o provˆe.

Figura 1.1: As dez aplica¸c˜oes que geraram mais tr´afego na Am´erica Latina em 2014 [1]. Uma tentativa de atender `as necessidade que surgiram devido `a nova caracteriza¸c˜ao da Internet s˜ao as redes de distribui¸c˜ao de conte´udos (Content Distribution Network -CDN) [6]. Entretanto, os protocolos utilizados para realizar a distribui¸c˜ao de conte´udos s˜ao os mesmos propostos no in´ıcio do desenvolvimento da Internet, ou seja, orientados `a arquitetura TCP/IP. Al´em disso, o princ´ıpio b´asico de funcionamento da rede continua o mesmo, em que o n´ucleo se responsabiliza somente por encaminhar as informa¸c˜oes geradas at´e seus destinos atrav´es do endere¸co IP (Internet Protocol ) e a borda possui toda complexidade de gera¸c˜ao e manuten¸c˜ao das conex˜oes. Dessa forma, para muitos pesquisadores, a utiliza¸c˜ao de aplica¸c˜oes voltadas para as redes P2P e CDN em uma arquitetura orientada `a conex˜ao torna a Internet de hoje uma “colcha de retalhos” [7].

Uma alternativa ao modelo de comunica¸c˜ao atual da Internet s˜ao as Redes Orienta-das a Conte´udo (ROCs) [7, 8]. As ROCs s˜ao um novo paradigma de comunica¸c˜ao em que a recupera¸c˜ao dos conte´udos n˜ao importando sua origem ´e destaque. As ROCs utilizam conceitos que divergem do modelo de comunica¸c˜ao atual, como conte´udos e encaminha-mento baseados em nomes, seguran¸ca aplicada ao pr´oprio conte´udo ao inv´es do canal de comunica¸c˜ao estabelecido entre sistemas finais e a atribui¸c˜ao de uma nova

(18)

responsabi-3 lidade aos roteadores pertencentes ao n´ucleo da rede, o armazenamento tempor´ario dos conte´udos. [3]. Quando comparadas com a arquitetura atual as ROCs apresentam muitos benef´ıcios em potencial, como maior eficiˆencia na distribui¸c˜ao e localiza¸c˜ao de conte´ u-dos, aumento de sua disponibilidade e menor tempo de resposta percebido pelo usu´ario final [7]. Contudo, sua implanta¸c˜ao traz in´umeros desafios, dentre eles o encaminhamento baseado em nomes. Nas ROCs todos os elementos da rede potencialmente armazenam as informa¸c˜oes que encaminham com o objetivo de servir requisi¸c˜oes futuras para o mesmo conte´udo.

Como v´arios caminhos s˜ao possivelmente conhecidos para um certo conte´udo, uma nova camada na pilha de protocolos denominada camada de estrat´egia fica respons´avel por selecionar uma ou mais interfaces de pr´oximo salto entre o conjunto de possibilidades. A camada de estrat´egia ´e o m´odulo respons´avel por realizar as retransmiss˜oes assim como selecionar quais e quantas das v´arias interfaces de sa´ıda ser˜ao utilizadas para encaminhar as requisi¸c˜oes [3]. N´os intermedi´arios no caminho escolhido podem dispor de c´opias arma-zenadas em cache do conte´udo requisitado. Logo, a disponibilidade das diferentes r´eplicas armazenadas depende de diversos fatores, como a popularidade dos conte´udos e a pol´ıticas de reposi¸c˜ao nos caches, e esses fatores s˜ao diretamente influenciados pela estrat´egia de encaminhamento adotada [9].

1.1

Motiva¸

ao

Podemos encontrar na literatura relacionada `as ROCs duas abordagens coexisten-tes que podem ser exploradas para tratar da requisi¸c˜ao e encaminhamento de informa¸c˜oes. Em longo prazo, protocolos associados ao plano de controle [10, 11, 12] distribuem infor-ma¸c˜oes de disponibilidade dos conte´udos atrav´es da rede no intuito de alcan¸car r´eplicas permanentes que se encontram nos elementos respons´aveis por sua produ¸c˜ao ou que pos-suam baixo grau de volatilidade. No modelo atual, em que o foco ´e a conex˜ao entre sistemas finais, o plano de controle ´e frequentemente relacionado aos protocolos de rotea-mento como o RIP (Routing Information Protocol ) e o OSPF (Open Shortest Path First ) que especificam como roteadores interagem entre si ao disseminar informa¸c˜oes de estado de vizinha¸ca, possibilitando a escolha de rotas entre dois n´os da rede [13]. Em curto prazo nas ROCs, estrat´egias de encaminhamento no plano de dados [4, 14, 15] se baseiam em

(19)

informa¸c˜oes locais dispon´ıveis em cada n´o separadamente, como tempo de recupera¸c˜ao de um conte´udo, quantidade de retransmiss˜oes e at´e mesmo a impossibilidade de utilizar alguma interface de sa´ıda devido a uma falha na rede, o que permite uma rea¸c˜ao r´apida `

as constantes mudan¸cas de conectividade e de disponibilidade dos conte´udos encontrados na rede. ´E poss´ıvel perceber a diferen¸ca no uso do plano de dados entre os paradigmas, j´a que, a abordagem utilizada atualmente realiza a escolha de por qual interface encaminhar os dados recebidos ao consultar informa¸c˜oes previamente disponibilizadas pelos algorit-mos presentes no plano de controle ap´os os roteadores convergirem para a mesma vis˜ao topol´ogica.

Um protocolo de roteamento baseado em nome ideal necessitaria endere¸car todas as r´eplicas tempor´arias de todos os conte´udos a fim de encaminhar a requisi¸c˜ao dos usu´arios na dire¸c˜ao da “melhor” r´eplica dispon´ıvel se baseando em alguma m´etrica, como mais pr´oxima ou com menor tempo de resposta. Entretanto, um mecanismo como esse descrito ´e claramente invi´avel por trˆes principais raz˜oes: a escala da rede, a volatilidade nos caches e a explos˜ao da tabela de encaminhamento [9]. O paradigma proposto pelas ROCs se aplica aos conte´udos de diversas aplica¸c˜oes e n˜ao foi projetado para operar em regi˜oes pequenas e controladas. R´eplicas tempor´arias armazenadas pelos elementos da rede s˜ao altamente vol´ateis e, dessa forma, a sobrecarga de sinaliza¸c˜ao frequente para atualiza¸c˜ao de rotas seria imenso. Al´em disso, ´e poss´ıvel considerar uma preocupa¸c˜ao simplesmente endere¸car os conte´udos que ficam armazenados nos elementos que os produzem antes mesmo de cogitar as r´eplicas tempor´arias armazenadas em cache. A quantidade de endere¸cos IP est´a na casa dos bilh˜oes enquanto que a quantidade de URLs indexadas pelo Google j´a est´a na casa do trilh˜oes [16].

Seguindo a abordagem de uma estrat´egia de encaminhamento no plano de dados ´e poss´ıvel localizar eficientemente r´eplicas tempor´arias sem a necessidade de ficar sujeito `a sobrecarga de sinaliza¸c˜ao expl´ıcita para descobrir sua localiza¸c˜ao. Para alcan¸car tal obje-tivo, realizar uma explora¸c˜ao restrita na rede com o intuito de ajustar o encaminhamento conforme o estado momentˆaneo da rede pode reduzir o tamanho das tabelas de enca-minhamento com o custo de uma comunica¸c˜ao um pouco mais intensa, mas que poder´a beneficiar terceiros com o aumento da disponibilidade dos conte´udos em n´os vizinhos.

(20)

5

1.2

Objetivo

O objetivo desse trabalho ´e propor e analisar uma estrat´egia de encaminhamento baseada na t´ecnica de aprendizado por refor¸co denominada ε − greedy. Na estrat´egia pro-posta, explora-se probabilisticamente caminhos alternativos em busca da melhor interface de sa´ıda de acordo com o tempo de resposta. Esse tempo ´e definido como o que leva para obter o conte´udo assim que o interesse por ele ´e enviado na rede. A finalidade dessa abordagem ´e localizar as r´eplicas tempor´arias mais pr´oximas e, assim, reduzir o tempo de entrega dessas r´eplicas percebido pelo usu´ario final.

1.3

Organiza¸

ao do Texto

O restante deste trabalho est´a organizado como descrito a seguir. Os aspectos e caracter´ısticas b´asicas do funcionamento da CCN s˜ao discutidos no Cap´ıtulo 2. O Cap´ı-tulo 3 apresenta os trabalhos relacionados, introduz os conceitos estudados do problema das m´aquinas ca¸ca-n´ıqueis e os contextualiza com as redes CCN e a implementa¸c˜ao da estrat´egia proposta. O Cap´ıtulo 4 discute os parˆametros e cen´arios de simula¸c˜ao e o Ca-p´ıtulo 5 os resultados obtidos. Finalmente, o CaCa-p´ıtulo 6 conclui o trabalho realizado e mostra dire¸c˜oes para trabalhos futuros.

(21)

Cap´ıtulo 2

Redes Orientadas a Conte´

udo

2.1

Motiva¸

ao

A populariza¸c˜ao da Internet permitiu que a comunica¸c˜ao ultrapassasse barreiras que, na ´epoca da cria¸c˜ao da rede de computadores, eram imposs´ıveis de serem previstas. Em 1967, teve in´ıcio o desenvolvimento da ARPANET, a primeira rede baseada na t´ecnica de comuta¸c˜ao de pacotes e que ´e considerada o embri˜ao da Internet. O objetivo da AR-PANET era basicamente interconectar sistemas de computa¸c˜ao para permitir o trabalho cooperativo de grupos de pesquisa espalhados geograficamente e o compartilhamento de recursos cient´ıficos e militares.

Desde a sua cria¸c˜ao, a Internet segue o princ´ıpio b´asico de funcionamento em que o n´ucleo da rede possui como principal responsabilidade encaminhar as mensagens geradas pelas aplica¸c˜oes com base no endere¸co de destino anexado a elas, e toda complexidade da gera¸c˜ao e manuten¸c˜ao da troca de informa¸c˜oes sendo mantida nas bordas. Os roteadores empregam a pol´ıtica do melhor esfor¸co, em que n˜ao ´e realizada qualquer distin¸c˜ao ou garantia da entrega dos dados que recebem para encaminhar, resultando em varia¸c˜oes na latˆencia e uma entrega n˜ao confi´avel dos dados. Todas as modifica¸c˜oes que foram introduzidas ao longo dos anos para acomodar o crescente uso da Internet, como por exemplo o NAT (Network Address Translation), DNS (Domain Name System) e o SSL (Secure Sockets Layer ) continuam atuando em elementos como roteadores de borda e sistemas finais [13, 7].

Mesmo n˜ao havendo modifica¸c˜oes nos conceitos originais de funcionamento, o perfil dos usu´arios e das aplica¸c˜oes utilizadas na Internet mudou radicalmente. E poss´ıvel´

(22)

7 perceber que a pr´opria exibi¸c˜ao de uma p´agina Web em um navegador representa uma mudan¸ca de paradigma. A inser¸c˜ao de Web caches na rede permite que a requisi¸c˜ao de uma p´agina possa ser atendida por qualquer elemento que possua essa p´agina armazenada, n˜ao sendo mais estritamente necess´ario efetuar uma conex˜ao fim-a-fim com o servidor Web. Consequentemente, exibir uma p´agina Web passa a ser visto como a entrega de um bloco de dados nomeado e identificado por um endere¸co de recurso (Uniform Resource Locator - URL) [17].

Atualmente, a Internet ´e utilizada principalmente para gera¸c˜ao, compartilhamento e recupera¸c˜ao de conte´udos [6, 18]. Navega¸c˜ao Web, chamadas de voz e v´ıdeo, sistemas de publica¸c˜ao de v´ıdeos e sistemas de compartilhamento de arquivos ilustram esse novo perfil. Estudos estimam que a soma de tr´afego de todas as formas de distribui¸c˜ao de v´ıdeo (e.g. TV, v´ıdeo sob demanda (VoD), Internet e P2P) estar´a no intervalo de 80% a 90% do tr´afego global consumido em 2018 [19], sendo que aplica¸c˜oes como o BitTorrent s˜ao as mais comumente utilizadas para obter esses tipos de conte´udo que possuem como forte caracter´ıstica a obten¸c˜ao dos dados n˜ao importando a sua origem.

Figura 2.1: Porcentagem de tr´afego downstream em per´ıodo de pico na Am´erica do Norte por aplica¸c˜ao [2].

Apesar da arquitetura atual da Internet suportar muitas aplica¸c˜oes com essas ca-racter´ısticas de compartilhamento e recupera¸c˜ao de conte´udos (e.g. Netflix, BitTorrent e YouTube), se faz necess´aria uma arquitetura que realize de forma mais eficiente a

(23)

distri-bui¸c˜ao de conte´udos, aumente sua disponibilidade e dˆe suporte intr´ınseco de seguran¸ca [7]. Para esse fim, surgiram ent˜ao, diversas propostas de arquiteturas de redes orien-tadas a conte´udo (ROCs) na literatura, todas com o mesmo objetivo: propor um arqui-tetura de rede que busca satisfazer os crit´erios de eficiˆencia e seguran¸ca na entrega de conte´udos [7, 8]. Mesmo com algumas diferen¸cas de implementa¸c˜ao, todas as arquiteturas defendem trˆes princ´ıpios fundamentais: (i) recupera¸c˜ao de conte´udos atrav´es de requisi¸c˜ao e resposta, (ii) armazenamento tempor´ario de conte´udos em todos os n´os da rede e (iii) seguran¸ca aplicada no pr´oprio conte´udo [20].

A proposta deste novo paradigma muda o foco da conex˜ao fim-a-fim para os con-te´udos. Na pr´oxima se¸c˜ao ser˜ao explicados detalhadamente os conceitos utilizados na arquitetura Content-Centric Networking1 [3]. Em raz˜ao de ser a arquitetura com maior

n´umero de trabalhos propostos desde sua cria¸c˜ao, al´em de possuir a organiza¸c˜ao de um cons´orcio conjunto entre universidades e a ind´ustria no intuito de promover um desenvol-vimento mais acelerado de seus procolos [21], foi a arquitetura escolhida para realiza¸c˜ao deste trabalho.

2.2

Vis˜

ao Geral da CCN

A CCN (Content-Centric Networking - CCN) [3] ´e uma arquitetura de rede pro-jetada com base no paradigma das ROCs. Quando um usu´ario, na Internet atual, deseja obter uma informa¸c˜ao de interesse, ele precisa requisit´a-la diretamente ao servidor em que est´a armazenada utilizando um URL ou atrav´es de seu endere¸co IP. Diferentemente do modelo de comunica¸c˜ao utilizado hoje, a CCN permite que usu´arios, tamb´em chamados de consumidores, possam requisitar um conte´udo atrav´es de seu nome, sem se preocupar onde os conte´udos est˜ao armazenados e de onde ser˜ao recuperados. Dessa forma, a infra-estrutura da rede fica respons´avel por localizar e entregar tal conte´udo ao usu´ario que o requisitou.

Para aumentar a disponibilidade dos conte´udos, al´em de proporcionar uma maior eficiˆencia em sua recupera¸c˜ao, os elementos intermedi´arios da CCN, denominados rotea-dores de conte´udo, mant´em temporariamente em cache os conte´udos que s˜ao previamente encaminhados por ele. Assim, requisi¸c˜oes futuras para o mesmo conte´udo podem ser

(24)

9 didas e recuperadas pelo cache mais pr´oximo, reduzindo o tempo de resposta percebido pelo usu´ario e o consumo de largura de banda no n´ucleo da rede [22].

A estrutura adotada pela CCN apresenta algumas diferen¸cas em rela¸c˜ao `a arquite-tura TCP/IP, como pode ser visto na Figura 2.2. ´E poss´ıvel observar que a “cintura fina” na pilha CCN passa a ser os fragmentos ou partes dos pr´oprios conte´udos, os chunks, e n˜ao mais o protocolo IP, visto na arquitetura atual. Essa caracter´ıstica evidencia a im-portˆancia do conte´udo. Outra diferen¸ca ´e uma camada espec´ıfica para seguran¸ca. Visto que os dados podem ser recuperados a partir de qualquer elemento da rede, sendo eles confi´aveis ou n˜ao, ´e necess´ario garantir a autenticidade e integridade do conte´udo obtido, mas sem a obriga¸c˜ao de assegurar que essas mesmas propriedades sejam satisfeitas em toda infraestrutura da rede. E, por ´ultimo, outra caracter´ıstica de destaque ´e a inclus˜ao da camada de estrat´egia na pilha CCN.

A ausˆencia de loops na CCN possibilita que v´arias interfaces sejam selecionadas ao mesmo tempo para que os pacotes sejam encaminhados, dispondo de qualquer tecnologia dispon´ıvel, como Ethernet, Bluetooth, 3G, IEEE 802.11, dentre outras. Como encaminhar os pacotes atrav´es de todas as interfaces dispon´ıveis pode levar a um uso inadequado dos recursos da infraestrutura de rede, os roteadores podem adotar diferentes estrat´egias de encaminhamento para decidir quais interfaces ser˜ao escolhidas para propagar a requisi-¸c˜ao pelos conte´udos. Este trabalho aborda o uso de uma estrat´egia de encaminhamento baseada em uma t´ecnica de aprendizado de m´aquina por refor¸co [23], batizada de MAB (Multi-Armed Bandits), e ser´a detalhada nas Se¸c˜oes 3.6.1 e 3.6.2. Uma caracter´ıstica interessante ´e que mesmo adotando diferentes paradigmas de comunica¸c˜ao, a CCN pode coexistir com o protocolo IP, permitindo que essa arquitetura seja implantada de forma incremental na Internet.

2.2.1

Nomea¸

ao de Conte´

udos

Os n´os pertencentes `a CCN realizam o encaminhamento de pacotes utilizando o nome do conte´udo presente nos pr´oprios pacotes para decidir quais interfaces devem ser selecionadas. A fim de que informa¸c˜oes relevantes possam ser extra´ıdas dos nomes e aproveitadas na consulta da tabela de encaminhamento, os nomes necessitam de uma estrutura que possa ser reconhecida pelos n´os da rede. Para esse objetivo, a CCN adota uma estrutura de nomea¸c˜ao muito semelhante `a empregada nos URLs.

(25)

Figura 2.2: Compara¸c˜ao da pilha de protocolos TCP/IP e CCN [3].

Os nomes s˜ao compostos por um conjunto vari´avel de componentes que s˜ao separa-dos entre si pelo caractere “/” indicando uma posi¸c˜ao hier´arquica dentro da estrutura [3]. Os nomes que s˜ao concedidos aos conte´udos n˜ao possuem nenhum significado semˆantico para os roteadores, sua fun¸c˜ao para os elementos centrais da rede est´a na hierarquia atri-bu´ıda, de forma a instruir como o encaminhamento deve ser realizado. Consequentemente, os publicadores de conte´udo podem adotar um padr˜ao de nomea¸c˜ao que lhes seja mais conveniente, desde que a estrutura hier´arquica seja respeitada. Por exemplo, se os alunos ou futuros alunos da Universidade Federal Fluminense desejam assistir o v´ıdeo de apre-senta¸c˜ao da universidade, a institui¸c˜ao pode disponibiliz´a-lo em sua p´agina Web principal com o seguinte nome /br.uff/video/intro.avi.

´

E importante notar que na ausˆencia de motores de busca, os usu´arios dever˜ao ter conhecimento do nome e, portanto, da estrutura hier´arquica dos conte´udos que pretendem requisitar. Dessa forma, ´e fundamental que os nomes sejam boas representa¸c˜oes dos conte´udos e de sua posi¸c˜ao hier´arquica.

O uso desse modelo de nomea¸c˜ao facilita a composi¸c˜ao de relacionamentos entre os chunks pertencentes ao mesmo conte´udo, ilustrado na Figura 2.3. Por exemplo, o quarto chunk da primeira vers˜ao do v´ıdeo “intro.avi” poderia ser nomeado como “/br.uff” sendo o dom´ınio da institui¸c˜ao, no qual os pacotes de interesse ser˜ao encaminhados caso nenhum roteador intermedi´ario possua uma c´opia do conte´udo requisitado. Os compo-nentes “/video/intro.avi” sendo a estrutura hier´aquica organizacional em que os diferentes conte´udos do publicador deste dom´ınio poder˜ao ser disponibilizados e encontrados. E,

(26)

11 por fim, os componentes “/1/4” representam que o consumidor deseja o quarto chunk da primeira vers˜ao do conte´udo. Assim, uma requisi¸c˜ao `a intro.avi utilizando o nome /br.uff/video/intro.avi poderia fazer referˆencia ao primeiro chunk deste conte´udo e atra-v´es de informa¸c˜oes contidas em seu cabe¸calho, a aplica¸c˜ao utilizada pelo consumidor seria capaz de requisitar os demais chunks.

Figura 2.3: Nome hier´arquico estruturado [3].

2.2.2

Processo de Requisi¸

ao e Obten¸

ao de Conte´

udos

A CCN possui somente dois tipos de pacotes, os pacotes de interesse (interest packets) que s˜ao utilizados para requisitar um conte´udo, e os pacotes de dados (data packets) que s˜ao utilizados para recuperar um conte´udo. O cabe¸calho que comp˜oe cada um dos pacotes ´e ilustrado na Figura 2.4. O processo de recupera¸c˜ao de um conte´udo na CCN ´e baseado no modelo Requisi¸c˜ao-Resposta, semelhante ao modelo usado no procolo HTTP, no qual entidades, denominadas publicadores, providenciam conte´udos na rede e os usu´arios, denominados consumidores, requisitam tais conte´udos.

Figura 2.4: Formato do cabe¸calho dos pacotes na CCN [3].

(27)

conte´udos trafegados na rede e reduzir o seu tempo de recupera¸c˜ao observado pelos usu´ a-rios finais. Dessa forma, a CCN estabelece que cada n´o da rede, incluindo os roteadores, realizem cache de conte´udos. Assim, ao receber um pacote de dados, o n´o o armazena em uma estrutura chamada armaz´em de conte´udos (Content Store - CS). Consequentemente, requisi¸c˜oes futuras a esse mesmo conte´udo podem ser atendidas de forma imediata, sem que o pacote de interesse necessite ser encaminhado at´e a entidade que o publicou.

Os n´os da CCN contam com mais duas outras importantes estruturas al´em do CS, conhecidas como tabela de interesses pendentes (Pending Interest Table - PIT) e a base de informa¸c˜oes para encaminhamento (Forwarding Information Base - FIB).

A PIT possui como responsabilidade manter uma indexa¸c˜ao entre os prefixos en-caminhados pelo n´o e todas as interfaces de entrada por onde pacotes de interesse de um mesmo conte´udo foram recebidos. Essa indexa¸c˜ao facilita a agrega¸c˜ao dos nomes dos conte´udos no encaminhamento dos pacotes de dados, aumentando o desempenho da co-munica¸c˜ao. Gra¸cas ao mecanismo da PIT, todo roteador, ao encaminhar um pacote de interesse, possui a garantia que o pacote de dados correspondente ir´a passar por ele no caminho de volta at´e o consumidor que o requisitou.

A FIB ´e a tabela encarregada pela decis˜ao de qual ou quais interfaces de sa´ıda ser˜ao selecionadas para encaminhar um pacote de interesse. As tabelas de encaminhamento na rede CCN relacionam dom´ınios rote´aveis na forma de prefixos de nome a um conjunto de interfaces de sa´ıda, muito diferente das entradas na tabela das redes IP, no qual endere¸cos IP s˜ao associados `a uma ´unica interface. Para evitar que loops sejam formados pelo encaminhamento de um mesmo pacote de interesse via m´ultiplas interfaces, esses pacotes possuem um n´umero ´unico gerado aleatoriamente (nonce) que ´e usado para distinguir interesses rec´em recebidos de interesses previamente encaminhados.

Em vista das estruturas e mecanismos mencionados, conforme mostrado na Figura 2.5, o processo de recupera¸c˜ao de um conte´udo ocorre da seguinte maneira. Para requisitar um conte´udo, o consumidor envia um pacote de interesse `a rede com no m´ınimo o prefixo do conte´udo desejado. Ao receber o interesse, o roteador CCN extrai o prefixo do conte´udo e faz uma busca em seu CS por uma correspondˆencia exata. Caso possua o conte´udo correspondente, o roteador gera um pacote de dados e o encaminha pela interface de chegada do interesse. Caso contr´ario, o roteador procura por uma entrada na PIT que contenha o prefixo. Em caso afirmativo, o roteador verifica se o nonce do interesse recebido

(28)

13

Figura 2.5: Estrutura dos mecanismos de um n´o CCN.

j´a est´a presente na entrada indicando que este j´a foi previamente encaminhado e deve ser descartado. Caso contr´ario, o roteador agrega a interface de recep¸c˜ao do interesse `a entrada da PIT. Caso nenhuma entrada da PIT seja encontrada, o roteador realiza uma busca de maior prefixo em sua FIB, com o objetivo de encontrar n´os vizinhos que possam atender tal requisi¸c˜ao. Se nenhuma interface de sa´ıda ´e encontrada para o prefixo do conte´udo, o pacote de interesse ´e ent˜ao descartado e um NACK (negative acknowledgment ) ´e enviado indicando a impossibilidade de atender e encaminhar o interesse. Se uma ou mais interfaces estiverem dispon´ıveis, o roteador recorre `a camada de estrat´egia para decidir por quais interfaces encaminhar o interesse. O processo est´a ilustrado na Figura 2.6.

Quando o pacote de dados ´e recebido por um roteador, ele verifica se na PIT existem um ou mais interesses pendentes para o conte´udo contido no pacote de dados.

(29)

Figura 2.6: Processo de encaminhamento de pacotes dos interesse [4].

Caso exista, a entrada da PIT ´e removida, o conte´udo ´e armazenado na CS para atender a futuros pacotes de interesses, e o pacote de dados ´e enviado para todas as interfaces que requisitaram aquele conte´udo anteriormente. Caso contr´ario, o pacote de dados ´e descartado. A Figura 2.7 ilustra o processo.

Figura 2.7: Processo de encaminhamento dos pacotes de dados [4].

Caso nenhum roteador, que o interesse tenha percorrido, possua uma c´opia do conte´udo requisitado armazenado em seu cache, o pacote de interesse ´e encaminhado pelos n´os da rede at´e que o seu publicador seja encontrado. O publicador, na CCN o n´o respons´avel por disponibilizar os conte´udos aos consumidores, ent˜ao reconhece que o

(30)

15 pacote de interesse ´e referente a um conte´udo o qual ele provˆe e, assim, monta o pacote de dados que ´e enviado pela mesma interface no qual o pacote de interesse foi recebido. Por exemplo, na Figura 2.8 o n´o “br.uff” ´e o publicador de conte´udo que deve atender a uma requisi¸c˜ao do Cliente1. Note que a partir do instante 3 o conte´udo j´a se encontra nos caches dos roteadores e quando Cliente2 envia um pacote de interesse para o mesmo conte´udo que o Cliente1 tinha enviado anteriormente o roteador C ´e capaz de satisfazer a requisi¸c˜ao sem precisar encaminhar o interesse at´e o publicador de conte´udos.

(31)

Cap´ıtulo 3

Encaminhamento na Arquitetura

CCN

Os n´os na CCN encaminham os conte´udos ao extrair o prefixo de nome contido no cabe¸calho do pacote de interesse ao inv´es de usar a localiza¸c˜ao do n´o publicador e, assim, desassocia-se conte´udo e seu local de recupera¸c˜ao [3]. Devido aos roteadores pertencentes ao n´ucleo da rede realizarem armazenamento tempor´ario de conte´udos, abre-se um leque de atraentes possibilidades que podem ser empregadas na estrat´egia de encaminhamento para essa arquitetura. Nas redes IP, o roteamento determina o menor caminho entre origem e destino enquanto que o encaminhamento, a cada roteador, transfere o pacote da interface de entrada para a interface de sa´ıda que faz parte desse menor caminho. Na CCN os roteadores podem dinamicamente selecionar m´ultiplas interfaces de sua FIB para encaminhar o mesmo pacote de interesse al´em de poder recuperar o conte´udo de m´ultiplas fontes diferentes, sejam elas publicadores ou roteadores [3]. Em vista disso, um mecanismo que explore essas m´ultiplas possibilidade pode se encaixar melhor no perfil da arquitetura, do que simplesmente manter rotas de menor caminho do consumidor at´e um produtor de conte´udos.

3.1

Trabalhos Relacionados

Pesquisas anteriores sobre encaminhamento em ROCs progrediram em duas di-re¸c˜oes diferentes. Por um lado protocolos de roteamento operando no plano de con-trole [11, 10, 12] possuem a finalidade de disseminar as informa¸c˜oes contidas na FIB

(32)

17 que endere¸cam r´eplicas permanentes. O protocolo de roteamento baseado em nomes OSPFn [10] realiza an´uncio dos prefixos de nomes de conte´udos permanentes, que po-dem ser obtidos com os interesses encaminhados at´e o produtor que det´em as r´eplicas permanentes.

Na outra dire¸c˜ao, trabalhos com o foco em estrat´egias de encaminhamento no plano dos dados [14, 4, 15] possuem como finalidade a recupera¸c˜ao de r´eplicas vol´ateis seguindo alguma m´etrica, como a mais pr´oxima ou a com o menor tempo de resposta. A principal vantagem dessa abordagem em rela¸c˜ao `a anterior ´e a possibilidade de recuperar r´eplicas tempor´arias sem a necessidade de ficar sujeito `a sobrecarga de sinaliza¸c˜ao expl´ıcita para descobrir sua localiza¸c˜ao. Dessa forma, realizar uma explora¸c˜ao restrita na rede no intuito de ajustar o encaminhamento conforme o estado momentˆaneo da rede pode reduzir o tamanho das tabelas de encaminhamento [9] em troca de uma comunica¸c˜ao um pouco mais intensa, mas que poder´a beneficiar terceiros com o aumento da disponibilidade dos conte´udo com r´eplicas armazenadas em n´os vizinhos.

Em particular, Chiocchetti et al. 2012 evidenciam que usar somente o primeiro chunk de um conte´udo em um mecanismo de explora¸c˜ao reduz o tempo de recupera¸c˜ao dos conte´udos requisitados pelos consumidores e permite que r´eplicas tempor´arias ar-mazenadas em caches de n´os mais pr´oximos sejam encontradas. Mostram tamb´em que uma estrat´egia de encaminhamento que faz o uso de explora¸c˜oes se beneficia de m´ultiplos produtores de um mesmo conte´udo [9]. Posteriormente, partindo da ideia de explorar esporadicamente a rede, Chiocchetti et al. 2013 utilizam a t´ecnica Q-learning de apren-dizado por refor¸co distribuidamente em cada n´o da rede. A estrat´egia possui duas fases que ocorrem em momentos distintos, a fase de explora¸c˜ao e a fase de aproveitamento do conhecimento adquirido. Durante a fase de explora¸c˜ao os n´os sondam suas interfaces, uma por vez a cada pacote de interesse recebido de forma aleat´oria, com o objetivo de aprender qual delas retorna a melhor recompensa, ou seja, possui menor tempo de recu-pera¸c˜ao para o conte´udo requisitado. A fase de explora¸c˜ao dura at´e que um n´umero de chunks predefinido seja alcan¸cado, dando in´ıcio a fase de aproveitamento. Essa fase possui como objetivo utilizar toda a informa¸c˜ao adquirida durante a explora¸c˜ao para minimizar o tempo de recupera¸c˜ao dos conte´udos ao encaminhar os pacotes de interesse somente pela interface que produziu o menor tempo estimado para o espec´ıfico conte´udo. Sua dura¸c˜ao termina quando uma mudan¸ca n˜ao desprez´ıvel ´e identificada no tempo de recupera¸c˜ao a

(33)

partir daquela interface ou quando um n´umero predeterminado de chunks foi enviado por ela. Por fim, entradas da tabela de encaminhamento que n˜ao s˜ao atualizadas durante um certo tempo, tamb´em predefinido, acabam por ser apagadas por estarem obsoletas [14].

Por ´ultimo, Yi et al. 2012 introduzem uma abordagem dinˆamica na qual as inter-faces s˜ao sondadas periodicamente e estat´ısticas s˜ao coletadas para cada uma delas [4]. Cada prefixo de nome presente em sua FIB possui uma lista de interfaces associadas a trˆes parˆametros, uma estimativa para o tempo de recupera¸c˜ao semelhante `a empregada no protocolo TCP (Transmission Control Protocol ), uma taxa limite para envio de pacotes de interesse e uma taxa limite para recebimento de pacotes de dados. Ambas as taxas possuem como objetivo o controle de congestionamento e s˜ao calculadas pela raz˜ao entre a capacidade da fila da interface e o tamanho m´edio dos pacotes de dados trafegados por ela, sendo a raz˜ao multiplicada por uma constante. Quando uma interface acaba de ser conectada ou uma nova entrada da FIB ´e criada, o estado dessa interface ´e atribu´ıdo como amarelo. Outra forma de a interface ser classificada com essa cor ocorre quando sua cor ´e verde e o tempo estimado para que um pacotes de dados retorne por ela seja estourado. Ela se torna verde quando pacotes de dados s˜ao recebidos por ela, e se torna vermelha caso deixa de funcionar, um pacote NACK com uma mensagem “sem caminhos dispon´ı-veis” ´e recebido ou alguma das taxas limite ´e ultrapassada. As interfaces de cor verde e amarela s˜ao ranqueadas de acordo com a estimativa do tempo de recupera¸c˜ao. Cada novo interesse recebido ´e enviado utilizando a interface de cor verde melhor ranqueada para o prefixo de nome contido no interesse. Caso n˜ao possua interfaces de cor verde, utiliza-se a interface de cor amarela melhor ranqueada. Ao receber interesses retransmitidos, ou seja, seus nonces ainda est˜ao presentes em entradas da PIT, a estrat´egia de encaminhamento verifica se o tempo estimado para a recupera¸c˜ao do conte´udo pela interface utilizada foi excedido. Em caso afirmativo, encaminha-se o interesse retransmitido pela interface verde ou amarela melhor ranqueada se dispon´ıvel. Quando um NACK por um prefixo de nome ´e recebido pela interface utilizada, interfaces classificadas com cor amarela s˜ao exploradas at´e que um pacote de dados seja recebido ou seu tempo estimado para a recupera¸c˜ao do conte´udo chega ao fim.

A MAB, estrat´egia proposta nesse trabalho, apresenta um artif´ıcio para identifi-car que um dado conte´udo est´a inacess´ıvel por alguma interface de sa´ıda, o que n˜ao ´e encontrado no trabalho realizado por Chiocchetti et al. 2013. A ausˆencia de um

(34)

meca-19 nismo para identifica¸c˜ao de falhas na rede em uma estrat´egia de encaminhamento que decide a melhor interface de sa´ıda com base no tempo de recupera¸c˜ao dos conte´udos pode prejudicar gravemente seu funcionamento. N˜ao receber um pacote de dados implica na n˜ao atualizac˜ao da entrada da tabela de encaminhamento correspondente a interface “de-feituosa” e, no caso de ter sido classificada anteriormente como “melhor” interface, o n´o continuar´a enviando interesses por ela sem que os conte´udos sejam recebidos. O meca-nismo apresentado por Yi et al. 2012 utiliza pacotes NACK para identificar e avisar a ocorrˆencia de falhas na rede. Entretanto, seu modelo de explora¸c˜ao tem como objetivo auxiliar os n´os da rede em recuperar seus conte´udos de interesse em momentos de conges-tionamento da rede, mas n˜ao explora caminhos alternativos que possam levar a r´eplicas mais pr´oximas. A estrat´egia proposta realiza explora¸c˜oes probabilisticamente ao inv´es de usar a fase de explora¸c˜ao e esperar uma certa convergˆencia como em Chiocchetti et al. 2013, mas aproveita a ideia dos autores de utilizar uma ´unica interface de sa´ıda quando n˜ao est´a explorando e duas interfaces de sa´ıda quando est´a. Tamb´em realiza detec¸c˜ao de falhas na rede ao usar um limiar de retransmiss˜oes, diferentemente de Yi et al. 2012 que usam um pacote de controle. Esses mecanismos da estrat´egia de encaminhamento ser˜ao detalhados nas Se¸c˜oes 3.6.1 e 3.6.2.

3.2

O Problema das M´

aquinas Ca¸

ca-N´ıqueis

Considere o seguinte problema de aprendizado. Vocˆe est´a repetidamente diante de uma escolha entre n diferentes op¸c˜oes, ou a¸c˜oes. Depois de cada escolha, recebe uma recompensa num´erica que ´e atribu´ıda atrav´es de uma distribui¸c˜ao de probabilidade e depende da a¸c˜ao selecionada. O objetivo ´e maximizar a recompensa total esperada durante um per´ıodo ou instantes de tempo.

Essa ´e a forma original do problema das m´aquinas ca¸ca-n´ıqueis (Multi-Armed Ban-dits), nomeado por uma analogia na qual m´ultiplas m´aquinas est˜ao dispon´ıveis para serem selecionadas. Cada a¸c˜ao de selecionar ´e semelhante `a puxar a alavanca de uma das m´ a-quinas, e as recompensas s˜ao os pagamentos por obter o jackpot. Atrav´es de repetidas sele¸c˜oes, pode-se maximar o ganho ao concentrar as a¸c˜oes nas melhores m´aquinas.

Cada a¸c˜ao de sele¸c˜ao possui uma recompensa m´edia esperada, que pode ser de-nominada o valor dessa a¸c˜ao. Caso o valor de cada a¸c˜ao j´a fosse conhecido, resolver o

(35)

Figura 3.1: M´aquina Ca¸ca-N´ıquel.

problema das m´aquinas ca¸ca-n´ıqueis seria trivial, sempre seria escolhida a a¸c˜ao que pro-duzisse o maior valor. Entretanto n˜ao ´e poss´ıvel saber o valor das a¸c˜oes com certeza, mas ´e poss´ıvel manter estimativas.

Ao manter essas estimativas, em cada instante de tempo existe pelo menos uma a¸c˜ao no qual o valor da estimativa ´e o maior. Essa a¸c˜ao ´e chamada de gulosa (greedy). Ao selecionar a a¸c˜ao gulosa, ´e dito que o conhecimento adquirido ao guardar os valores de cada a¸c˜ao est´a sendo aproveitado. Caso uma das a¸c˜oes n˜ao gulosas seja escolhida, ´e dito que a¸c˜oes alternativas est˜ao sendo exploradas para que suas estimativas sejam aperfei¸coadas. Dessa forma, a a¸c˜ao gulosa ´e a melhor escolha a ser feita para maximizar a recompensa esperada em um determinado instante de tempo, entretanto, explorar a¸c˜oes alternativas pode produzir uma maior recompensa acumulada a longo prazo.

No contexto da CCN, as m´aquinas podem ser associadas `as interfaces presentes em cada n´o da rede. Toda vez que um interesse ´e recebido por um n´o e o conte´udo n˜ao se encontra presente em seu cache, e n˜ao possui uma entrada na PIT indicando um encaminhamento anterior para o mesmo interesse, o n´o estar´a diante do mesmo problema que o apostador ao precisar escolher uma ou mais interfaces para encaminh´a-lo.

A partir deste ponto, o restante do cap´ıtulo est´a organizado da seguinte forma. A Se¸c˜ao 3.3 apresenta como as recompensas s˜ao coletadas e suas estimativas s˜ao calculadas. A Se¸c˜ao 3.4 indica uma reformula¸c˜ao para o c´alculo das recompensas esperadas, no qual o m´ınimo de estado ´e armazenado al´em de uma computa¸c˜ao com complexidade constante para o c´alculo das estimativas. A Se¸c˜ao 3.5 discute como uma pequena mudan¸ca na formu-la¸c˜ao matem´atica adequa o c´alculo das recompensas `a um problema n˜ao-estacion´ario. Por fim, a Se¸c˜ao 3.6 introduz a MAB, estrat´egia de encaminhamento proposta nesse trabalho.

(36)

21

3.3

etodo A¸

ao-Valor

Nessa se¸c˜ao ´e apresentado um m´etodo simples para estimar os valores das a¸c˜oes e utilizar essas estimativas nos momentos em que a decis˜ao de qual a¸c˜ao deve ser selecionada ´e tomada. Para efeito de conven¸c˜ao, o verdadeiro valor de uma a¸c˜ao a ´e denotado por q∗(a), e o seu valor estimado no t-´esimo instante de tempo por Qt(a). Lembrando que o

verdadeiro valor de uma a¸c˜ao ´e a recompensa recebida depois de a a¸c˜ao a ser selecionada. Desse modo, uma forma de realizar a estimativa de uma a¸c˜ao ´e simplesmente fazer a m´edia de cada recompensa recebida quando a mesma foi escolhida, ou seja, se no t-´esimo instante de tempo a a¸c˜ao a foi escolhida Ka vezes antes de t, produzindo as recompensas

R1, R2, ..., RKa, ent˜ao seu valor estimado ´e:

Qt(a) =

R1+ R2+ ... + RKa

Ka

(3.1) Caso Ka = 0, define-se um valor padr˜ao para Q1(a). Quando Ka→ ∞, pela lei dos

grandes n´umeros, Qt(a) converge para q∗(a). Esse m´etodo ´e denominado de aproxima¸c˜ao

pela m´edia das amostras. A regra mais simples em selecionar uma a¸c˜ao ´e a de selecionar a que possui o maior valor estimado, isto ´e, no instante de tempo t escolher a a¸c˜ao gulosa, A∗t, no qual Qt(A∗t) = maxaQt(a).

Esse m´etodo sempre usufrui do conhecimento obtido para maximizar a recompensa imediata, n˜ao realizando em momento algum amostragem de a¸c˜oes com valor de recom-pensa inferior. Uma alternativa simples ´e a de se comportar de forma gulosa na maior parte do tempo, mas de vez em quando, com probabilidade ε, selecionar de forma aleat´ o-ria entre todas as poss´ıveis a¸c˜oes com igual probabilidade, independentemente dos valores de recompensa. M´etodos que utilizam essa regra quase gulosa de selecionar a¸c˜oes s˜ao denominados ε − greedy. A vantagem destes m´etodos est´a em que, no limite em que o n´umero de sele¸c˜oes aumenta, todas as a¸c˜oes ser˜ao escolhidas infinitas vezes, garatindo que Ka → ∞ ∀ a, e garantindo assim que todos Qt(a) convirjam para q∗(a).

3.4

Implementa¸

ao Incremental

O m´etodo de a¸c˜ao-valor efetua estimativas ao fazer a m´edia das recompensas ob-servadas. A implementa¸c˜ao mais ´obvia deste m´etodo est´a em manter, para cada a¸c˜ao a, o conjunto de todas as recompensas que foram obtidas na sua sele¸c˜ao. Ent˜ao, quando a

(37)

estimativa da a¸c˜ao a ´e necess´aria em um determinado instante de tempo t, ela poder´a ser computada de acordo com a Equa¸c˜ao 3.1.

Um grande problema com essa forma de implementa¸c˜ao est´a em seus requisitos computacionais e de mem´oria. Conforme a quantidade de recompensas adquiridas cresce no decorrer do tempo, a quantidade de estado a ser armazenado em mem´oria e o custo computacional para o c´alculo da m´edia se tornam invi´aveis. Entretanto, todo esse custo n˜ao ´e realmente necess´ario. Atrav´es de uma f´ormula que disp˜oe de atualiza¸c˜oes incremen-tais ´e poss´ıvel computar as m´edias com um custo computacional constante e de mem´oria com a quantidade de bits proporcional `a O(log2(k)) a cada nova recompensa recebida,

sendo k o valor que representa a itera¸c˜ao de atualiza¸c˜ao. Para uma determinada a¸c˜ao, assume-se Qk a estimativa para a k-´esima recompensa, ou seja, a m´edia das k - 1 primeiras

recompensas. Dados a m´edia e a k-´esima recompensa desta a¸c˜ao, Rk, ent˜ao a m´edia de

todas as k recompensas pode ser computada da seguinte maneira

Qk+1 = 1 k k X i=1 Ri = 1 k  Rk+ k−1 X i=1 Ri  = 1 k Rk+ (k − 1)Qk+ Qk− Qk  = 1 k Rk+ kQk− Qk  = Qk+ 1 kRk− Qk, (3.2)

que para k = 1, obt´em-se Q2= R1para um Q1arbitr´ario. Essa implementa¸c˜ao incremental

necessita manter em mem´oria apenas os valores de Qk e k, e uma computa¸c˜ao constante

da m´edia (Equa¸c˜ao 3.2) para cada nova recompensa.

A express˜ao Rk− Qk presente na Equa¸c˜ao 3.2 representa o erro da estimativa.

Esse erro ´e reduzido quando as estimativas e as recompensas recebidas come¸cam a se aproximar. ´E importante lembrar que as recompensas, uma vez ou outra, estar˜ao acom-panhadas de algum tipo de ru´ıdo. Para estes casos o termo 1k, muito conhecido como P asso da itera¸c˜ao, ser´a fundamental na atenua¸c˜ao de tais ru´ıdos.

(38)

23

3.5

Rastreando um Problema N˜

ao-Estacion´

ario

O m´etodo discutido at´e o momento ´e apropriado para problemas estacion´arios, mas n˜ao s˜ao apropriados quando os estados se alteram continuamente com o passar do tempo. Para estes casos faz sentido atribuir uma maior importˆancia `as recompensas mais recentes do que as de um passado distante. A forma mais popular de realizar tal atribui¸c˜ao ´e a de manter o parˆametro P asso como uma constante [23]. Por exemplo, a Equa¸c˜ao 3.2 pode ser modificada para que a atualiza¸c˜ao da m´edia das k - 1 recompensas passadas, Qk, passe

a ser

Qk+1 = Qk+ αRk− Qk, (3.3)

onde o parˆametro P asso, α, 0 < α ≤ 1, ´e constante. Esse artif´ıcio resulta em um Qk+1

sendo uma m´edia ponderada das recompensas passasdas e a estimativa inicial Q1:

Qk+1 = Qk+ αRk− Qk  = αRk+ (1 − α)Qk = αRk+ (1 − α)[αRk−1+ (1 − α)Qk−1] = αRk+ (1 − α)αRk−1+ (1 − α)2αQk−2 + · · · + (1 − α)k−1αR 1+ (1 − α)kQ1 = (1 − α)kQ1+ k X i=1 α(1 − α)k−iRi. (3.4)

A Equa¸c˜ao 3.4 ´e denominada m´edia ponderada incremental devido a soma dos pesos ser (1 − α)k +Pk

i=1α(1 − α)

k−i = 1. Nota-se que o peso, α(1 − α)k−i, dado

recompensa Ri depende de quantas recompensas passadas, k − i, foram observadas. Caso

1−α = 0, ent˜ao todo peso ´e atribu´ıdo a ´ultima recompensa recebida, Rk, dada a conven¸c˜ao

de que 00 = 1.

Denota-se o parˆametro P asso representado por αk(a) usado para processar a

re-compensa recebida ap´os a k-´esima sele¸c˜ao da a¸c˜ao a. Como foi observado anteriormente, a escolha de αk(a) = k1 ´e apropriada para problemas estacion´arios, no qual garante-se

a convergˆencia para o verdadeiro valor das a¸c˜oes atrav´es lei dos grande n´umeros. Um resultado bem conhecido ne teoria estoc´astica apresenta duas condi¸c˜oes necess´arias para assegurar a convergˆencia com probabilidade 1:

∞ X k=1 αk(a) = ∞ (3.5) ∞ X k=1 α2k(a) < ∞ (3.6)

(39)

A Equa¸c˜ao 3.5 ´e necess´aria para garantir que os passos s˜ao grandes o suficiente para superar eventuais condi¸c˜oes iniciais ou flutua¸c˜oes aleat´orias. A Equa¸c˜ao 3.6 garante que os passos tornam-se pequenos o suficiente para garantir convergˆencia.

´

E poss´ıvel observar que ambas condi¸c˜oes de convergˆencia s˜ao bem definidas para o caso estacion´ario, onde αk(a) = k1. Entretanto, isso n˜ao acontece para o caso n˜

ao-estacion´ario, onde αk(a) = α ´e constante. No ´ultimo caso, a segunda condi¸c˜ao n˜ao ´e bem

definida, indicando que as estimativas nunca convergir˜ao completamente, mas continuar˜ao a variar em resposta as recompensas recebidas mais recentemente.

Como o problema de encontrar as r´eplicas de conte´udos nos caches dos n´os vizinhos mais pr´oximos ´e n˜ao-estacion´ario, principalmente em raz˜ao da popularidade dos conte´udos e das constantes mudan¸cas da disponibilidade dos conte´udos nos caches, o modelo n˜ ao-estacion´ario foi o adotado para o c´alculo das recompensas esperadas. Este mesmo modelo pode ser encontrado no trabalho feito por Chiocchetti et al. 2013, no qual os autores denominam a constante como taxa de aprendizado.

3.6

Estrat´

egia de Encaminhamento como um

Pro-blema das M´

aquinas Ca¸

ca-N´ıqueis

Nessa se¸c˜ao apresenta-se como os n´os da rede fazem a constru¸c˜ao das suas ta-belas de encaminhamento e, descreve tamb´em, como selecionam as interfaces utilizadas para encaminhar um conte´udo com base nas recompensas coletadas na estrat´egia de en-caminhamento proposta, a MAB. Seu objetivo ´e minimizar o tempo de recupera¸c˜ao de conte´udos observado pelo usu´ario final, utilizando os artif´ıcios da t´ecnica ε − greedy [23] descrita nas se¸c˜oes anteriores. A ideia principal ´e descobrir caminhos alternativos que levem a r´eplicas tempor´arias de conte´udos sem que nenhuma informa¸c˜ao sobre a locali-za¸c˜ao desses conte´udos se encontre dispon´ıvel a priori. A estrat´egia proposta modela o encaminhamento como o problema das m´aquinas ca¸ca-n´ıqueis e desenvolve um algoritmo em que, cada n´o explora probabilisticamente suas interfaces de sa´ıda al´em de entregar o conte´udo de interesse pela interface que obteve o menor tempo de recupera¸c˜ao.

(40)

25

3.6.1

Constru¸

ao da Tabela de Encaminhamento

Na MAB cada n´o constr´oi sua tabela de encaminhamento ao registrar o tempo de resposta de cada prefixo de nome quando recebe o pacote de dados correspondente por uma das interfaces de pr´oximo salto. A tabela ´e composta por entradas que indicam o valor de recompensa m´edio Q em cada n´o i para todos os destinos d, Qi(f , d )∀d ∈ interf aces(i),

onde Qi(f , d ) representa o tempo de resposta m´edio para obter o conte´udo f ap´os o n´o

i ter enviado um pacote de interesse via interface que alcan¸ca d. A ilustra¸c˜ao de uma das entrada da tabela pode ser vista na Figura 3.2. A a¸c˜ao de encaminhar realizada por um n´o i consiste em selecionar a interface de pr´oximo salto d com a melhor recompensa m´edia Q para um conte´udo f, ou seja, a interface que ao longo do tempo produziu o menor tempo de resposta para que o conte´udo pudesse ser obtido. Para cada pacote de dados recebido de volta pela interface d, o n´o i atualiza a recompensa Q em sua tabela de acordo com a Equa¸c˜ao 3.7, onde rtt(f ,d ),k representa o atraso desde o n´o i encaminhar

o pacote de interesse pelo conte´udo f at´e o momento em que i recebe o pacote de dados que cont´em f.

Figura 3.2: Entrada da tabela de encaminhamento.

Cada n´o atualiza sua tabela de encaminhamento independentemente e, ao serem utilizados em conjunto, conseguem identificar o “melhor” caminho dada as condi¸c˜oes mo-mentˆaneas da rede para encaminhar e recuperar um determinado conte´udo. Para cada conte´udo f ∈ F , conjunto de todos conte´udos disponibilizados, um n´o i mant´em um con-junto de valores Qi(f , d )∀d ∈ interf aces(i), e s˜ao computados e atualizados toda vez que

o n´o i recupera f , seja pela “melhor” interface ou por uma interface explorada, como ser´a descrito a seguir.

(41)

3.6.2

O Processo de Encaminhamento e Explora¸

ao

A estrat´egia de encaminhamento proposta sup˜oe que nenhum conhecimento pr´evio foi adquirido antes de receber o interesse por um conte´udo pela primeira vez. Posto isso, ao receber um pacote de interesse por um conte´udo f que n˜ao consta na tabela de encaminhamento, o roteador i ir´a inundar todas as suas interfaces, exceto a que recebeu o interesse, para inicializar o valor das recompensas Qi(f , d ). O objetivo de tal inunda¸c˜ao

est´a em adquirir conhecimento sobre o estado atual da rede em rela¸c˜ao a f, garantindo ao mesmo tempo a entrega dos pacotes de dados requisitados.

Figura 3.3: Processo decis´orio ao encaminhar um pacote de interesse.

Ap´os essa fase inicial, as interfaces s˜ao classificadas de acordo com o tempo trans-corrido para a recupera¸c˜ao dos primeiros pacotes de dados. A partir desse ponto, toda vez que um pacote de interesse com o prefixo de f for recebido por um n´o, ele pesquisar´a em sua tabela de encaminhamento e encaminhar´a o interesse pela interface que ´e considerada a melhor classificada para recuperar o conte´udo solicitado por um processo aleat´orio, que decide com uma probabilidade 1 − ε propagar o pacote de interesse somente pela interface que produziu o menor valor Qi(f , d ) no decorrer do tempo. Ou, com probabilidade ε,

propagar o interesse para a “melhor” interface e tamb´em para outra interface escolhida ao acaso diferente da atual “melhor” seguindo uma distribui¸c˜ao uniforme. Atrav´es dessa abordagem, garante-se que f ser´a entregue pelo cache mais “pr´oximo” encontrado at´e o momento enquanto outras c´opias que possam ter sido armazenadas por caches ainda mais “pr´oximos” em um passado mais recente possam ser encontradas. As etapas desse processo est˜ao ilustradas na Figura 3.3. A op¸c˜ao de possuir somente uma ´unica interface para explora¸c˜ao foi adotada para limitar a sobrecarga de pacotes de interesse trafegando

(42)

27 na rede.

Da mesma forma, para cada pacote de dados retornado passada a inunda¸c˜ao, os n´os atualizar˜ao sua tabela de encaminhamento de acordo com a seguinte equa¸c˜ao:

Qi ,k +1(f , d ) = Qi ,k(f , d ) + α[rtt(f ,d ),k − Qi ,k(f , d )] = αrtt(f ,d ),k + (1 − α)Qi ,k(f , d ) = αrtt(f ,d ),k + (1 − α)[αrtt(f ,d ),k −1 + (1 − α)Qi ,k −1(f , d ) = αrtt(f ,d ),k + (1 − α)αrtt(f ,d ),k −1 + (1 − α)2Qi ,k −1(f , d ) = αrtt(f ,d ),k + (1 − α)αrtt(f ,d ),k −1 + (1 − α)2αrtt(f ,d ),k −2 + · · · + (1 − α)k−1αrtt (f ,d ),k −1 + (1 − α)kQi ,1(f , d ) = (1 − α)kQi ,1(f , d ) + k X j=1 α(1 − α)k−jrtt(f,d),j. (3.7)

Como a localiza¸c˜ao das r´eplicas nos caches muda com o passar do tempo, incorpora-se uma atualiza¸c˜ao que leva em conta a n˜ao-estacionariedade do problema de encontrar o cache que retorna mais rapidamente o conte´udo requisitado. Fixando o valor de α em uma constante, tal que 0 < α ≤ 1, a Equa¸c˜ao 3.7 mostra que, como 1 − α ´e menor que 1, o peso atribu´ıdo a rtt(f,d),j diminui `a medida que a quantidade de tempos de resposta

intervenientes coletados aumentam. Na verdade, o peso decai exponencialmente de acordo com o expoente 1−α. Consequentemente, a recupera¸c˜ao de um pacote de dados no estado atual da rede sempre possuir´a um peso maior no c´alculo do tempo de recupera¸c˜ao m´edio, mas sem que o hist´orico obtido a partir de uma interface deixe de ser levado em conta, j´a que o estado corrente pode apresentar uma condi¸c˜ao particular e tempor´aria.

Outro tratamento realizado via recep¸c˜ao de um pacote de dados ´e a identifica¸c˜ao de uma poss´ıvel queda de enlace. Cada entrada da tabela de encaminhamento possui uma tupla contendo o prefixo de um conte´udo, a interface utilizada na propaga¸c˜ao do interesse, o tempo de recupera¸c˜ao m´edio e um contador de retransmiss˜oes. Assim, sempre que um interesse ´e enviado, sua entrada correspondente na tabela tem o contador acrescido de uma unidade. Caso esse contador atinja um valor de limiar predefinido T, o valor do tempo de recupera¸c˜ao m´edio ´e definido como infinito e, consequentemente, a interface associada a essa entrada deixa de ser utilizada. Como a estrat´egia de encaminhamento proposta realiza explora¸c˜oes de forma aleat´oria, eventualmente tal interface que foi classificada como “fora do ar” acaba sendo sondada novamente e, no recebimento de um respectivo pacote

(43)

de dados, todo processo de aquisi¸c˜ao de recompensas associado aos prefixos previamente encaminhados por ela recome¸ca.

(44)

Cap´ıtulo 4

Modelo de Simula¸

ao

A estrat´egia de encaminhamento proposta, a MAB, ´e avaliada atrav´es de simula-¸c˜oes. Logo, para que seja poss´ıvel entender melhor os resultados obtidos nesse trabalho, ´e preciso entender como tais simula¸c˜oes foram realizadas e modeladas. Para avaliar o com-portamento da rede ao aplicar a estrat´egia de encaminhamento proposta e para poder ter resultados que permitam a melhor parametriza¸c˜ao da proposta, s˜ao realizadas simula¸c˜oes utilizando o simulador NS-3 [24], atrav´es do m´odulo ndnSIM [5], que implementa a pilha de protocolos da CCN. Nesse cap´ıtulo, aborda-se o funcionamento do m´odulo ndnSIM e apresenta-se a maneira como os n´os se comportam durante a simula¸c˜ao.

4.1

Funcionamento B´

asico do ndnSIM

O simulador ndnSIM foi implementado de forma modularizada na linguagem C++ com classes abstratas, para definir cada um dos componentes da CCN: a tabela de inte-resses pendentes (PIT), tabela de encaminhamento (FIB), o armazenador de conte´udos (CS), a interface de aplica¸c˜ao, etc. Essa estrutura modular permite que cada componente seja facilmente modificado ou substitu´ıdo sem impactar os outros componentes. Al´em disso, o ndnSIM j´a tem implementado geradores de aplica¸c˜ao e classes Helpers, que s˜ao facilitadores para cria¸c˜ao dos cen´arios de testes e seus componentes.

A arquitetura do ndnSIM segue a filosofia que tem como objetivo maximizar a abstra¸c˜ao da implementa¸c˜ao de todos os modelos e componentes. Assim como as pilhas IPv4 e IPv6, o ndnSIM foi arquitetado para ter uma pilha de camadas independentes que possam ser instalados em cada n´o da rede durante a simula¸c˜ao. A Figura 4.1 mostra como

(45)

os componentes est˜ao organizados. Como pode ser observado, o L3Protocol no ndnSIM ´e a unidade central da arquitetura, ´e o ´unico componente que n˜ao oferece alternativas de implementa¸c˜ao. ´E o componente l´ogico que agrega todas os canais de comunica¸c˜ao das aplica¸c˜oes com os outros n´os da rede e faz a manipula¸c˜ao b´asica dos pacotes que chegam das Faces a partir de uma estrat´egia de encaminhamento.

Figura 4.1: A arquitetura do ndnSIM [5].

Al´em do L3Protocol, o simulador ndnSIM ´e composto por outros componentes como a Face, uma abstra¸c˜ao que permite uma comunica¸c˜ao com a camada de aplica¸c˜ao AppFace e outros n´os da simula¸c˜ao. O ContentStore ´e um cache para armazenar os pacotes de dados recebidos da rede, conforme uma pol´ıtica de cache. A PIT ´e uma abstra¸c˜ao para a tabela de interesses requisitados que mant´em as Faces de origem dos interesses recebidos, e assim poder encaminhar os pacotes de dados para os n´os que o requisitaram. A FIB ´e uma abstra¸c˜ao para a tabela de encaminhamento, que tem como fun¸c˜ao encaminhar o interesse de acordo com alguma estrat´egia de encaminhamento. O ForwardingStrategy ´e o componente respons´avel por controlar como os pacotes de interesse e dados ir˜ao trafegar pela rede, durante a simula¸c˜ao. Todos esses componentes s˜ao parametrizados para cada cen´ario, para melhor se adequar aos objetivos dos testes, por exemplo modificar a pol´ıtica de cache ou o algoritmo de busca na FIB.

(46)

31 Na Figura 4.1 ´e poss´ıvel observar mais dois componentes conectados ao n´ucleo do ndnSIM, a APPFace e a NetDeviceFace. S˜ao abstra¸c˜oes utilizadas para realizar a comu-nica¸c˜ao entre a camada de rede (L3Protocol ) e as outras camadas da pilha de protocolos. Isto ´e, caso um n´o deseje ser um consumidor, ele deve ser capaz de utilizar uma AppFace para enviar os interesses e receber os dados utilizando a camada de rede da CCN. O Net-DeviceFace ´e o componente central respons´avel por entregar os pacotes de dados para a pilha CCN de acordo com o protocolo de enlace utilizado.

O ndnSIM ´e orientado a eventos, logo os componentes devem implementar fun¸c˜oes de tratamentos para os eventos lan¸cados durante a simula¸c˜ao. Dessa forma, possui uma l´ogica padr˜ao para tratamento desses eventos. Isso facilita o desenvolvimento de novos componentes, dado que para estender algum componente, basta sobrescrever a implemen-ta¸c˜ao padr˜ao, modificando apenas os m´etodos de tratamento dos eventos desejados. No desenvolvimento da MAB alteramos o componente ForwardingStrategy, que executa em cada n´o da simula¸c˜ao a estrat´egia de encaminhamento escolhida para aquele cen´ario, e ´e respons´avel por manipular os m´odulos ContentStore, PIT e FIB, al´em de tratar os eventos enviados pelos n´os. A lista de todos os eventos tratados pelo ForwadingStrategy pode ser vista em [5].

4.2

A Topologia de Rede Utilizada

Para a execu¸c˜ao dos experimentos a topologia usada foi a Rocketfuel, ilustrada na Figura 4.1. Essa topologia ´e derivada do ISP (Internet Service Provider ) EBONE, obtida atrav´es do mapeador de topologias Rocketfuel [25]. A rede conta com 163 n´os, dos quais 72 n´os s˜ao folhas. Esses n´os est˜ao conectados entre si atrav´es de 366 enlaces com larguras de banda, tamanho da fila das interfaces e o atraso de transmiss˜ao heterogˆeneos. Para a execu¸c˜ao de todas as simula¸c˜oes, foram escolhidos 3 n´os folhas, aleatoriamente, para serem os n´os produtores.

4.3

Comportamento dos N´

os da Rede

No ndnSIM, existem apenas trˆes tipos diferentes de n´os: publicadores de conte´udo, consumidores e roteadores. Estes s˜ao detalhados nas pr´oximas sess˜oes.

(47)

Figura 4.2: A Topologia Rocketfuel.

4.3.1

Publicadores de Conte´

udo

Os publicadores de conte´udo implementam todas as camadas da pilha CCN. No contexto do ndnSIM, eles s˜ao aplica¸c˜oes que tem o prop´osito de servir os dados de um ou mais conte´udos identificados pelos seus prefixos.

4.3.2

Consumidor

Assim como os publicadores de conte´udo, os consumidores implementam todas as camadas da pilha CCN. O ndnSIM j´a fornece 4 tipos diferentes de consumidores: Con-sumerCbr, ConsumerZipfMandelbrot, ConsumerBatches, ConsumerWindow. Observa-se

Referências

Documentos relacionados

As pré-defesas do projeto serão realizadas na sala de aula ou na sala da professora (a combinar), nas quais os alunos deverão comparecer no horário combinado

Excluindo as operações de Santos, os demais terminais da Ultracargo apresentaram EBITDA de R$ 15 milhões, redução de 30% e 40% em relação ao 4T14 e ao 3T15,

É primeiramente no plano clínico que a noção de inconscien- te começa a se impor, antes que as dificuldades conceituais envolvi- das na sua formulação comecem a ser

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Para a carga nominal, obtida através de combinações resultantes do Método dos Estados Limites não houve grandes discrepâncias entre a análise inelástica de

Os primeiros chamam-se óleo diesel e são empregados em motores de combustão por compressão de médias e altas rotações, enquanto que os segundos são os óleos APF (alto ponto

A relação consumo/indivíduo é só uma dimensão da totalidade concreta, embora necessária e existente em qualquer forma de sociedade, mas no modo de produção vigente, o

minutos 10 64 MINUTOS Gustavo Cazonatti 84 MINUTOS Nº: MINUTOS Matheus Silva Nº: 2 NOME: 16 NOME: 18 Igor Werner Lucas Vogel minutos Nº 11 Mateus Chaves MOTIVOS 17 EQUIPE