104
Universidade Federal do Rio de Janeiro Escola Politécnica Departamento de Eletrônica e de Computação Proposta de Roteamento para Redes Veiculares Tolerantes a Atrasos Autor: _________________________________________________ Rafael Portugal Serrado Orientador: _________________________________________________ Prof. Aloysio de Castro Pinto Pedroza, Dr. Examinador: _________________________________________________ Prof. Heraldo Luís Silveira de Almeida, D. Sc. Examinador: _________________________________________________ Prof. Sérgio Barbosa Villas Boas, Ph. D. DEL Junho de 2014

Projeto de Graduação - Rafael 2 - Poli Monografias

Embed Size (px)

Citation preview

Page 1: Projeto de Graduação - Rafael 2 - Poli Monografias

Universidade Federal do Rio de Janeiro

Escola Politécnica

Departamento de Eletrônica e de Computação

Proposta de Roteamento para Redes Veiculares Tolerantes a Atrasos

Autor:

_________________________________________________ Rafael Portugal Serrado

Orientador:

_________________________________________________ Prof. Aloysio de Castro Pinto Pedroza, Dr.

Examinador:

_________________________________________________ Prof. Heraldo Luís Silveira de Almeida, D. Sc.

Examinador:

_________________________________________________ Prof. Sérgio Barbosa Villas Boas, Ph. D.

DEL

Junho de 2014

Page 2: Projeto de Graduação - Rafael 2 - Poli Monografias

ii

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politécnica – Departamento de Eletrônica e de Computação

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária

Rio de Janeiro – RJ CEP 21949-900

Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que

poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

É permitida a menção, reprodução parcial ou integral e a transmissão entre

bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou

venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde3 que sem

finalidade comercial e que seja feita a referência bibliográfica completa.

Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e

do(s) orientador(es).

Page 3: Projeto de Graduação - Rafael 2 - Poli Monografias

iii

AGRADECIMENTO

Agradeço aos meus pais, Arlindo e Solange, por todo carinho e apoio que me

dedicaram e por eventualmente perderem a paciência, mas nunca a confiança em mim. À

minha irmã, Isabelle, pelo companheirismo, preocupação e por ser meu braço na

universidade, sempre disposta a ajudar. À minha namorada, Patrícia, por seu incentivo e

compreensão constantes, além de apoio irrestrito.

Agradeço em especial ao meu chefe e amigo, Renato, por ter voluntariamente se

apresentado como co-orientador, me oferecendo dados, ideias e experiência que se

mostraram fundamentais para esse projeto.

Agradeço aos professores da graduação e em especial ao meu orientador, Aloysio,

que sempre me recebeu com ótimas sugestões e diálogos, e que sempre esteve

comprometido com o término do projeto.

Page 4: Projeto de Graduação - Rafael 2 - Poli Monografias

iv

RESUMO

Na última década a Internet sofreu uma nova guinada com a introdução de redes

móveis, que prometiam conectividade em áreas cada vez mais abrangentes e que

rapidamente convergem para a conectividade a todo momento, em qualquer lugar. Para

isso, novos padrões emergiram para estender a robustez, eficiência e flexibilidade do

modelo TCP/IP consolidado na Internet a novas aplicações em diferentes cenários. Um

desses cenários são as chamadas redes veiculares. Nelas, veículos comunicam-se entre si

ou com uma infraestrutura, levando o modelo TCP/IP também aos motoristas e

passageiros.

No entanto, em cenários de longos atrasos e frequentes desconexões, os

protocolos TCP/IP não funcionam e novos protocolos são necessários. Redes com essas

características são denominadas Redes Tolerantes a Atrasos (Delay Tolerant Networks–

DTNs) e um dos seus principais desafios é o roteamento, pois é preciso determinar rotas

sem o estabelecimento de um caminho fim-a-fim.

Neste trabalho, é apresentada uma proposta de roteamento capaz de lidar com a

falta de conectividade por meio da previsão do movimento dos veículos em um cenário

controlado. Tal proposta foca na diminuição da latência a um baixo custo em termos do

número de transmissões, réplicas de mensagens e espaço ocupado nos buffers. A

eficiência do protocolo foi testada em um simulador de rede utilizando um cenário

imaginado baseado em dados coletados de uma rodovia real.

Palavras-Chave: Internet, redes veiculares, DTN, roteamento, rodovia, conectividade

Page 5: Projeto de Graduação - Rafael 2 - Poli Monografias

v

ABSTRACT

In the last decade, the Internet saw a great boom with the introduction of mobile

networks, which promised connectivity in increasingly larger areas and which rapidly

converges into connectivity at any time, in anywhere. For this purpose, new patterns

emerged to extend the flexibility, efficiency and reliability of the TCP/IP Internet model

to new applications in different scenarios. One of those scenarios are the so-called

vehicular networks, in which vehicles communicates between themselves and an

infrastructure, delivering the TCP/IP architecture to drivers and passengers.

Nevertheless, in scenarios of high delay and frequent disconnections, the TCP/IP

family protocols do not work properly and new protocols are necessary. Networks with

these traits are called Delay Tolerant Networks (DTNs) and one of the main challenges

is routing, since it is necessary to calculate routes without an end-to-end path.

In this work, a routing mechanism capable of dealing with the lack of connectivity

by predicting the vehicles’ movements in a controlled scenario is presented. This routing

protocol aims to lower the delay at a low cost in terms of number of transmissions, copies

of the messages and buffer space. The protocol’s efficiency was tested on a network

simulator using a topology based in data collected on a real interstate.

Key-words: Internet, vehicular networks, DTN, protocol, interstate, connectivity

Page 6: Projeto de Graduação - Rafael 2 - Poli Monografias

vi

SIGLAS

ANT – Accident to Notification Time

ARP – Address Resolution Protocol

AU - Application Units

CAR – Contex-aware Routing

DNIT – Departamento Nacional de Infraestrutura de Transportes

DSRC – Dedicated Short-Range Communications

DTN – Delay Tolerant Network

ETSI – European Telecommunications Standards Institute

FCC - Federal Communications

GPRS – General Packet Radio Service

GPS – Global Positioning System

GSM – Global System for Mobile Communications

HSDPA - High-Speed Downlink Packet Access

IEEE – Institute of Electrical and Electronics Engineers

IP – Internet Protocol

ISO – International Organization for Standardization

ITS – Inteligent Transport System

LAN – Local Area Network

LTE – Long Term Evolution

MAC – Media Access Control

MANET – Mobile Ad Hoc Network

NS-2 – Network Simulator 2

OBU - On-board Units

OTcl – Object Tool Command Language

PAN – Personal Area Network

PROPHET – Probabilistic Routing Protocol using History of Encounters and

Transitivity

RSU – Road Side Unit

TCP – Transmission Control Protocol

V2I – Vehicle to Infrastructure

V2R – Vehicle to Road

V2V – Vehicle to Vehicle

Page 7: Projeto de Graduação - Rafael 2 - Poli Monografias

vii

VADD – Vehicle-Assisted Data Delivery

VANET – Vehicular Ad Hoc Network

VDTN – Vehicular Delay Tolerant Network

WAN – Wide Area Network

WAVE – Wireless Access in Vehicular Environments

WiMAX - Worldwide Interoperability for Microwave Access

Page 8: Projeto de Graduação - Rafael 2 - Poli Monografias

viii

Sumário

1 Introdução 1

1.1 - Motivação e Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.5 - Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.6 - Roteiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Redes Veiculares 5

2.1 - Características Especiais de Redes Veiculares . . . . . . . . . . . . 5

2.2 - Arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 - Padronização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 - Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.1 - Segurança no Trânsito . . . . . . . . . . . . . . . . . . . . . 16

2.4.2 - Entretenimento . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4.3 - Assistência ao Motorista . . . . . . . . . . . . . . . . . . . 17

2.5 - Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 DTN e Trabalhos Relacionados 20

3.1 - Fundamentos e Características . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 - Roteamento em DTN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.1 - Roteamento DTN Convencional . . . . . . . . . . . . . . . 24

3.2.2 - Protocolos de Roteamento VDTN . . . . . . . . . . . . . . 31

3.3 - Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Page 9: Projeto de Graduação - Rafael 2 - Poli Monografias

ix

4 Proposta 38

4.1 - Motivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2 - Cenário considerado, arquitetura e premissas . . . . . . . . . . . . 40

4.3 - O Protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.4 - Considerações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5 Simulação e Resultados 51

5.1 - Citação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.1.1 - Arquitetura NS-2 . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.1.2 - O nó móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.1.3 - Gerador de tráfego . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1.4 - Arquivos de Movimento e de Trace . . . . . . . . . . 54

5.2 - Parâmetros de Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2.1 - Configurando os nós . . . . . . . . . . . . . . . . . . . . . . 56

5.2.2 - Topologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.3 - Instanciando os nós . . . . . . . . . . . . . . . . . . . . . . . 61

5.3 - Desenvolvimento do Protocolo . . . . . . . . . . . . . . . . . . . . . . . . 63

5.4 - Desenvolvimento do Protocolo Epidêmico . . . . . . . . . . . . . . 65

5.5 - Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.5.1 - Teste 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.5.2 - Teste 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6 Conclusão 77

Bibliografia 79

Page 10: Projeto de Graduação - Rafael 2 - Poli Monografias

x

A Trace do Novo Protocolo 82

B Trace do Protocolo Epidêmico 88

Page 11: Projeto de Graduação - Rafael 2 - Poli Monografias

xi

Lista de Figuras

2.1 – Cenários de uma rede veicular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 – Alocação de espectro para aplicações DSRC. . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 – Pilha de protocolos WAVE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 – Modelo de referência. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5 – Arquitetura C2C–CC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.6 – Arquitetura CALM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1 – Desafios para redes fim–a–fim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 – Bundle Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 – Nós DTN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4 – Troca de mensagens no roteamento Epidêmico. . . . . . . . . . . . . . . . . . . . . . . 24

3.5 – Sessão anti–entropia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.6 – Exemplo de funcionamento do protocolo Spray–and–Wait com L=4. . . . . . 29

3.7 – Cálculo do ponto mais próximo entre o destinatário e os caminhos C1 e C2. 32

3.8 – Um exemplo do modelo de atraso do VADD. . . . . . . . . . . . . . . . . . . . . . . . . 34

3.9 – Seleção do próximo veículo em um cruzamento. . . . . . . . . . . . . . . . . . . . . . 35

4.1 – Densidade de tráfego na BR–290. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2 – Arquitetura proposta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 – Entrega da mensagem no cenário proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4 – Transferência convencional x Transferência DTN. . . . . . . . . . . . . . . . . . . . . 44

4.5 – Diagrama de blocos de um veículo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.6 – Diagrama de blocos de uma RSU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1 – Classe NSObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.2 – Conectores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Page 12: Projeto de Graduação - Rafael 2 - Poli Monografias

xii

5.3 – Saídas do NS–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.4 – Topologia Inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.5 – Nó 0 deseja enviar uma mensagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.6 – Topologia do Teste 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.7 – Nó 0 transmite para o nó 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.8 – Nó 4 transmite para o nó 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.9 – Nó 1 retransmite para o nó 4 em modo ganancioso. . . . . . . . . . . . . . . . . . . . 70

5.10 – Nó 4 retransmite para o nó 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.11 – Nó 5 transmite para o nó 0, respondendo a requisição. . . . . . . . . . . . . . . . . 72

Page 13: Projeto de Graduação - Rafael 2 - Poli Monografias

xiii

Lista de Tabelas

2.1 – Comparação entre DSRC e ISM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.1 – Latência obtida nos testes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

A.1 – Estrutura do trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Page 14: Projeto de Graduação - Rafael 2 - Poli Monografias

1

Capítulo 1

Introdução

A popularização das redes sem fio vivida na década de 2000 expandiu o conceito

de conectividade para além das LANs com infraestrutura fixa. As redes de dados através

de telefonia móvel como as tecnologias 2G, 3G, e LTE (Long Term Evolution) além do

WIMAX ( Worldwide Interoperability for Microwave Access) e das redes pessoas (PANs)

utilizando Bluetooth ajudaram a criar a ideia de que a conectividade deve ser ubíqua. A

adoção do padrão de protocolos da família IEEE 802.11 pela indústria, no entanto foi a

grande responsável pela penetração das redes sem fio no mercado e o constante

barateamento do hardware necessário.

Como consequência da alta aceitação dos padrões 802.11, criou-se uma demanda

cada vez maior por novas soluções que levem conectividade a ambientes em que as redes

infraestruturadas encontram restrições à sua aplicabilidade que as áreas acadêmica e

comercial visam explorar. Redes ad hoc móveis (MANETs – Mobile Ad Hoc Networks)

é uma área que vem recebendo considerável atenção. Uma MANET é uma rede

autogeradora capaz de funcionar sem a necessidade de um controle centralizado. Cada nó

em uma rede ad hoc age tanto como terminal e como roteador. Estes nós utilizam sua

interface de rádio para se comunicar com outros nós que estiverem em seu alcance. O

benefício dessas redes é a facilidade e baixo custo de aplicação em lugares em que não é

economicamente viável instalar e administrar uma infraestrutura fixa.

As VANETs (Vehicular Ad Hoc Networks) são uma subclasse de MANETs cujos

nós são equipamentos de rede instalados em veículos automotores. Diversos trabalhos

como [6] e [4] mostram que tais redes podem ser construídas com interfaces de rede

802.11 disponíveis no mercado e portanto, de baixo custo. Tal facilidade junto a

possibilidade de se implementar diversas aplicações relacionadas a veículos, tráfego,

motoristas, passageiros e pedestres tornou as redes veiculares o objetivo de grupos de

pesquisas e fabricantes de automóveis. “Sistemas de Transporte Inteligente (ITS –

Inteligent Transport System) que visam simplificar a operação de veículos, gerenciar o

tráfego automotivo, auxiliar os motoristas com aplicações de segurança e prover

Page 15: Projeto de Graduação - Rafael 2 - Poli Monografias

2

informações relevantes à motoristas e passageiros são factíveis e estarão presentes nas

estradas e veículos em futuro próximo” [8].

Apesar das facilidades, as redes veiculares encontram alguns obstáculos técnicos

para sua implementação, como a alta mobilidade dos veículos, grande variação da

velocidade relativa entre os nós, frequentes desconexões e utilização de aplicações em

tempo real. Além disso, a escalabilidade da rede se torna um problema, em especial em

aplicações que requerem que a informação seja retransmitida por múltiplos saltos entre

carros, já que redes veiculares podem ser as redes ad hoc mais distribuídas e com o maior

número de nós.

1.1 – Motivação e Objetivo

Dentre as aplicações de redes veiculares, destacam-se aquelas voltadas à

segurança. Segundo dados do Departamento Nacional de Infraestrutura de Transportes

(DNIT), no ano de 2011 foram registrados 188.925 nas rodovias do país, dentre os quais

7.008 tiveram vítimas fatais. Aplicações de segurança em redes veiculares podem ajudar

a diminuir esse número e preservar a vida humana.

Uma aplicação que atende a esse fim é a notificação automática de acidentes. O

tempo discorrido entre o acidente e a notificação dos sistemas de emergência médicos

(ANT – Accident to Notification Time) pode ser crucial para evitar fatalidades. Em [7], o

autor cita dados do departamento de trânsito dos EUA de 1990 que mostram que o ANT

de acidentes com fatalidades em rodovias urbanas chegava a até 15,2 minutos. Parece

seguro afirmar que em áreas rurais esse tempo seja consideravelmente maior. No Brasil,

não há dados disponíveis sobre ANT, mas é presumível que o tempo seja ainda maior.

Em casos extremos, como uma rodovia pouco movimentada em horário de baixo tráfego,

esse tempo tende a ser bem superior.

Para minimizar esse tempo, a aplicação pode transmitir um pedido de socorro que

é encaminhado através de múltiplos saltos para o ponto de emergência mais próximo,

diminuindo o tempo de resposta para atendimento ao acidente. Para que aplicação

funcione entretanto, é preciso sobrepujar os problemas das desconexões constantes e da

segmentação da rede.

Para lidar com estas restrições de conectividade, a arquitetura DTN permite que

se armazene persistentemente mensagens em uma nova camada de rede denominada

bundle layer, com isto, ela torna-se capaz de utilizar o paradigma armazena-carrega-

Page 16: Projeto de Graduação - Rafael 2 - Poli Monografias

3

encaminha, isto é, uma mensagem é armazenada, em um nó e segue com ele até que seja

encaminhada para um segundo nó quando houver conectividade. É através dessa camada

que a DTN consegue fornecer comunicação entre redes descontínuas. No caso de

VANETs, ela se aproveita da mobilidade do veículo para armazenar um bundle e

encaminhá-lo a outro nó VANET quando possível.

Essa nova arquitetura exige protocolos de roteamento próprios, já que os

protocolos convencionais de roteamento TCP/IP não atendem ao paradigma armazena-

carrega-encaminha. Há na literatura exemplos de protocolos desenvolvidos para as

chamadas VDTNs (Vehicular DTNs).

O objetivo desse trabalho é o de desenvolver um protocolo de roteamento VDTN

que atenda os pré-requisitos das aplicações de redes veiculares que exijam um tempo de

resposta baixo. Para isso, utilizar-se-á uma única métrica: o tempo decorrido desde a

última vez em que o veículo esteve em contato com um gateway da infraestrutura, capaz

de entregar o pacote para o seu destino final, ou ser ele próprio o destino final do pacote.

Assumindo que existem nós desse tipo espalhados ao redor da rodovia, assume-se que em

nós que viajam a velocidades constantes estarão mais próximos do próximo gateway caso

haja discorrido mais tempo desde o gateway anterior. Além disso, comparar-se-á os

resultados obtidos com os do protocolo mais simples, porém de menor latência estimado

em uma VDTN, o Epidêmico, garantindo uma latência semelhante mas com o uso mais

eficiente dos recursos da rede.

1.2 – Metodologia

Para validar o roteamento tolerante a atrasos proposto, foi utilizado o simulador

NS-2 (Network Simulator - 2), que permite a simulação de redes ad hoc e a ferramenta

NAM, que permite a visualização da simulação. O algoritmo do protocolo foi

desenvolvido em OTcl (Object Tool Command Language), uma das linguagens aceitas

pelo interpretador do simulador.

O ambiente de simulação tenta retratar o tráfego de uma rodovia operando em

uma topologia de rede escolhida de forma a testar a utilidade do protocolo sob requisitos

mínimos de latência e processamento, de forma que o foco seja o funcionamento do

protocolo e não seu desempenho em cenários extremos. Ao mesmo tempo, tentou-se

aproximar o máximo possível de um cenário real. Para isso, foi utilizado dados de tráfego

da BR-290 coletados em [24].

Page 17: Projeto de Graduação - Rafael 2 - Poli Monografias

4

Para medir a eficiência do protocolo, um segundo algoritmo foi desenvolvido para

simular o protocolo Epidêmico, um dos mais simples protocolos de roteamento DTN e

também aquele que possui conceitualmente a menor latência fim a fim. A performance

dos dois protocolos será testada em dois cenários distintos.

No primeiro, apenas quatro veículos transitarão pela rodovia bem espaçados entre

si. O objetivo é testar o protocolo em uma rede descontínua em um cenário possível, onde

a densidade de veículos é próxima daquela obtida após as 0h em [24]. Também nesse

cenário espera-se observar a tomada de decisão do protocolo, para isso o movimento dos

veículos é tal que o nó 0 terá duas opções de nós para encaminhar o seu pacote, mas

deverá escolher aquele com a melhor métrica.

Já no segundo cenário, será testado o outro caso extremo, isto é, uma rodovia com

alto tráfego em ambos os sentidos. Aqui, vinte e seis veículos irão trafegar, treze em cada

direção, de forma equidistantes e a velocidades constantes. O espaçamento dos veículos

em uma pista será tal que não haverá alcance para transmissão entre eles.

1.3 – Roteiro

Primeiramente, no capítulo 2, serão introduzidas as características básicas das

redes veiculares, os esforços de padronização iniciados na década passada e um overview

da arquitetura e das aplicações previstas na literatura. No capítulo seguinte serão

apresentadas as redes DTN com enfoque nos seus protocolos de roteamento, que estarão

divididos em protocolos para DTN e protocolos para VDTNs, integrando assim o assunto

do capítulo anterior.

O capítulo quatro trará a proposta do novo protocolo detalhadamente em seus dois

modos de operação bem como a arquitetura do sistema proposto que viria a se beneficiar

de sua utilização. A seguir, o capítulo cinco traz uma visão geral do simulador utilizado,

suas principais funções e métodos de entrada e saída de forma contextualizada com o que

foi utilizado na simulação do protocolo. Os cenários das simulações também são descritos

nesse capítulo, assim como um comparativo entre os resultados obtidos para o protocolo

desenvolvido e o protocolo epidêmico.

Por fim o capítulo seis mostra o que se pôde concluir do experimento, críticas e

benefícios do modelo escolhido e tópicos de melhorias para futuros trabalhos.

Page 18: Projeto de Graduação - Rafael 2 - Poli Monografias

5

Capítulo 2

Redes Veiculares

A Comunicação Inter Veicular (IVC – Inter Vehicle Communication) atrai há

algum tempo a atenção de pesquisadores e da indústria automotiva. Esta, enxerga a

capacidade de prover Sistemas de Transporte Inteligentes (ITS) além de serviços de

assistência ao motorista e aos passageiros. Nesse contexto, as Redes Ad Hoc Veiculares

(VANETs) se destacam como nova classe de redes sem fio. Mais precisamente, tratam-

se de uma subclasse de rede ad hoc móvel (MANETs) resultado dos avanços nas

tecnologias de transmissão de redes sem fio, formadas espontaneamente entre veículos

em movimento equipados de interfaces wireless com tecnologias homogêneas ou

heterogêneas de rádio e podendo possuir sistemas de comunicação de curto ou médio

alcance. Como uma rede ad hoc móvel, ainda possui algumas características em comum

com outras redes deste tipo, tais quais as constantes mudanças em sua topologia

provocadas pela mobilidade dos nós, que acarretam desconexões frequentes.

Essa classe de redes pode ser considerada uma aplicação real das redes ad hoc

móveis, possibilitando a comunicação entre veículos próximos bem como entre veículos

e equipamentos fixos no entorno das vias. Mas para sua implementação, existem alguns

desafios que devem ser sobrepostos. Uma grande diferença entre uma MANET e uma

VANET é que esta, por ser composta de veículos, exibe um padrão de mobilidade

particular. Em autoestradas, por exemplo, veículos podem se deslocar a velocidades

muito altas, possivelmente em direções opostas, o que diminui a janela de tempo a qual

dois nós podem se comunicar diretamente. Outra importante diferença é que os veículos

se deslocam exclusivamente ao longo de ruas, estradas e avenidas, o que aumenta a

previsibilidade de sua trajetória. Não obstante, as redes veiculares necessitam de um grau

de escalabilidade maior devido ao elevado número de nós. Todas essas características

fazem com que protocolos criados para outras redes sem fio, como as MANETs, não

sejam adequados.

2.1 – Características Especiais

Page 19: Projeto de Graduação - Rafael 2 - Poli Monografias

6

Redes veiculares possuem características especiais que a distinguem de outros

tipos de redes móveis. Em comparação com outras MANETs, tais redes possuem alguns

atrativos únicos, tais como:

• Fontes de energia praticamente ilimitadas: Níveis de carga de bateria não

constituem uma restrição significativa em redes veiculares como o são em

redes ad hoc clássicas ou redes de sensores, já que o veículo pode prover

energia contínua para o dispositivo de comunicação.

• Maior capacidade computacional: Veículos podem suportar sistemas

computacionais complexos, além de poderem ser equipados com diversos

sensores e demais hardware auxiliar.

• Movimento previsível: Ao contrário das redes ad hoc clássicas, onde é difícil

prever a posição futura de um nó, veículos tendem a se locomover de forma

previsível sendo limitados pelas vias de trânsito (ruas, estradas e rodovias).

Além disso, veículos são frequentemente equipados com sistemas de

posicionamento, como o GPS. Dada a velocidade média e a trajetória da via,

a posição futura do veículo pode ser facilmente calculada.

Entretanto, para tirar proveito dessas vantagens, um projeto de redes veiculares

deve sobrepor alguns desafios, tais como:

• Alta escalabilidade: Ao contrário das redes ad hoc normalmente estudadas na

literatura que assumem um número limitado de nós, uma rede veicular pode

se estender por toda uma rede rodoviária e, portanto, incluir um número

grande de nós.

• Alta mobilidade: O ambiente em que uma rede veicular opera é extremamente

dinâmico. Dependendo do ambiente ou da hora do dia podemos ter extremos

distintos de alguns fatores críticos. Em uma rodovia pouco movimentada, a

velocidade relativa entre os nós pode chegar a 300 km/h e a densidade de

veículos pode ser entre 1 e 2 por km [10], podendo ser ainda menor nos

períodos noturnos. Enquanto isso, em ambientes urbanos, as velocidades

relativas não costumam passar de 60km/h e a densidade dos nós pode ser

bastante grande, especialmente no horário do rush.

Page 20: Projeto de Graduação - Rafael 2 - Poli Monografias

7

• Rede particionada: Redes veiculares serão frequentemente particionadas. A

natureza dinâmica do tráfego pode resultar em grandes lacunas entre os

veículos em cenários mais dispersos. Consequentemente, é comum haver

vários clusters isolados de nós.

• Topologia e conectividade: Como os veículos estão em movimento e trocando

sua posição constantemente, a topologia da rede muda frequentemente

enquanto links entre nós são criados e quebrados muito rapidamente. O grau

de conectividade de uma rede depende de alguns fatores, como o alcance dos

links sem fio, a densidade dos veículos e a quantidade de veículos

participantes, já que apenas uma fração dos veículos numa via podem estar

equipados com uma interface wireless.

2.2 – Arquiteturas

A arquitetura das redes veiculares define a forma como os nós se organizam e se

comunicam. Atualmente, existem três arquiteturas principais: ad hoc puro (também

chamada V2V – Vehicle to Vehicle), infraestruturada (V2I – Vehicle to Infrastructure) ou

híbrida (V2R – Vehicle to Road) [Alves et al. 2008]. Na arquitetura ad hoc, os veículos

comunicam-se sem qualquer suporte externo ou elemento centralizador. Para tanto, os

veículos funcionam como roteadores e encaminham tráfego através de múltiplos saltos.

Embora essa seja a configuração mais simples, por não exigir nenhum tipo de

infraestrutura, ela tem como principal desvantagem a conectividade da rede que depende

da densidade e do padrão de mobilidade dos veículos. Para evitar problemas de

conectividade, a arquitetura infraestruturada emprega nós estáticos distribuídos ao longo

das ruas ou estradas. Esses nós estáticos funcionam como pontos de acesso de redes IEEE

802.11 também em modo infraestruturado. Eles centralizam todo o tráfego da rede,

servindo como nós intermediários das comunicações. A vantagem do modo

infraestruturado e o aumento da conectividade e a possibilidade da comunicação com

outras redes, como por exemplo, a Internet. A conectividade da rede, entretanto, só é

garantida mediante um número grande de elementos fixos, o que pode elevar os custos da

rede. A arquitetura híbrida é uma solução intermediária entre a ad hoc e a infraestruturada.

Na arquitetura híbrida, uma infraestrutura mínima é utilizada para aumentar a

conectividade da rede e prover serviços como os de interconexão. Entretanto, há também

Page 21: Projeto de Graduação - Rafael 2 - Poli Monografias

8

a possibilidade dos veículos se comunicarem por múltiplos saltos. Nas redes veiculares,

o modo ad hoc equivale à arquitetura V2V e o modo infraestruturado à V2I. Atualmente

alguns pesquisadores referem-se às redes veiculares em geral como VANETs, mesmo

quando existe infraestrutura. A figura abaixo apresenta as diversas arquiteturas das redes

veiculares.

Figura 2.1 – Cenários de uma rede veicular Fonte: [1]

2.3 – Padronização

Como dito no início desse capítulo, o campo das redes veiculares tem chamado a

atenção da comunidade científica assim como a da indústria automotiva, mas não são os

únicos. Autoridades governamentais e instituições de padronização também já mostraram

notado interesse nessa área. No ano de 1999, a FCC (Federal Communications

Commission) alocou 75 MHz do espectro DSRC (Dedicated Short Range

Communications) na faixa de 5,9 GHz (5,850 – 5,925 GHz), para o uso exclusivo de

comunicação V2V e V2I. A faixa DSRC é livre, porém licenciada, isto é, é restrita em

termos de aplicações e tecnologias utilizadas. O espectro DSRC é dividido em sete canais

de 10 MHZ como pode ser observado na figura abaixo:

Page 22: Projeto de Graduação - Rafael 2 - Poli Monografias

9

Figura 2.2 - Alocação de espectro para aplicações DSRC Fonte: [1]

O canal 178 (5885-5895 MHz) é o canal de controle, geralmente restrito ao uso

em comunicações de segurança apenas. Os dois canais das bordas do espectro (172 e 184)

são reservados respectivamente para futuras aplicações de emergência e preservação da

vida e para alta potência segurança pública. Os demais (174, 176, 180 e 182) são canais

de serviço disponíveis tanto para aplicações de segurança como para outras aplicações.

Em comparação com a faixa de frequência utilizada nos rádios por espalhamento

espectral, localizada entre 902 – 908 MHZ, isto é, a faixa ISM, a DSRC proporciona uma

taxa de dados e alcance bem superiores, como pode ser observado na tabela abaixo:

Tabela 2.1 – Comparação entre DSRC e ISM

Fonte: [10]

Parâmetros ISM (902 - 928 MHz) DSRC (5850 - 5925

MHz)

Espectro 12 MHz 10 MHz

Taxa de dados 500 Kbps 6 - 27 MHz

Proteção Nenhuma Primária

Interferência Telefone 900 MHz; radar

Espalhamento espectral de rádio

Alguns radares; satélites

Alcance máximo 91,44 m 1000 m

Capacidade do canal 1 - 2 7

Potência (downlink) < 10 watts < 2 watts

Potência (uplink) < 4 mW < 2 watts

No Japão, o espectro alocado para aplicações DSRC varia de 5,770 a 5,850 GHZ.

Já na Europa, o espectro destinado à aplicações de ITS é o de 5,855 a 5,925 GHz.

IEEE

Inicialmente o esforço para a padronização da tecnologia de rádio DSRC nos EUA

foi liderado pela American Society for Testing and Materials através do grupo de trabalho

Page 23: Projeto de Graduação - Rafael 2 - Poli Monografias

10

ASTM 2213 [9], que tinha como objetivo o desenvolvimento de aplicações de segurança

e melhoria do trânsito, como o pagamento automático de pedágios. O trabalho desse

grupo serviu como base para a regulamentação do uso do espectro DSRC pela FCC.

Em 2004 porém, o esforço de padronização foi migrado para o grupo de trabalho

802.11 do IEEE, já que a tecnologia de rádio DSRC foi baseada no padrão IEEE 802.11a

ajustado para operações de baixo overhead no espectro de 5,9GHz. Uma implicação de

se mover o padronização para o escopo do IEEE é a internacionalização do padrão, que

não fica mais restrito ao mercado norte-americano.

Figura 2.3 – Pilha de protocolos WAVE Fonte: [1]

No IEEE, o padrão ganhou o nome de WAVE (Wireless Access in the Vehicular

Environment). Sua arquitetura é definida em seis documentos: IEEE P1609.1, IEEE

P1609.2, IEEE P1609.3, IEEE P1609.4, IEEE 802.11 e IEEE 802.11p. O padrão IEEE

802.11p define as camadas físicas e de controle de acesso ao meio (MAC) para redes

veiculares e é baseado no padrão de redes locais IEEE 802.11a. Já a pilha de protocolos

entre a camada de rede e a camada de aplicação é descrita nos padrões IEE 1609. Portanto,

o IEEE 1609 nada mais é do que uma família de padrões para as camadas superiores as

quais o IEEE 802.11p é baseado.

Tal família consiste de quatro padrões:

• IEEE 1609.1 – WAVE Resource Manager, define a plataforma de aplicação

básica e inclui protocolos de leitura/escrita de dados de aplicação entre

elementos de rede.

Page 24: Projeto de Graduação - Rafael 2 - Poli Monografias

11

• IEEE 1609.2 – WAVE Security Services, define a segurança, anonimato,

autenticidade e confidencialidade do DSRC.

• IEEE 1609.3 – WAVE Networking Services, especifica os serviços das

camadas de rede e transporte, incluindo o endereçamento e o roteamento.

Além disso, o padrão 1609.3 define a MIB (Management Information Base)

para a pilha WAVE.

• IEEE 1609.4 – WAVE Multichannels Operation, se posiciona logo acima do

802.11p e habilita a operação das camadas superiores através de múltiplos

canais sem conhecimento prévio dos parâmetros da camada física.

C2C-CC

Uma das principais forças motoras para a comunicação interveicular baseada em

tecnologia sem fio na Europa é a C2C-CC, um consórcio de fabricantes de automóveis,

fornecedores e institutos de pesquisa. O C2C-CC assimila inovações de vários projetos

de P&D europeus, cria sistemas e especificações de protocolos e provê um framework

para protótipos de sistemas [10]. Em 2007 foi publicado o seu “manifesto” descrevendo

os principais conceitos do sistema, cobrindo arquitetura de protocolos e sistemas, cenários

de uso e protocolos de comunicação. Um conceito central da abordagem de rede do C2C-

CC é a base em redes ad hoc de múltiplos saltos que utilizam endereçamento e roteamento

geográficos, isto é, com base na posição geográfica dos nós. O consórcio visa permitir a

interoperabilidade entre carros de diferentes fabricantes e fornecedores de dispositivos de

redes e diz se preocupar com demonstrações de aplicações reais de segurança para redes

ad hoc tangíveis.

A arquitetura descrita no manifesto prevê 3 domínios distintos:

• Domínio intraveicular: Rede logicamente composta por uma On-board Units

(OBU) e Application Units (AUs). Uma AU é um dispositivo que executa uma

ou mais aplicações e utiliza a capacidade de comunicação da OBU. Uma AU

pode ser uma parte integrada da OBU ou um dispositivo portátil, como um

laptop.

• Domínio ad hoc (ou VANET): Composta de veículos equipados de OBUs e

road-side units (RSUs). OBUs formam uma MANET que permite a

comunicação entre nós de maneira distribuída sem a necessidade de uma

Page 25: Projeto de Graduação - Rafael 2 - Poli Monografias

12

instância central de coordenação. Se não houver comunicação direta entre

duas OBUs, protocolos dedicados de roteamento permitem a comunicação em

múltiplos saltos até que o pacote chegue a seu destino. A principal função de

uma RSU está em aplicações de segurança, executando aplicações especiais e

extender a área de cobertura de uma rede ad hoc ao receber e encaminhar

pacotes.

• Domínio de infraestrutura: Trata-se dos elementos fixos que provêm serviços

para as OBUs. Podem ser formadas por RSUs ou Hot Spots Particulares (HS)

e toda infraestrutura por trás que as ligam ao serviço prestado, como a internet.

As OBUs ainda podem utilizar as redes celulares (GSM, GPRS, HSDPA,

WiMax, LTE) para prover acesso à internet.

Figura 2.4 - Modelo de referência Fonte: C2C-CC Manifesto

Page 26: Projeto de Graduação - Rafael 2 - Poli Monografias

13

Figura 2.5 - Arquitetura C2C-CC Fonte: C2C-CC Manifesto

ETSI

O Instituto Europeu de Padrões de Telecomunicações (ETSI - European

Telecommunications Standards Institute) possui o comitê técnico TC ITS que visa

desenvolver padrões e especificações para serviços de ITS. O TC ITS está organizado em

cinco grupos de trabalho: WG1 – Requerimentos de usuário e aplicação; WG2 –

Arquitetura e questões de “Cross-Layer” (interação entre protocolos de camadas

diferentes); WG3 – Rede e Transporte; WG4 – Meio e questões relacionadas; e WG5 –

Segurança.

Para permitir o uso de diferentes meios de acesso, a especificação distingue entre

funções de rede dependentes e independentes do meio. As especificações são apoiadas

por outros grupos de trabalho, que especificamente se preocupam com questões de meio

de acesso e segurança. Trabalhos relacionados a ITS dentro da ETSI são liderados pela

ETSI ERM TG37 (Assuntos de compatibilidade eletromagnética e espectros de rádio),

que trabalha em cooperação com outros comitês ETSI e de outras organizações de

padronização (SDOs), notadamente o ISSO TC204. ERM TG37 contribui para o processo

Page 27: Projeto de Graduação - Rafael 2 - Poli Monografias

14

de desenvolvimento de padrões do ISSO TC204 e desenvolverá padrões complementares

se apropriado.

ISO

O globalizado ISSO TC204/WG16 produziu uma série de rascunhos de padrões

conhecidos como CALM (Continuous Air-interface, Long and Medium Range). O

objetivo do CALM é desenvolver uma rede padronizada capaz de conectar veículos e

sistemas de acostamento continuamente. Para alcançar esse objetivo, o padrão sugere o

uso de uma larga variedade de mídias de comunicação como a telefonia móvel, WLANs,

DSRC e infravermelho (IR). A arquitetura CALM provê o acesso universal através de um

número de mídias complementares e os interliga através de protocolos de internet

modernos, camadas de adaptação e entidades de manutenção. A arquitetura separa o

provimento de serviços do meio através de uma camada de rede em IPV6, com handover

entre meios de acesso e suporte a serviços utilizando 2G, 3G, LTE, 5GHz, 60GHz, Mobile

Wireless Broadband (802.16e - WiMax, 802.20 e HC-SDMA). O sistema será capaz de

incluir outras tecnologias de acesso conforme suas evoluções através do uso de protocolos

de acesso comuns e redes IPV6.

O conceito do CALM, que a ETSI está ajudando a desenvolver, está no cerne de

várias pesquisas europeias de frameworks IPV6 como a SAFESPOT [10] e CVIS (que já

teve seu draft final aprovado), que testam soluções com CALM. Nos estados unidos a

iniciativa VII operará utilizando os padrões IEEE 802.11p/1609 a 5,9GHz, que serão

compatíveis com os padrões CALM 5,9GHZ, apesar do padrão IEEE não possuir

handover entre mídias diferentes.

Page 28: Projeto de Graduação - Rafael 2 - Poli Monografias

15

Figura 2.6 - Arquitetura CALM Fonte: ITU-T Technology Watch Briefing Reports: Continuous Air-interface, Long and Medium

Range (CALM)

2.4 – Aplicações

As aplicações de redes veiculares podem ser divididas em três classes: segurança

no trânsito, entretenimento e assistência ao motorista. As aplicações de segurança

possuem caráter preventivo e emergencial, onde o principal desafio é divulgar

rapidamente as informações para que o condutor tenha tempo para reagir. A classe das

aplicações de entretenimento inclui adaptações de aplicações da Internet para redes

veiculares. Por fim, as aplicações de assistência ao motorista envolvem o recebimento de

informações que auxiliem o condutor em buscas ou automatizem serviços. A seguir, são

apresentadas as principais aplicações e projetos relacionados a redes veiculares.

Page 29: Projeto de Graduação - Rafael 2 - Poli Monografias

16

2.4.1 – Segurança no Trânsito

A promessa de aumento de segurança no trânsito tem sido um dos principais

incentivos ao desenvolvimento das redes veiculares. Em geral, as aplicações de segurança

têm por objetivo reduzir o número e a gravidade dos acidentes através da troca de

informações entre os veículos. Essas informações podem ser apresentadas ao motorista

ou utilizadas para acionar um sistema ativo de segurança. Essas aplicações impõem

requisitos estritos de latência e confiabilidade para as mensagens, exigindo características

diferenciadas dos protocolos de camadas inferiores. Além disso, as aplicações precisam

ser robustas à inserção de mensagens falsas e lidar com informações conflitantes.

Muitos acidentes de trânsito podem envolver veículos parados, lentos ou

desgovernados. Uma maneira de evitar esses acidentes é através do emprego de

mensagens periódicas que indiquem a posição, a velocidade e a direção dos veículos.

Outra abordagem é a utilização de mensagens assíncronas disparadas somente quando um

mecanismo de emergência é acionado. O CCA (Cooperative Collision Avoidance) [11] é

um exemplo de aplicação nessa categoria que tem por objetivo evitar colisões utilizando

uma abordagem cooperativa. O CCA envia mensagens em múltiplos saltos avisando aos

motoristas da ocorrência de uma situação de emergência. Essa abordagem também pode

ser utilizada em situações em que o motorista não possui visão completa. Por exemplo, o

motorista pode ter ciência de veículos a sua frente através de sondas em situações de

neblina ou de chuvas intensas.

Existem ainda aplicações onde a troca de informações entre veículos permite a

realização segura de manobras no trânsito, prevenindo acidentes. Por exemplo, em

situações em que os veículos precisam realizar uma mudança de faixa, mensagens podem

ser trocadas para evitar colisões laterais [1].

Além das comunicações entre veículos, as comunicações com a infraestrutura

podem reduzir o número de colisões em cruzamentos. Através de sondas periódicas, os

veículos podem avisar RSUs instaladas em cruzamentos sobre sua posição e velocidade.

Com esses dados, a RSU pode calcular uma possível colisão e alertar os envolvidos sobre

o risco iminente. Outra abordagem é o envio de sondas pelas RSUs informando o estado

de sinais, avisando motoristas desatentos sobre a possível violação da sinalização.

Tipicamente, avisos são colocados em locais com curvas acentuadas para que o motorista

reduza a velocidade.

Page 30: Projeto de Graduação - Rafael 2 - Poli Monografias

17

2.4.2 – Entretenimento

Informações sobre restaurantes locais, hotéis, postos de gasolina e demais pontos

de interesse podem ser carregadas no veículo por uma RSUs e compartilhadas com os

demais veículos em uma arquitetura ad hoc. O mesmo pode ser feito com arquivos

multimídia (música, filmes, notícias, e-books etc). Um anúncio pode ser transmitido da

mesma maneira, e sua exibição ainda pode ser condicionada às informações coletadas do

veículo. Por exemplo postos de gasolina podem ser sugeridos a veículos com pouco

combustível, oficinas mecânicas a veículos com problemas diagnosticados

eletronicamente. A maioria das aplicações de entretenimento propostas para redes

veiculares, no entanto, está associada à onipresença de acesso à Internet. Por isso, é

necessário adaptar as aplicações mais usadas na Internet de acordo com as características

das redes veiculares.

Muitas aplicações para redes veiculares defendem o uso da arquitetura ad hoc por

dispensar elementos centralizadores e por possibilitar a comunicação entre veículos sem

o intermédio de pontos de acesso. Além disso, no caso infraestruturado, manter a rede

totalmente conectada requer um alto custo de instalação e manutenção. A partir desses

argumentos, muitas aplicações de entretenimento preferem utilizar os sistemas par-a-par

ao modelo cliente-servidor, que é centralizado. A questão é que frequentemente essas

aplicações necessitam de acesso à Internet, que só é possível através de pontos fixos de

interconexão ligados a uma infraestrutura cabeada. Esses pontos fixos, que podem ser

RSUs, são nós especiais que também pertencem à rede veicular e são chamados de

gateways.

2.4.3 – Assistência ao Motorista

A principal finalidade das aplicações de assistência ao motorista é auxiliar a

condução do veículo a partir da disponibilização de informações úteis. Essas informações

são adquiridas a partir de serviços que podem ser oferecidos ao condutor em momentos

oportunos ou podem ser de fácil acesso através de procedimentos de busca. Dentre alguns

exemplos pode-se citar: aviso de estacionamentos, disseminação de informações de vias,

controle de tráfego, auxílio a cruzamentos, condução conjunta de veículos, localização

em mapas, aumento da visibilidade e veículos sem condutor humano.

Page 31: Projeto de Graduação - Rafael 2 - Poli Monografias

18

Dentre as aplicações desta classe, as aplicações de indicação de vagas de

estacionamento vêm recebendo bastante atenção. Um dos argumentos utilizados é que

além de conveniente, ela pode reduzir os problemas de congestionamento nas cidades.

Um trabalho realizado em uma cidade no distrito de Munique, Alemanha revela que 44%

de todo o tráfego de veículos é devido à busca de lugares para estacionar. Isso pode gerar

prejuízos anuais da ordem de milhões de Euros e ainda provocar muitas horas perdidas

no trânsito [1]. Em [12], os autores desenvolveram uma solução para controle e

divulgação de vagas de estacionamento. Essa solução divide uma área onde há vagas de

estacionamento em pequenas zonas, de forma que cada zona seja gerenciada por uma

Unidade de Acostamento (RSU). Cada RSU controla a posição e o estado das vagas na

zona em que se encontra e, quando um veículo se aproxima dela, ela informa sua posição,

obtida através de um receptor GPS, e verifica para onde o motorista pretende ir. Assim, a

RSU verifica se existe alguma vaga livre próxima ao destino pretendido e, caso exista,

informa ao motorista. Quando um veículo se encaminha para alguma vaga, ele verifica a

presença de outros veículos ocupando outras vagas utilizando sensores ao redor do

veículo. As informações coletadas sobre o estado das vagas próximas são enviadas à RSU.

Quando um veículo sai de uma vaga, ele informa à RSU a liberação.

Outra aplicação importante de auxílio ao motorista é a disseminação de

informações sobre as condições das vias. Essas aplicações buscam reduzir o tempo de

espera dos motoristas em congestionamentos, apresentando rotas alternativas que evitam

áreas com tráfego lento. Essas aplicações possuem ainda o efeito indireto de redução da

poluição ambiental e podem ser utilizadas para evitar áreas de risco.

Em [13] os autores propõem uma aplicação que utiliza redes veiculares para

informar aos motoristas a aproximação de veículos de emergência (Emergency Service

Vehicles - ESVs), facilitando a passagem deles até seus destinos. Cada ESV envia

periodicamente mensagens em difusão contendo o identificador do veículo, o tipo de ESV

(carro de polícia, ambulância etc.), seus pontos de origem e de destino, a identificação da

rota (lista das vias pertencentes àquela rota), a velocidade ideal para alcançar o destino,

sua posição atual e a estampilha de tempo de envio da mensagem pelo ESV. Dessa forma,

os veículos recebem informações completas sobre o ESV que está se aproximando,

auxiliando aos motoristas a tomarem a melhor decisão com antecedência.

As aplicações de condução conjunta de veículos (vehicle platooning) são

utilizadas para os veículos que viajam juntos, reduzindo o espaço entre eles. Por reduzir

o espaço entre os veículos, o conjunto de veículos permite uma viagem mais segura e com

Page 32: Projeto de Graduação - Rafael 2 - Poli Monografias

19

menores chances de ocorrências de congestionamentos. Essas aplicações realizam a troca

de informações de posição e velocidade dos veículos do conjunto, permitindo um controle

rápido e preciso da distância entre os veículos.

2.5 – Contextualização

Este trabalho está fundamentado em um cenário de redes veiculares. Os elementos

de redes envolvidos são veículos em movimento e unidades estacionárias distribuídas ao

longo do acostamento de uma rodovia, o que o enquadra como de arquitetura híbrida. Nas

sessões anteriores desse capítulo tentou-se mostrar as diferenças que esse cenário

proporciona na montagem da arquitetura dessa rede, suas características peculiares e

principalmente os entraves a serem sobrepujados. Dentre estes, destacam-se as

desconexões e a segmentação da rede, que justificam o uso de redes tolerantes a atrasos,

tema do capítulo seguinte.

A fim de contextualizar o leitor, os três tipos de aplicações foram citadas. No

entanto, o trabalho foca-se em uma arquitetura voltada para facilitar aplicações de

segurança e diminuir seu tempo de resposta. O implemento de outras aplicações no

cenário não é suportado e não foi descartado. O desenvolvimento do modo de operação

ganancioso possibilita que o veículo obtenha dados de uma rede externa, possibilitando

que aplicações de entretenimento e assistência ao motorista sejam utilizadas.

O padrão de rede mais conhecido e difundido é aquele do IEEE. Como houve a

preocupação de apresentar uma solução de baixo custo que utiliza itens amplamente

disponíveis no mercado, o uso do padrão IEEE é adequado a esse trabalho. As camadas

física e de acesso ao meio devem ser regidas pelo padrão IEEE 802.11p. No simulador,

utilizaremos o IEEE 802.11a que é o mais próximo suportado. Já os padrões de camadas

superiores não serão utilizados e o novo protocolo será desenvolvido para a camada de

rede.

Page 33: Projeto de Graduação - Rafael 2 - Poli Monografias

20

Capítulo 3

DTN e Redes Oportunísticas

3.1 – Fundamentos e Características

Os protocolos de roteamento existentes partem do pressuposto que existe uma

conexão fim a fim da origem ao destino, possivelmente via múltiplos intermediários. Esse

pressuposto nem sempre é verdadeiro devido à falta de confiabilidade (redes com alta

latência ou elevadas taxas de erro) ou, o que é mais importante para esse trabalho, à

conectividade intermitente entre os nós. Um exemplo desse último caso dá-se quando um

nó sem fio está fora do alcance do resto da rede.

Figura 3.1 - Desafios para redes fim-a-fim Fonte: [3]

Redes Tolerantes à Atrasos (DTN – Delay Tolerant Networks) tentam estender o

alcance das redes comuns e prometem habilitar a comunicação entre redes que antes

Page 34: Projeto de Graduação - Rafael 2 - Poli Monografias

21

apresentavam um grande desafio, como redes interplanetárias, MANETs (Mobile Ad-Hoc

Networks) e redes de baixo custo, onde não há uma infraestrutura fixa.

DTNs veiculares têm o potencial de interconectar veículos em regiões remotas

(ou rurais) a baixo custo onde as tecnologias de redes atuais não possuem cobertura. A

principal dificuldade dessas redes é que uma conexão fim-a-fim pode nunca ser

alcançada. Para tornar a comunicação fim-a-fim possível, nós retransmissores se utilizam

da mobilidade para armazenar os dados a serem transmitidos e encaminhá-los assim que

a oportunidade surgir. Para isso, a arquitetura DTN implementa um paradigma de

“armazenar e encaminhar” onde mensagens inteiras ou fragmentadas são movidas de um

local de armazenamento (buffer) de um nó até serem transmitidas ao nó seguinte onde

são então armazenadas novamente e retransmitidas ao longo do caminho até

eventualmente chegarem ao seu destino.

No exemplo de redes interplanetárias, os dispositivos de comunicação estão em

movimento e os links podem ser obstruídos periodicamente por corpos celestes. Além

disso, a latência advinda das grandes distâncias (dezenas de minutos dentro do nosso

sistema solar) são significantes. Se nós com potencial de comunicação se moverem

através de caminhos previsíveis eles podem conhecer sua posição futura e receber

atualização da posição futura de seus potenciais vizinhos e com essas informações

agendar as sessões de comunicação entre si, com isso o nó pode encerrar qualquer link e

economizar energia até o horário agendado. Nesse caso, diz-se que o contato é agendado.

Já quando uma comunicação é feita sem agendamento, dizemos que se trata de um contato

oportunístico.

A arquitetura prevê ainda a adição de uma nova camada de protocolo ao modelo

TCP/IP chamada de camada de agregação, cujo objetivo é prover interoperabilidade entre

redes heterogêneas que atuam em diferentes meios de transmissão. Na borda de cada rede

remota há um sistema com um gateway na camada de aplicação que termina aplicações e

produz bundles de dados.

Page 35: Projeto de Graduação - Rafael 2 - Poli Monografias

22

Figura 3.2 - Bundle Layer Fonte: [3]

Em DTN, um nó é uma entidade que possui uma camada bundle [3] e pode ser

classificado em três tipos. Um Host envia e/ou recebe bundles, mas não os encaminha.

Um router encaminha bundles dentro de uma região DTN e pode opcionalmente ser um

host. Já um Gateway encaminha bundles entre duas ou mais regiões DTN e pode

opcionalmente ser um host. Um gateway provê conversão entre os protocolos de camada

mais baixa das regiões para as quais serve de fronteira.

Figura 3.3 - Nós DTN Fonte: [3]

Vale notar que nas premissas da DTN, com grande atraso ou intermitência em

seus links, protocolos como o TCP que garantem confiabilidade por diversas trocas de

mensagens fim-a-fim de envio e confirmação de dados recebidos podem se tornar

impraticáveis. Por essa razão, as camadas bundle comunicam-se entre si de forma simples

Page 36: Projeto de Graduação - Rafael 2 - Poli Monografias

23

com mínima ou nenhuma confirmação de recebimento. Entretanto, os protocolos de

camada inferior, como o TCP, ainda podem manter sua função de confiabilidade e

retransmissão de dados não recebidos. Para isso, roteadores e gateways DTN agem como

substitutos para comunicações fim-a-fim, terminando a camada de transporte em suas

camadas bundle.

Redes DTN são também chamadas de redes oportunísticas. Como não há uma

terminologia definida ou uma separação clara entre os dois conceitos, ambos os termos

são usados de forma intercambiável. Segundo [14] porém, redes oportunísticas

correspondem a um conceito mais amplo que incluem DTNs. Enquanto DTNs assumem

que a topologia de rede é conhecida, nas redes oportunísticas tal conhecimento prévio não

é mandatório. Além disso, rotas em DTN são tipicamente calculadas por técnicas legadas

da internet, que consideram a indisponibilidade como apenas mais um componente do

custo do link. Enquanto isso nas redes oportunísticas as rotas são computadas a cada salto

em que o pacote é encaminhado, ou seja, diferentemente de redes DTN, em redes

oportunísticas cada nó age como um gateway.

A arquitetura das redes oportunísticas também foi expandida para redes de

trânsito, chamadas Vehicular DTN (VDTN). Nessas redes, veículos (carros, ônibus,

barcos, etc.) são utilizados como retransmissores que se movimentam ao longo da rede

coletando mensagens dos nós de origem. Diversos projetos foram baseados nesse

conceito geral. A seguir, serão apresentados alguns protocolos de roteamento em redes

oportunísticas.

3.2 – Roteamento em DTN

Como dito anteriormente, as redes DTN ganharam forma com o intuito de

conectar redes que apresentam um desafio para as estruturas convencionais de redes. Tais

desafios incluem os problemas de atrasos extremamente longos e as frequentes

desconexões. Outro desafio é que para algumas redes determinados enlaces podem existir

durante apenas alguns intervalos de tempo de forma que a topologia da rede varia ao

longo do tempo. Nesses casos, é possível que dois nós específicos nunca estejam

conectados e, consequentemente, nunca haja um caminho fim-a-fim entre ambos.

Page 37: Projeto de Graduação - Rafael 2 - Poli Monografias

24

Tais dificuldades fazem com que o desenho de uma estratégia eficiente de

roteamento seja uma tarefa complicada. De um modo geral, a performance do roteamento

incrementa quanto mais informações sobre a topologia são conhecidas, conforme

explicado em [15]. Infelizmente, esse conhecimento não é facilmente obtido e uma troca

deve ser feita entre performance e falta de conhecimento. Por esta razão, diversos

trabalhos classificam as propostas para roteamento em redes oportunísticas/DTN de

acordo com seu conhecimento da topologia. Neste trabalho, entretanto, a única

diferenciação será quanto à finalidade (VDTN ou não).

3.2.1 – Roteamento DTN Convencional

Epidêmico

Neste protocolo as mensagens são difundidas na rede de modo semelhante a

doenças ou vírus. Um nó é infectado por uma mensagem quando ele gera ou recebe a

mensagem de outro nó, armazenando-a em um buffer local para que possa ser

encaminhada adiante. Um nó é suscetível à infecção enquanto ainda não tiver recebido a

mensagem. Ele se torna infectado quando estabelece contato com um nó infectado e

recebe mensagens deste. Por sua vez, um nó infectado é recuperado (curado da doença)

uma vez que tenha entregado a mensagem ao nó de destino. Como resultado, ele também

se torna imune à mesma infecção e não mais encaminhará aquela mensagem.

Figura 3.4 – Troca de mensagens no roteamento Epidêmico Fonte: [2]

Page 38: Projeto de Graduação - Rafael 2 - Poli Monografias

25

O protocolo utiliza-se da distribuição transitiva de mensagens através de redes ad

hoc, com mensagens eventualmente atingindo o seu destino. Cada host mantém um buffer

com as mensagens originadas por ele mesmo ou carregadas por ele em favor de outro nó.

Uma tabela hash indexa a lista de mensagens e um vetor de bits chamado “vetor de

sumarização” e armazenado em cada host para indicar quais entradas na tabela hash estão

ativas. Quando dois hosts estão ao alcance um do outro para que a comunicação seja

estabelecida, o host com o menor identificador inicia uma sessão de anti-entropia [2] com

o host de maior identificador. Para evitar conexões redundantes, cada host mantém um

cache dos hosts com os quais ele falou recentemente. A anti-entropia não será reiniciada

com hosts que foram contatados dentro de um período configurável.

Segundo a literatura, uma sessão de anti-entropia consiste na comparação de todas

as réplicas de cada pedaço de dado que existe e atualizar cada réplica com a versão mais

recente. Durante uma sessão de anti-entropia do roteamento epidêmico, dois hosts trocam

seus vetores de sumarização para determinar quais mensagens armazenadas remotamente

ainda não foram vistas pelo host local. A seguir, cada host requer copias das mensagens

que ele ainda não viu.

Figura 3.5 – Sessão anti-entropia Fonte: [2]

A figura 5 retrata a troca de mensagens no protocolo. O host� entra em contato

com o host� e inicia uma sessão de anti-entropia. No passo 1,� transmite seu vetor de

sumarização,��� para�. A seguir,� executa uma operação lógica AND entre o seu vetor

de sumarização invertido,¬��� (representando as mensagens que ele ainda não possui)

e���. Isso é,� determina a diferença entre as mensagens armazenadas em� e as

mensagens armazenadas em si próprio. No passo 3,� transmite as mensagens

Page 39: Projeto de Graduação - Rafael 2 - Poli Monografias

26

requisitadas para�. Esse processo é repetido transitivamente quando� entra em contato

com um novo vizinho.

Dado o devido tempo e espaço em buffer, essas sessões de anti-entropia garantem

eventual entrega da mensagem a seu destino, como garantido pela teoria dos algoritmos

epidêmicos, a qual o protocolo se utiliza de uma variante. Entretanto, para evitar que a

epidemia fuja do controle e as mensagens sejam encaminhadas indefinidamente através

dos nós consumindo recurso de buffer, o protocolo implementa um campo de contagem

de saltos que age de forma similar ao campo TTL nos pacotes IP. Mensagens com um

TTL de 1, apenas podem ser encaminhadas ao destino.

Mesmo com essa medida, o maior problema deste protocolo é a alta quantidade

de cópias de mensagens na rede e o espaço de armazenamento ocupado nos nós, levando

a uma baixa escalabilidade. Quando muitas mensagens são replicadas, um dado nó pode

não ter espaço de armazenamento suficiente. Quando isto ocorre frequentemente, a

probabilidade de entrega das mensagens pode se tornar menor, e consequentemente

aumentar o atraso de entrega da informação.

PROPHET

O Probabilistic Routing Protocol using History of Encounters and Transitivity

(PROPHET) foi proposto para mitigar o problema da baixa escalabilidade e alta utilização

de recursos do roteamento epidêmico [16]. Apesar de ainda se utilizar de um mecanismo

de flood, este é controlado por intermédio de uma nova métrica chamada “previsibilidade

de entrega”,(�, ) ∈ [0, 1], em cada nó � para cada destino �. Essa informação

corresponde à probabilidade de cada nó� entregar a mensagem para o nó�.

O valor de(�, ) aumenta sempre que� e� se encontram. Se� e� deixam de se

encontrar frequentemente,(�, ) decai com o tempo a proporção das constantes�,� ∈

[0,1] (constante de envelhecimento) e�� (número de unidades de tempo discorridos

desde a última vez que a métrica foi atualizada):

(�, ) =(�, )��� × ���

A probabilidade de entrega também possui uma propriedade transitiva que se

baseia na seguinte observação: se um nó� encontra um nó� frequentemente e um nó�

encontra frequentemente um nó , logo o nó provavelmente é um bom nó para se

Page 40: Projeto de Graduação - Rafael 2 - Poli Monografias

27

encaminhar mensagens destinadas à�. Uma constante! (! ∈ [0,1]) é utilizada para

definir o impacto da transitividade na entrega:

(�,") =(�,")��� + (1 − (�,")���) × (�, ) × ( ,") × !

De forma similar ao roteamento epidêmico, quando dois nós iniciam um contato

eles trocam os vetores de sumarização, que nesse caso também contém a informação da

previsibilidade de entrega. Quando um nó recebe o vetor de sumarização de um vizinho,

ele calcula a probabilidade de entrega para cada uma das mensagens que ainda não possui

armazenada. Em seguida, para cada mensagem, o nó compara a probabilidade indicada

na sua lista com a probabilidade indicada na lista recebida do vizinho. Essa comparação

é realizada para verificar qual dos dois nós possui a maior probabilidade de entrega. Feito

isso, devem ser realizados três procedimentos. Primeiro, o nó deve enviar um pedido das

mensagens não armazenadas que possuem uma maior probabilidade de serem entregues

através dele. Segundo, recebe o pedido de mensagens do vizinho e as envia. Terceiro,

apaga do buffer todas as mensagens cujas probabilidades de entrega sejam maiores

quando a entrega é realizada através dele.

Há entretanto uma escolha que deve ser feita com relação ao encaminhamento de

pacotes. O protocolo permite que um limite mínimo de probabilidade de entrega seja

exigido para se encaminhar mensagens a um nó. Quanto menor o limite, mais nós

encaminharão a mensagem e maior será a probabilidade da mensagem ser entregue a seu

destino, porém mais recursos do sistema serão gastos. Por outro lado, um limite maior

fará com que a mensagem seja entregue a poucos nós, utilizará poucos recursos, mas a

probabilidade de entrega será reduzida e o delay será aumentado. No artigo, a estratégia

de encaminhamento sugerida é a de entregar uma mensagem sempre que um nó possuir

uma probabilidade de entrega maior que a daquele que carrega a mensagem.

Um algoritmo similar é utilizado no projeto ZebraNet [17], onde colares são

colocados em zebras para coletar periodicamente sua posição via GPS. As informações

de posicionamento são armazenadas em uma memória flash no colar para que sejam

enviadas a uma estação-base móvel. A disponibilidade da estação-base móvel é

esporádica, já que trata-se de um carro conduzido por pesquisadores que coletam as

informações enquanto o veículo está em movimento na região. Como nem todos os

colares se comunicarão com a estação-base móvel, os colares também trocam dados entre

si. Para isso, ela se utiliza de um protocolo baseado em histórico. Esse protocolo é similar

ao PROPHET, mas a métrica adotada aqui chama-se hierarquia. Inicialmente todos os

Page 41: Projeto de Graduação - Rafael 2 - Poli Monografias

28

nós possuem a mesma hierarquia, entretanto, quanto mais tempo um nó ficar fora do

alcance da estação-base móvel, seu nível de hierarquia diminui. A escolha do nó para o

qual o pacote deve ser roteado é feita de forma semelhante à do PROPHET, onde a maior

hierarquia é preferível.

Spray and Wait

Os protocolos baseados em utilidade (como a previsibilidade do PROPHET)

trouxeram uma abordagem para reduzir o overhead que o flood de mensagens do

roteamento epidêmico gera e melhorar sua performance que consiste basicamente em

encaminhar uma cópia com uma probabilidade% < 1 baseada na utilidade de cada nó na

rede para o nó de destino. Apesar dessa abordagem apresentar uma performance melhor

e possuir melhores decisões de encaminhamento do que o roteamento epidêmico [16],

esses protocolos ainda são baseados em flood. Além disso, ainda há o dilema de se

escolher um limite para a utilidade. Um limite muito baixo e o protocolo se comportará

como epidêmico (puramente flood), muito alto e a latência aumentará significativamente

e a probabilidade de mensagem alcançar seu destino diminuirá.

O protocolo Spray and Wait se propõe a reduzir significativamente o overhead de

transmissão dos esquemas baseados em flooding e apresenta performance melhor no que

diz respeito ao atraso de entrega na maioria dos cenários além de não utilizar qualquer

informação da rede [18]. Para isso, o protocolo dissemina um número de cópias pré-

fixado da mesma mensagem para outros nós na rede e aguarda até que uma dessas cópias

atinja o destino.

O Spray and Wait consiste de duas fases. Na primeira (fase Spray), para cada

mensagem originada em um nó,' cópias são geradas e então espalhadas para outros nós

para serem entregues ao nó de destino. Um nó é considerado ativo quando possui( > 1

cópias da mensagem em seu buffer e, portanto, ainda está na fase de Spray. Quando um

nó ativo� encontra outro nó�, � entrega para � *(() cópias da mensagem e retém para

si as outras( − *(() cópias. * é a função que define o processo de espalhamento.

Quando as cópias são pulverizadas através dos nós de modo que um único nó mantém

apenas uma única cópia da mensagem, o algoritmo entra em sua segunda fase, Wait.

Page 42: Projeto de Graduação - Rafael 2 - Poli Monografias

29

Nessa fase, cada um dos' nós com uma única cópia só pode encaminhar a mensagem

para o seu destino final.

Figura 3.6 – Exemplo de funcionamento do protocolo Spray-and-Wait com ' = 4 Fonte: [16]

Na figura, temos o caso específico chamado Spray and Wait Binário, que é dito

ótimo (menor latência possível) quando os nós se movimentam de forma independente e

identicamente distribuída (IID). Nesse caso,*(() = (2- , isto é, em ./ o nó de origem

cria ' = 4 cópias da mensagem que deseja encaminhar. Em.0, o nó de origem encontra

o nó 1 e encaminha 1

0 cópias ao nó 1, permanecendo com as outras

1

0 cópias. Em.2, o nó

1 encontra o nó 3 e o nó de origem encontra o nó 2, enviando 1

0 cópias a cada novo nó.

A partir daqui, já não há mais nós ativos e o protocolo entra no estado de Wait. Finalmente

em.3, o nó 3 encontra o destino e encaminha a mensagem.

Contex-aware Routing (CAR)

Até aqui foram citados exemplos de protocolos que utilizavam técnicas de

disseminação (flood) de mensagens combinadas ou não à técnicas probabilísticas para

entrega de mensagens à retransmissores com maiores chances de encontrar o destino.

Esses e outros algoritmos que visam diminuir o número de cópias de mensagens como o

Page 43: Projeto de Graduação - Rafael 2 - Poli Monografias

30

Spray and Wait tratam-se na verdade de algoritmos semi-epidêmicos, já que mantém a

idéia original da teoria dos algoritmos epidêmicos [2], que é o uso de diversas réplicas

para garantir que a mensagem seja entregue. Os algoritmos baseados em contexto visam

diminuir drasticamente o número de réplicas da mensagem utilizando parâmetros de

contexto de cada nó para identificar o melhor próximo salto para determinada mensagem.

No protocolo CAR, probabilidades de entrega são calculadas localmente

derivadas de informações de contexto. O contexto é formado por um conjunto de atributos

do sistema que podem ser utilizados para conduzir o processo de entrega de mensagens

[19]. Exemplos de informações de contexto incluem a carga restante de bateria, a taxa de

conectividade com um nó (número de conexões e desconexões que o host experimentou

com outro nó nos últimos4 segundos), a probabilidade do host estar ao alcance do

destino, o grau de mobilidade do host, etc. A posição geográfica do nó, no entanto, não

pode fazer parte das informações do contexto já que o algoritmo supõe que a única

informação de sua posição que o nó possui diz respeito à sua conectividade lógica com

outros nós.

A tomada de decisão do próximo salto é otimizada utilizando-se uma estimativa

dos valores futuros atributos de contexto ao invés da informação atual de contexto. Isso

permite que a escolha da melhor rota seja feita com uma precisão mais apurada, baseada

em informações mais próximas das atuais ao invés daquelas armazenadas. Um host que

queira enviar uma mensagem a um destino ou qualquer host no caminho para o destino

utiliza um filtro Kalman para predição e a teoria da decisão multicritério para escolher o

melhor próximo salto para a mensagem [19]. A decisão é baseada na mobilidade do nó e

sua posição (lógica) anterior em relação ao recebedor da mensagem. Ao contrário dos

protocolos anteriores, uma única mensagem é enviada pelo nó de origem, sem que haja

réplicas na rede.

O processo de predição e avaliação das informações de contexto podem ser

resumidas da seguinte forma:

1. Cada host calcula suas probabilidades de entrega para um determinado conjunto

de hosts. Esse processo é baseado no cálculo das utilidades para cada atributo que

descrevem o contexto. Os futuros valores dessas utilidades são então estimados

utilizando-se a teoria de decisão multicritério. As probabilidades de entrega

calculadas são periodicamente enviadas aos outros nós que se encontram dentro do

alcance como parte das atualizações de informações de roteamento.

Page 44: Projeto de Graduação - Rafael 2 - Poli Monografias

31

2. Cada host mantém uma tabela de encaminhamento descrevendo o próximo salto e

a probabilidade de entrega associada a ele para todos os outros destinos.

3. Os hosts utilizam-se de técnicas de predição para prever as probabilidades de

entrega entre as atualizações de roteamento. O processo de predição é usado

durante desconexões temporárias e é executado até que uma certa precisão seja

alcançada.

3.2.2 – Protocolos de Roteamento VDTN

Por conta do alcance limitado, somente clientes ao redor do AP (Access Point)

podem receber dados diretamente. Entretanto, esses dados podem ser benéficos para

pessoas se movendo em veículos a quilômetros de distância. Um motorista pode, por

exemplo, querer requisitar informações de diversas lojas de departamento para decidir

onde ir. Além disso, esse mesmo motorista se beneficiaria caso pudesse observar o vídeo

de câmeras de tráfico e receber informações sobre vagas de estacionamento próximas à

loja para decidir o melhor caminho a tomar. Um passageiro pode requisitar informações

de vários pontos de ônibus para decidir onde descer para mudar de linha. Todas essas

requisições podem ser realizadas a quilômetros da área de broadcast com uma tolerância

de poucos minutos de atraso [20] graças ao uso de VDTNs. Nessa sessão veremos alguns

protocolos de roteamento tolerantes à atrasos propostos especificamente para redes

veiculares.

GeOpps

O protocolo GeOpps (Geographical Opportunistic Routing for Vehicular

Networks), em seu funcionamento, considera as rotas sugeridas pelo sistema de

navegação do veículo para escolher o nó com maior probabilidade de se mover em direção

ao destino, na qual será encaminhada a mensagem [21]. Ele calcula a menor distância

entre o destinatário da mensagem e o ponto mais próximo da rota de um veículo vizinho

e faz uma estimativa de tempo no qual o pacote chegará ao destinatário.

Page 45: Projeto de Graduação - Rafael 2 - Poli Monografias

32

O valor da estimativa do tempo de chegada do agregado ao destinatário (Minimum

Estimated Time of Delivery) é utilizado na tomada de decisão do protocolo. Comparando-

se o valor estimado do nó que carrega a informação com a estimativa de seus nós vizinhos,

o protocolo determina para qual veículo o agregado deve ser transferido. Caso o valor de

METD do veículo que carrega o agregado for menor que os valores de seus vizinhos, ele

continuará com a custódia do agregado. Caso contrário, ele encaminhará a informação

para o nó que possuir o menor tempo de entrega estimado. O valor estimado é calculado

em função do trajeto que será percorrido pelo veículo. A Equação 3.5 exibe como o valor

de METD é determinado.

5647 = 64�(8,9) + 64�(9,7),

onde o valor de 64�(�, �)denota o tempo estimado que o veículo levará para percorrer

a rota entre os pontos � e �, 8 denota a posição atual do veículo e 9 denota a posição

mais próxima do trajeto do veículo ao posicionamento do destinatário do agregado (7).

O protocolo funciona enviando periodicamente a posição de destino dos

agregados que ele mantém a custódia. Quando um nó veicular recebe tal informação, o

protocolo estima o valor de5647 para cada posição recebida, a fim de calcular o tempo

estimado que o veículo levaria para carregar o agregado até o destinatário. Com posse

desses valores, o protocolo transmite essas informações de volta aos veículos que lhes

enviaram a mensagem de posicionamento, e assim cada veículo pode determinar se

continua com a custódia do agregado, ou se deve transferi-la para outro veículo.

Figura 3.7 – Cálculo do ponto mais próximo entre o destinatário e os caminhos 8/ e 80

Fonte: [21]

Page 46: Projeto de Graduação - Rafael 2 - Poli Monografias

33

Durante o trajeto dos veículos, caso surja outro nó com melhor tempo estimado

de entrega, a mensagem será encaminhada para ele. O Processo continua até que a

mensagem seja encaminhada ao destino. O GeOpps necessita que informações de

navegação estejam disponíveis na rede, portanto, um dos pontos fracos deste protocolo

diz respeito à privacidade das rotas dos veículos.

VADD

O protocolo VADD (Vehicle-Assisted Data Delivery) [22] assume que a posição

e a trajetória de cada nó é conhecida. Para isso, o veículo deve estar equipado com um

sistema de posicionamento que contenha mapas digitais pré-carregados com informações

das ruas e estatísticas do tráfego, como densidade de veículos em uma via e a velocidade

média de estradas em diferentes partes do dia.

O protocolo defende que em redes esparsamente conectadas, veículos devem

tentar utilizar o canal de comunicação wireless e sempre encaminhar para o nó com maior

velocidade, o que gera os seguinte princípios básicos:

1. Transmitir pelo canal wireless tanto quanto possível.

2. Se o pacote deve ser encaminhado através de certas vias, a via com a maior

velocidade deve ser escolhida.

3. Dada a natureza imprevisível de uma VANET, não se pode esperar que

um pacote seja roteado com sucesso por uma rota ótima pré-computada,

portanto a seleção dinâmica de caminho deve ser continuamente executada

durante o processo de encaminhamento do pacote.

Dados esses princípios, a melhor rota é escolhida com base no menor atraso de

entrega esperado para o pacote. O atraso esperado de entrega de mensagens de um

caminho é modelado em função da densidade veicular, velocidade média e tamanho da

estrada segundo a Equação abaixo:

:;< = =1 −>[email protected].�CD."

@+ >@.BCD .

�CDFCD

,

Page 47: Projeto de Graduação - Rafael 2 - Poli Monografias

34

onde:;< denota o atraso de entrega esperado entre os cruzamentos G e H (I;<), R o

alcance de transmissão, J;< a densidade veicular em I;<, uma constante e K;< a

velocidade média em I;<.

Uma maneira de se ver o modelo de atraso do VADD é representar a rede veicular

como um grafo no qual os nós representam as interseções e as linhas representam as

estradas conectando interseções adjacentes. A direção de cada linha é o sentido do tráfego.

O atraso de entrega entre duas interseções adjacentes é o peso daquela linha. Dado o peso

de cada linha, pode parecer tentador utilizar o algoritmo de Dijkstra para calcular o menor

caminho, mas como não podemos selecionar livremente a linha de saída do pacote

(apenas as linhas com veículos podem ser candidatas à entrega do pacote) e não podemos

prever que direção o pacote tomará na próxima interseção, o algoritmo não pode ser

utilizado. Em outras palavras, é impossível computar o caminho completo de

encaminhamento do pacote.

Figura 3.8 – Um exemplo do modelo de atraso do VADD Fonte: [22]

Desta forma, os autores do protocolos VADD propuseram uma solução baseada

em um conjuntos de equações lineares do atraso estimado:;< e da probabilidade;< de

um pacote ser encaminhado através deI;< no cruzamentoG e limitaram o número de

Page 48: Projeto de Graduação - Rafael 2 - Poli Monografias

35

interseções para realização do cálculo. Depois de montado o sistema de equações lineares

ela pode ser resolvida por um algoritmo de eliminação Gaussiano, por exemplo.

O protocolo pode assumir dois comportamento distintos, dependendo da posição

do nó que carrega o agregado. O primeiro comportamento ocorre quando o nó se encontra

entre dois cruzamentos, em uma linha do grafo e é chamado de modo direto. Nesse caso

o protocolo encaminha a informação de forma gananciosa, encaminhando o pacote para

o vizinho geograficamente mais próximo do destino que é o próximo cruzamento.

Figura 3.9 – Seleção do próximo veículo em um cruzamento Fonte: [22]

O segundo caso se dá quando o veículo se encontra em um cruzamento. Nesse

caso há duas possíveis opções e cada uma delas constitui em um uso diferente do

protocolo. Dada a figura acima, o nó� possui um pacote para encaminhar a dado destino.

Supondo que a direção ótima para esse pacote é o norte, existem duas possibilidades de

encaminhamento: o encaminhamento baseado em localização, priorizará o nó� já que

este está geograficamente mais próximo da direção ótima e pode contar com a sua

interface sem fio para encaminhar pacotes naquela direção no modo direto; enquanto isso

o encaminhamento baseado na direção escolherá o nó8, já que este se desloca na direção

ótima. A primeira opção dá origem ao protocolo Location First Probe (L-VADD)

enquanto o segundo é chamado de Direction First Probe (D-VADD).

Page 49: Projeto de Graduação - Rafael 2 - Poli Monografias

36

GeoDTN+Nav

O protocolo GeoDTN+Nav é um protocolo de abordagem híbrida [23], ou seja,

hora funciona com DTN e hora não, que inclui um modo de funcionamento ganancioso e

um modo perímetro. Ele comuta seu modo de funcionamento (DTN ou não-DTN)

estimando a conectividade da rede baseando-se no número de saltos que um pacote

consegue realizar, qualidade de encaminhamento e direção do vizinho em relação ao

destinatário.

No modo de funcionamento ganancioso, assim como no VADD, o protocolo

escolhe os nós vizinhos para encaminhar as mensagens que estiverem mais próximos do

destino. Entretanto, tal abordagem pode fazer com que a informação seja encaminhada

para um nó (máximo local) que não possui vizinhos próximos ao destinatário. Quando

isto ocorre, o protocolo muda seu comportamento para o modo perímetro.

No modo perímetro, a mensagem é encaminhada segundo a regra da mão-direita.

Inicialmente um nó n define um vetor em direção ao destino (vetor inicial de restrição -

LMN) e um vetor originalKN voltado para o nó que lhe enviou a informação. As mensagens

serão encaminhadas para o primeiro nóO, no sentido anti-horário deKN, que puder se

comunicar com n sem cruzar o vetor inicial de restrição. Quando uma mensagem é

encaminhada para um nó mais próximo do destino o protocolo volta a funcionar em modo

ganancioso, caso contrário, a mensagem volta para o nó que a encaminhou e é descartada.

Uma questão importante do modo de funcionamento do protocolo é quando ele

deve mudar para o modo DTN e quando ele deve mudar para o modo ganancioso. O

GeoDTN+Nav deve mudar para o modo DTN quando a qualidade do padrão de

mobilidade do nó e o particionamento da rede, usando uma função de custo, superarem

um determinado patamar. E ele deve mudar para o modo ganancioso quando um nó

intermediário estiver mais próximo do destino que o nó que ativou o modo DTN.

A qualidade de encaminhamento é obtida através de uma interface de navegação

virtual (VNI - Virtual Navegation Interface) que abstrai informações das camadas

inferiores (sistemas de navegação, mapas etc). Já o particionamento da rede é conseguido

baseando-se na quantidade de saltos que a mensagem realizou quando o protocolo estava

em modo perímetro. Desta forma, segundo os autores, quanto maior a quantidade de

saltos maior a probabilidade da rede estar desconectada.

Page 50: Projeto de Graduação - Rafael 2 - Poli Monografias

37

3.3 – Contextualização

Neste projeto, o uso de uma DTN foi o caminho encontrado para resolver os

problemas de conectividade e segmentação das redes veiculares expostos no capítulo

anterior. As quatro primeiras camadas do modelo TCP/IP serão mantidas e uma camada

de agregação armazenará o pacote no buffer de cada nó até que este entre no alcance de

seu próximo salto.

O principal objetivo desse trabalho é o desenvolvimento de um protocolo de

roteamento para bundles no sistema que será proposto no capítulo seguinte. Todo o

roteamento será feito nessa nova camada, enquanto a camada IP apenas transmitirá

pacotes nos links ponto a ponto entre dois nós diretamente conectados. O novo protocolo

transmitirá os bundles de um veículo até um gateway DTN, que será uma RSU. Alguns

conceitos empregados nos protocolos apresentados foram incorporados no novo

protocolo, especialmente aqueles empregados em VDTNs

Page 51: Projeto de Graduação - Rafael 2 - Poli Monografias

38

Capítulo 4

Proposta

4.1 – Motivação

A promessa de aumento de segurança no trânsito tem sido um dos principais

incentivos ao desenvolvimento de redes veiculares. Por esse motivo, as aplicações de

segurança receberam tratamento diferencial dos órgãos reguladores e dos fabricantes de

veículos. Essas aplicações impõem requisitos estritos de latência e confiabilidade para as

mensagens [4], mas devem conviver com o complexo ambiente de VANETs sujeitos a

desconexões frequentes, alta escalabilidade e possível não existência de um caminho fim

a fim entre origem e destino das mensagens.

Considere como cenário uma rodovia. Pode haver momentos, conforme

mencionado no capítulo 1, em que a densidade de veículos na pista seja pequena o

suficiente para haver segmentação da rede (a densidade de veículos que participem da

rede pode ser ainda menor) e a conectividade fim-a-fim pode nunca existir. Na verdade,

um nó pode até mesmo permanecer isolado por longos períodos de tempo. Nesse cenário,

uma aplicação que envie uma mensagem com um pedido de socorro, pode jamais alcançar

o seu destino.

O cenário descrito acima é altamente provável em rodovias pouco movimentadas

durante horário de baixo tráfego. Para comprovar, podemos utilizar de exemplo o do

trecho da rodovia BR-290 ente Eldorado do Sul e Osório, administrado pela CONCEPA

(Concessionária da Rodovia Osório-Porto Alegre), onde o site da rodovia [24] mostra que

há períodos do dia que a densidade de carros é inferior a 1 por minuto após as 2h.

Page 52: Projeto de Graduação - Rafael 2 - Poli Monografias

39

Figura 4.1 – Densidade de tráfego na BR-290 Fonte: [24]

Nesse caso, os protocolos da pilha TCP/IP não são capazes de encaminhar os

pacotes, já que não há conectividade ininterrupta entre origem e destino. Para garantir a

entrega das mensagens, a arquitetura dessa rede deve prever o uso de DTNs. Mesmo com

todos os NEs (Network Elements) suportando o modelo DTN com sua camada de bundle,

os pacotes ainda precisarão ser roteados para seus destinos. Para tal, deve se utilizar um

protocolo como aqueles apresentados no capítulo anterior.

Os protocolos baseados em flood têm a desvantagem de onerarem a rede com

múltiplas cópias de uma mesma mensagem, em especial em momentos de alta densidade

de nós, além de utilizarem-se pouco da óbvia previsibilidade do movimento dos veículos

em uma rodovia. Protocolos baseados em utilidade como o CAR, tornar-se-iam uma boa

opção, mas devido a simetria de movimento dos veículos na rodovia, parâmetros como

mobilidade e taxa de conectividade dos nós não são bons critérios na hora de se escolher

o próximo salto da mensagem.

Já os protocolos propostos para atender à VDTNs apresentados, necessitam de um

sistema de mapas integrado ao sistema de navegação do veículo. O GeOpps possui uma

abordagem simples, mas que ignora o fato de que em uma rodovia, os veículos se moverão

apenas ao longo da mesma, tornando o uso de mapas desnecessário. O mesmo vale para

Page 53: Projeto de Graduação - Rafael 2 - Poli Monografias

40

o VADD, que no caso de um longo trecho sem cruzamentos, funcionará somente em

modo ganancioso, de forma muito parecida com o GeOpps. Por sua vez, o protocolo

GeoDTN+Nav também se utilizará do modo ganancioso para o encaminhamento até que

encontre um nó que não pode mais encaminhar pacotes. Nesse caso ele entenderá que há

um obstáculo entre o máximo local e o destino e tentará contornar esse obstáculo através

do modo perímetro. Como numa rodovia não se supõe a existência de cruzamentos, a

suposição de que se pode contornar o obstáculo está enganada e pode levar a uma latência

ainda maior para a entrega da mensagem a seu destino.

Tendo isso em mente, a proposta desse trabalho é desenvolver um protocolo que

permita a entrega do pacote ao seu destino com a menor latência possível em uma rodovia

sem que nos utilizemos de mecanismos de flood para tal. O protocolo deve se utilizar da

trajetória conhecida de rodovias e do fluxo contínuo, ainda que esparso, de veículos para

escolher o melhor caminho sem utilizar-se de mapas que podem não estar disponíveis em

todos os sistemas, ou mesmo conter versões discrepantes entre dois nós distintos. Um

sistema de posicionamento, seja ele por satélite tal como o GPS (Global Positioning

System) ou por triangulação ainda será necessário. O protocolo deve entregar a mensagem

para um destino externo ao domínio DTN, alcançado somente por um nó de infraestrutura,

que chamaremos de “Gateway”, que fará o papel de borda da DTN. O protocolo também

deverá garantir a resposta da mensagem (caminho inverso) do gateway até o nó de origem.

4.2 – Cenário considerado, arquitetura e premissas

O cenário descrito acima corresponde à topologia da nossa VANET. Nele,

veículos só podem se mover ao longo de uma estrada sem interseções. Há gateways

espalhados periodicamente no acostamento ao longo da via, equidistantes entre si. Os

gateways são nós de infraestrutura que funcionam como bordas da rede DTN e se

conectam com a rede externa onde se encontra o endereço de destino dos pacotes.

A arquitetura da solução segue o modelo DTN apresentado no capítulo anterior.

Os veículos e as RSU’s fazem parte de um mesmo domínio DTN, enquanto a rede externa

(infraestrutura) segue o modelo TCP/IP convencional. A integração entre a DTN e a

infraestrutura é feita pela RSU, que portanto tem o papel de gateway na DTN e funciona

como elemento de borda entre os domínios tolerante a atraso e não-tolerante a atraso.

Page 54: Projeto de Graduação - Rafael 2 - Poli Monografias

41

Dentro do domínio DTN o roteamento se dá a nível de agregação onde mais de

um segmento UDP pode ser encapsulado em um único bundle que é roteado por múltiplos

saltos através de veículos na estrada até o gateway. O gateway é o destino do bundle,

mas não da mensagem, que continuará a ser roteada até o seu destino final na

infraestrutura pela camada de rede. A figura abaixo denota a arquitetura da solução:

Figura 4.2 - Arquitetura proposta

A figura 4.3 demonstra uma requisição feita por um veículo que se envolve em

uma colisão. O destino da requisição é uma rede externa ao domínio DTN, dentro da

nuvem da infraestrutura (seja ele na internet ou em uma intranet do serviço de

emergência). Para encaminhar a sua requisição para essa rede externa, o veículo deve

encaminhar seus pacotes para uma das RSUs na figura. Cada RSU possui comunicação

com a rede externa e portanto, faz o papel de gateway da DTN. Diversas RSUs como as

da figura devem estar espalhadas ao longo do acostamento da rodovia, todas a uma

distância : da anterior. A distância constante adotada é um fator de previsibilidade que

impomos ao sistema. Essa previsibilidade será importante para o desenvolvimento do

protocolo de roteamento, já que poderemos facilmente inferir a posição da próxima RSU

sem a necessidade de manter essa informação armazenada em cada nó, ou atualizada por

trocas de mensagens de controle.

Continuando com a troca de mensagens, no caso da figura abaixo, como não há

conexão direta do requisitante com uma RSU, aquele deve encaminhar seus bundles para

outro veículo que por sua vez se deslocará até entrar em contato com uma RSU ou os

reencaminhará a outro veículo que poderá fazê-lo mais rapidamente.

Page 55: Projeto de Graduação - Rafael 2 - Poli Monografias

42

Figura 4.3 – Entrega da mensagem no cenário proposto Para fins de simulação, apenas uma requisição será feita por vez, de forma a nunca

existir mais de um pacote armazenado no buffer de um nó, que consequentemente sempre

terá memória disponível. Dito isto, não será levado em conta o gerenciamento de buffer

e demais implicações de se lidar com múltiplas mensagens, como comparação de buffers

(sessão anti-entropia) e enfileiramento de mensagens, o protocolo sempre conseguirá

transmitir a mensagem quando o canal estiver disponível e não haverá tratamento de

exceções. Por fim, um sistema de posicionamento está sempre presente em cada nó, de

forma que este sempre seja conhecedor de sua posição atual.

Page 56: Projeto de Graduação - Rafael 2 - Poli Monografias

43

4.3 – Cenários de teste

Para se tornar viável, o protocolo deve ser testado sob todas as condições da via.

Ao longo do dia a densidade de veículos de uma via pode variar consideravelmente. Em

[24] foram medidas picos de cinquenta e quatro carros por minuto em um trecho de

aproximadamente 30km entre Porto Alegre e Gravataí. Essa média de dois carros por

quilômetro ainda é baixa, o que torna esse trecho de rodovia ideal para este protocolo.

Entretanto, um acidente, obras na pista, ou congestionamentos por motivos diversos em

outras situações críticas podem elevar essa densidade em pequenos momentos ao longo

do dia. Faz-se necessário que o protocolo também suporte esse tipo de cenário, a um custo

talvez de uma menor eficiência, a fim que ele seja confiável em qualquer momento.

Para isso, dois testes foram desenvolvidos, um deles com apenas quatro veículos

transitando pela rodovia bem espaçados entre si. O objetivo é testar o protocolo em uma

rede descontínua em um cenário possível, onde a densidade de veículos é próxima

daquela obtida após as 0h em [24]. Também nesse cenário espera-se observar a tomada

de decisão do protocolo, para isso o movimento dos veículos é tal que o nó 0 terá duas

opções de nós para encaminhar o seu pacote, mas deverá escolher aquele com a melhor

métrica.

Já no segundo cenário, será testado o outro caso extremo, isto é, uma rodovia com

alto tráfego em ambos os sentidos. Aqui, vinte e seis veículos irão trafegar, treze em cada

direção, de forma equidistantes e a velocidades constantes. O espaçamento dos veículos

em uma pista será tal que não haverá alcance para transmissão entre eles.

4.4 – O protocolo

Diferentemente das transferências na internet, onde o roteamento é realizado

somente na camada de rede do modelo TCP/IP, o roteamento DTN é terminado na camada

de agregação. As camadas inferiores possuem o mesmo comportamento da internet, mas

tratam saltos intermediários como o destino final de cada pacote. Somente a camada de

agregação conhecerá o destino final da aplicação e encaminhará o bundle através da DTN.

A diferença entre o roteamento convencional (internet) e o roteamento DTN é

mostrado na figura abaixo. Os roteadores da internet encaminham pacotes de camada de

Page 57: Projeto de Graduação - Rafael 2 - Poli Monografias

44

rede em múltiplos saltos até o seu destino, onde a camada de transporte estabelece uma

sessão. Enquanto isso, cada salto de um roteamento DTN estabelece uma sessão completa

da camada de transporte, isto é, do ponto de vista das camadas inferiores (1 a 4) a conexão

é do tipo ponto-a-ponto. Somente a camada superior de agregação reconhecerá que o

destino final do pacote está outro host, acessível por múltiplos saltos. A camada de

agregação roteará o bundle via múltiplos saltos até seu destino final.

Figura 4.4 - Transferência convencional x Transferência DTN

Quanto ao funcionamento do protocolo em si, ele se dará em duas partes: em um

modo chamado “oportunístico” quando a mensagem tiver destino na infraestrutura e no

modo ganancioso quando tiver destino em um nó ad hoc (veículo).

Primeiramente, os nós participantes enviarão beacons contendo a sua posição, a

métrica e uma flag para identificar se é um gateway ou não. O valor da flag deve ser 1

para um nó gateway. Se um beacon é recebido com a flag acionada (1), o nó atualizará

sua própria métrica “tempo”. Essa métrica se traduz na última vez em que este nó entrou

em contato com um gateway. Com base nas informações recebidas pelos beacons de nós

Page 58: Projeto de Graduação - Rafael 2 - Poli Monografias

45

ao alcance da interface de rádio, cada elemento de rede montará uma tabela de contatos

contendo a posição, a métrica e o flag do vizinho.

Uma mensagem a ser transmitida (seja por requisição de camada superior, em

caso do nó originar a mensagem, ou armazenada no buffer para ser retransmitida) possui

um flag que denota o modo de encaminhamento. Caso a flag esteja ativada, o nó

transmissor entenderá que deve encaminhá-la de forma gananciosa, caso contrário o

modo oportunístico deve ser utilizado. A flag é ativada sempre que a mensagem atravessa

um gateway, o que só vai ocorrer quando a mensagem for originada em uma rede externa

ao domínio DTN ou no próprio gateway.

Caso a flag esteja desativada, o encaminhamento se dará no modo oportunístico.

Aqui o protocolo se faz valer do conhecimento prévio da topologia e da mobilidade de

cada nó. Sabe-se que a velocidade média dos nós é aproximadamente constante, já que se

supõe que todos os veículos respeitarão a velocidade limite da pista e que a os nós só se

locomoverão ao longo da rodovia. Soma-se a isso o fato de os gateways estarem

uniformemente distribuídos na via e equidistantes entre si. O protocolo assume, então,

que um nó que entrou em contato com um gateway há mais tempo tem maior

probabilidade de entrar em contato com o próximo gateway.

Portanto, no modo oportunístico o nó transmissor consultará sua lista de contatos

e procurará retransmitir a mensagem para um nó com a flag de gateway ativada. Caso não

haja nenhum, a transmissão será feita para o nó com a maior métrica, ou seja, o nó que

atravessou a mais tempo um gateway. O processo será repetido até que a mensagem

chegue ao gateway, que então o encaminhará a seu destino.

No caso da flag da mensagem estar ativada, o protocolo mudará sua forma de

encaminhamento para o modo ganancioso. Assim como em outros protocolos já

demonstrados, neste modo o nó transmissor procurará sempre encaminhar a mensagem

para um contato geograficamente mais próximo do destino.

Vale ressaltar que cada nó ad hoc só possui conhecimento da posição de seus

contatos. Quando uma mensagem é encaminhada no modo oportunístico, esta deve conter

a posição do nó de origem. Apenas o nó gateway deve manter uma tabela com a posição

dos nós ad hoc. Dessa forma, quando uma mensagem chegar da infraestrutura com

destino a um nó na rede DTN, apenas o gateway que recebeu a mensagem daquele nó

anteriormente conhecerá uma rota para aquele nó. Quando a mensagem for encaminhada

no modo ganancioso, o campo posição deverá ser preenchido pelo gateway com a posição

esperada do nó de destino considerando a velocidade média da pista.

Page 59: Projeto de Graduação - Rafael 2 - Poli Monografias

46

De forma resumida, no protocolo cada veículo deve tomar o conjunto de decisões

ilustrados no diagrama abaixo:

Há mensagem no

buffer?

Sim

Qual o modo de

operação?Ganancioso

Há contato mais

próximo do

destino?

Oportunístico

Há contato com

maior métrica?

SimSim Transmitir

Destino está nos

contatos?NãoNão

Possui RSU nos

contatos?

Sim Sim

Não

Apagar buffer

Não

Não

Figura 4.5 - Diagrama de blocos de um veículo

De forma análoga, uma RSU também deve tomar algumas decisões de

encaminhamento de bundles. Entretanto, por ser uma estrutura fixa ela participa de forma

passiva do roteamento dito oportunístico. Seu único papel nesse modo é o de encaminhar

o pacote para a infraestrutura. Já para o modo ganancioso, a RSU possui o papel

fundamental de ativar o flag de modo ganancioso para permitir que nos saltos seguintes

o pacote seja encaminhado neste modo. Além disso, nesse caso ela funciona como um nó

DTN e armazena o bundle em seu buffer a espera de um contato válido para transmiti-lo.

O diagrama abaixo resume a operação do protocolo em uma RSU:

Page 60: Projeto de Graduação - Rafael 2 - Poli Monografias

47

Recebe Mensagem

Qual a origem da

mensagem?

Retirar bundle e

transmitir para a

infraestrutura

Encapsular bundle

ativando flag de modo

ganancioso

Veículo DTN Infraestrutura

Transmitir para

DTN

Há contato mais

próximo do

destino?

Sim

Não

Figura 4.6 - Diagrama de blocos de uma RSU

A desvantagem dessa abordagem é que se o veículo não tiver feito nenhuma

requisição ao gateway, esse não conhecerá sua posição e não saberá encaminhar o pacote.

Do ponto de vista de segurança, isso pode ser visto como uma vantagem, já que pacotes

serão enviados para a rede ad hoc apenas se uma sessão já houver sido estabelecida pelo

veículo.

A seguir, o pseudocódigo com a lógica de funcionamento do protocolo:

Page 61: Projeto de Graduação - Rafael 2 - Poli Monografias

48

Loop Infinito {

envia e recebe beacons de nós vizinhos contendo métrica, posição e tempo

monta tabela de contatos

para cada beacon recebido {

Se for um Gateway {

atualizar própria métrica

}

}

Há mensagem no buffer?

sim {

Se este nó for um Gateway {

seta flag de modo ganancioso

}

Qual é o modo de operação?

Oportunístico {

para cada contato {

é um Gateway?

sim {

Transmitir para contato

limpar buffer

encerrar

}

não {

comparar métricas

}

}

há contato com métrica melhor?

sim {

transmitir mensagem para o contato

com a melhor métrica

limpar buffer

}

não {

mantém mensagem no buffer

Page 62: Projeto de Graduação - Rafael 2 - Poli Monografias

49

}

}

Ganancioso {

calcula distância entre esse nó e o destino

calcular distância entre cada contato e destino

se houver contato cuja distância é menor {

Transmitir para contato com a menor

distância

limpar buffer

}

}

}

não {

escuta o meio

se receber mensagem {

armazena no buffer

se este nó for um gateway {

armazena posição do nó de origem

}

}

}

}

4.5 – Considerações

A proposta tem como objetivo formular um protocolo de roteamento em camada

de agregação que se aproveite da previsibilidade da rede para entregar um agregado

(bundle) a seu destino. O cenário teorizado visa atender os requisitos de previsibilidade

necessários para que o protocolo opere corretamente de forma palpável e com hardware

convencional. Uma RSU nada mais é do que um AP (Access Point) e cada veículo deve

estar equipado somente com uma placa de rede wireless compatível com o padrão IEE

802.11a.

Page 63: Projeto de Graduação - Rafael 2 - Poli Monografias

50

O protocolo e o cenário foram pensados de forma a otimizar o tempo entrega de

uma mensagem originada em um veículo para o destino atendendo os requisitos de

latência de aplicações de segurança que acionam serviços de emergência públicos. Como

mostrado em [7], o tempo de resposta entre um acidente e acionamento do serviço de

emergência é crítico para reduzir a taxa de mortalidade em acidentes. O modo

oportunístico do protocolo foi teorizado com esse intuito. Um protocolo de roteamento

não pode servir para uma única aplicação e tampouco em uma única direção. Portanto um

modo ganancioso inspirado naqueles dos protocolos VADD e GeoDTN+Nav foi

desenvolvido com a única preocupação de estabelecer o caminho de volta de um pacote.

Dessa forma, sessões que necessitem de confirmação de resposta como o protocolo TCP,

podem ser implementados, assim como aplicações interativas, que não são o foco desse

projeto.

O capítulo seguinte mostra o resultado da simulação desse protocolo em dois

testes. Para comprovarmos a eficácia desse protocolo, a simulação do protocolo

Epidêmico para os dois testes também será realizada. Tal protocolo foi escolhido tendo

em vista a baixa complexidade e a menor latência teórica que ele apresenta em relação

aos demais protocolos.

Page 64: Projeto de Graduação - Rafael 2 - Poli Monografias

51

Capítulo 5

Simulação e Resultados

5.1 – Simulador

Para simular a operação do protocolo, foi utilizado o software NS-2. O NS-2 é

uma ferramenta de simulação de código livre desenvolvido para sistemas operacionais

baseados em unix. É um simulador de eventos discreto resultante de um projeto conhecido

como VINIT (Virtual InterNetwork Testbed) que teve a participação de importantes

instituições como DARPA, USC/ISI, Xerox e Universidade de Berkley.

O simulador NS é baseado em duas linguagens: C++ para a estrutura básica e um

interpretador OTcl (Object Tool Command Language) como um frontend, Ele suporta

uma hierarquia de classes compiladas em C++ e uma hierarquia interpretada em OTcl.

Ambas possuem correspondência de um pra um entre si.

A hierarquia compilada em C++ permite alcançar uma maior eficiência na

manipulação de bytes, cabeçalhos de pacotes e na implementação de algoritmos que

trabalhem com grandes conjuntos de dados. Para essas tarefas o tempo de execução é

mais importante que o tempo de turn-around (execução da simulação, encontrar bugs,

recompilar e re-executar).

Por outro lado, quando as classes da hierarquia compilada são suficientes, ou

deseja-se apenas variar parâmetros e configurações destas classes, ou mesmo explorar

rapidamente um grande número de cenários, o uso do OTcl é recomendado. Nesses casos,

o tempo de interação (mudança do modelo e execução da simulação) é mais importante.

Como o cenário considerado nesse trabalho contempla apenas um pacote por vez

na rede (e consequentemente na simulação), o tempo de execução não é tão importante

quanto o tempo de turn-around. Por isso, a linguagem utilizada foi o OTcl.

5.1.1 – Arquitetura do NS-2

Page 65: Projeto de Graduação - Rafael 2 - Poli Monografias

52

Como mencionado anteriormente, o ns-2 é um simulador de eventos discretos

orientado a objetos. Os eventos são processador por um dos cinco tipos de agendadores,

sendo o padrão o calendar queue. O agendador seleciona o próximo evento agendado

para mais cedo, executa-o por completo e retorna para executar o próximo evento. O

agendador é mono-tarefa, portanto apenas um evento é processado de cada vez. A unidade

de tempo utilizada pelo agendador é o segundo.

Um evento é manipulado chamando-se a classe de Handler apropriada. A classe

de Handler mais importante é a NSObject, com a TclObject como sua gêmea no mundo

OTcl. Elas provêm todas as funções básicas que permitem que objetos interajam uns com

os outros. NSObject/TclObject são as classes pais para algumas importantes outras

classes, como a Classifier, a Connector e a TraceFile.

Figura 5.1 – Classe NSObject Fonte: [26]

5.1.2 – O nó móvel

Um nó sempre recebe um pacote do seu ponto de entrada. O primeiro passo que

um pacote toma é ir para um classificador. A função do classificador é a de examinar os

campos dos pacotes, normalmente os endereços de origem e destino. Ela deve então

mapear estes valores para uma interface de saída do objeto para o próximo recipiente do

pacote. Isso pode ser outro classificador ou um agente.

Agentes pertencem ao grupo dos conectores. Quando um conector recebe um

pacote, ele executa algumas funções e entrega o pacote para seu vizinho ou o descarta.

Page 66: Projeto de Graduação - Rafael 2 - Poli Monografias

53

Existem vários conectores como Agent, Link Layer (LL), Interface Priority Queue (IFq),

MAC (Medium Access Control) module e Network Interface (NetIF).

Figura 5.2 – Conectores Fonte: [26]

5.1.3 – Gerador de tráfego

Os geradores de tráfico são os objetos que injetarão tráfego na rede. Os pacotes

de dados são sempre injetados por um agente como o TCP (Transmission Control

Protocol) ou o UDP (User Datagram Protocol), que são agregados à um nó. Para

emissão, o agente envia o pacote para o ponto de entrada de seu nó. Para recepção, o

agente recebe o pacote através dos classificadores do nó.

Um agente transmissor precisa de um agente receptor para funcionar como destino

dos seus pacotes. No caso do agente transmissor ser o TCP, seu correspondente receptor

será o sink (tanque) e tem a incumbência de gerar pacotes de reconhecimento (ACK –

Acknowledge). No cado do agente transmissor ser o UDP, o receptor chama-se null (nulo).

Page 67: Projeto de Graduação - Rafael 2 - Poli Monografias

54

O agente, entretanto, não é a origem dos dados. Um processo alimenta o agente emissor

com os dados, ou mais especificamente, um gerador de tráfego.

Para a simulação, um gerador de tráfego CBR (Constant Bit Rate) com um agente

UDP foi utilizado. Com essa configuração é possível estudar a real performance da rede

ad hoc sem qualquer influência indesejada e desconhecida de outros protocolos. Isso se

aproxima bastante do comportamento do mundo real.

5.1.4 – Arquivos de Movimento e de Trace

Para simular redes móveis, além de definir a topologia (declarando os nós no

objeto simulador), podemos introduzir movimento aos nós através de um arquivo de

movimento. Esse arquivo contém as instruções como posição inicial, destino e velocidade

de cada nó. Em suma, esse arquivo gerará eventos para o agendador com a posição dos

nós ao longo do tempo de simulação.

O resultado dessa simulação são dois arquivos de trace: um arquivo de trace

normal (criado pelos comandos $ns_ trace-all) e um arquivo de trace nam ($ns_ nam-

traceall).

O arquivo de trace nam é um derivado do arquivo de trace normal com o sufixo

“,nam”. Ele contém a informação para visualizar o fluxo dos pacotes e o movimento dos

nós na ferramente homônima “nam”. Nam é um ferramenta de animação baseada em

Tcl/TK para visualização de traces de simulações ou mesmo de traces de dados reais.

Para estudar o comportamento de um protocolo, deve-se observar o arquivo de

trace normal, com o sufixo “.tr”. Ele contém todos os dados de trace produzidos pela

simulação. No script de configuração TCL pode-se dizer ao simulador que tipo de

informação deve ser rastreada: agente, rota ou MAC.

Page 68: Projeto de Graduação - Rafael 2 - Poli Monografias

55

Figura 5.3 – Saídas do NS-2 Fonte: [26]

5.2 – Parâmetros de simulação

A proposta desse trabalho é desenvolver um protocolo que seja compatível com

hardware comum de prateleira que execute padrões conhecidos de protocolos de camadas

inferiores. Para tanto, nossa camada física constitui de uma antena omnidirecional com

potência de transmissão de 20dBm a uma frequência de 2,4GHz, que são valores padrão

de mercado para dispositivos 802.11b/g:

# Potência de transmissão (em Watts)

set opt(Pt) 0.1

# Equivalente a 20 dBmPa

# Frequencias de operacao

set opt(freq) 2437e6

Page 69: Projeto de Graduação - Rafael 2 - Poli Monografias

56

O modelo de propagação utilizado foi o free space. Além de oferecer um cálculo

mais simples do alcance do sinal, ele nos oferece um valor inferior de alcance do que no

two-ray ground, o que colocará o novo protocolo sob condições ligeiramente mais

agressivas de transmissão. Para compensar, as taxas de transmissão foram limitadas a

6Mbps, obtendo uma relação SNR de 7dB com 0.001 de PER.

O cálculo do alcance é realizado pela procedure calculaAlcance abaixo:

proc calculaAlcance { snr } {

global opt

# calculo do alcance de acordo com o modelo de propagacao FreeSpace

# Pr = Pt*Gt*Gr*lambda^2/(4p)^2 * L * d^2

set PI 3.14159265359

set RXPwr [expr $opt(noisePower)*pow(10,$snr/10.0)]

# Cálculo realizado: snrDB = 10 log (pr / noisePower)

puts "Pr= $RXPwr"

set lambda [expr 3.0e8 / $opt(freq)]

# Cálculo realizado: lambda = c / f

set aux [expr (4.0 * $PI) / $lambda ]

set opt(alcance) [expr sqrt($opt(Pt) / ($RXPwr * $aux * $aux))]

# Cálculo realizado: d^2 = pt*gt*gr*lambda^2 / (4PI)^2 *L*pr

puts stderr "Alcance : $opt(alcance)"

Introduzindo-se o SNR (Signal to Noise Ratio), a procedure calcula e retorna o

alcance de cada nó através da equação apresentada no modelo free space.

5.2.1 – Configurando os nós

Page 70: Projeto de Graduação - Rafael 2 - Poli Monografias

57

Antes de instanciar os nós, devemos configurar o objeto “node” para definirmos

alguns parâmetros de camada física, como o tipo de antena, canal de transmissão, modelo

de propagação e tamanho da fila (em bytes) das interfaces. Mais importante, definimos

aqui o tipo de link físico que será sem fio.

$ns_ node-config \

-adhocRouting NOAH \

-llType LL \

-macType Mac/802_11/Multirate \

-ifqType Queue/DropTail/PriQueue \

-ifqLen 10 \

-antType Antenna/OmniAntenna \

-propType Propagation/FreeSpace/PowerAware \

-phyType Phy/WirelessPhy/PowerAware \

-channel [new Channel/WirelessChannel/PowerAware]

Aqui também definimos os conectores que serão utilizados. O Link Layer Object

será o LL, que suporta os protocolos e mecanismos padrões da camada de enlace, como

a fragmentação e remontagem dos pacotes, enfileiramento, retransmissões a nível de

enlace, etc. O Interface Priority Queue configurado é do tipo Drop Tail, onde não há

diferenciação do tráfego e os pacotes mais recentes são descartados quando a fila da

interface estiver cheia. Como só haverá um pacote na rede de cada vez, foi decido utilizar

o tipo de enfileiramento mais simples.

O agente MAC escolhido foi o 802.11, padrão IEEE. O NS-2 implementa ambas

as funções de coordenação DFWMAC (Distributed Foundation Medium Access Control),

ele utiliza CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance) para pacotes

broadcast e multicast e RTS (Request To Send) / CTS (Clear To Send) para pacotes

unicast.

Por fim, definimos o Routing Agent Object (Rtagent), que implementa o protocolo

de roteamento a ser utilizado. Para redes ad hoc, é comum utilizar-se AODV (Ad hoc On-

Demand Distance Vector) ou o DSDV (Destination-Sequenced Distance Vector).

Entretanto, como o objetivo do trabalho é desenvolver um protocolo para substituir os

dois anteriores (que são ineficientes para o nosso cenário), esse agente foi configurado

Page 71: Projeto de Graduação - Rafael 2 - Poli Monografias

58

com a opção NOAH (No Ad Hoc). O NOAH é um agente de roteamento wireless que

suporta apenas a comunicação direta entre os nós, de forma que o cenário de múltiplos

saltos será criado por cima desse agente. Isto é, acima dele teremos a camada de agregação

armazenando o pacote e o novo protocolo roteando o agregado por meio de múltiplos

saltos (multihop).

5.2.2 – Topologia

Antes de definir os nós propriamente ditos no código, faz-se necessário uma breve

explicação sobre a topologia a ser utilizada.

No primeiro teste serão considerados seis nós dispostos ao longo de uma rodovia

que segue ao longo do eixo vertical. Desses, quatro são veículos e dois são elementos de

infraestrutura (RSUs) conectados à uma rede externa que contém o destino das

solicitações feitas pelos veículos.

Figura 5.4 – Topologia Inicial

Page 72: Projeto de Graduação - Rafael 2 - Poli Monografias

59

Em um primeiro momento, os nós 0 e 3 estão próximos à RSU 1 e se deslocam

para cima no eixo vertical, enquanto o nó 4 está próximo à RSU 2 e se desloca para baixo

ao longo do mesmo eixo. As RSUs, como unidades de acostamento, ficarão imóveis,

assim como o nó 5, situado verticalmente mais abaixo dos demais. Os nós 0, 3 e 4 são

veículos em movimento na rodovia, enquanto o nó 5 é um veículo que entrará nesse trecho

da via em um futuro próximo, mas deve ser declarado desde o início, por isso, ficará mais

abaixo, fora do alcance da RSU 1.

Já no segundo momento, o nó 0 para no meio da rodovia e requisita serviço de

emergência, porém não há nenhum veículo ou RSU ao seu alcance para ele encaminhar

a mensagem. Deverá portanto esperar os nós 3 e 4 se deslocarem até estarem ao alcance

para que a mensagem seja enviada. A velocidade e posição desses 2 veículos foi calculada

de forma que eles entrarão na área de alcance do nó 0 ao mesmo tempo e o protocolo de

roteamento deverá escolher a melhor opção para encaminhar a mensagem. Paralelamente,

o nó 5 inicia seu movimento para cima à velocidade constante, assim como os demais

veículos.

O protocolo deverá fazer com que a mensagem gerada no nó 0 seja encaminhada

para o nó mais próximo da próxima RSU, já que suas velocidades são as mesmas. Como

vemos na figura, o veículo 4 está mais próximo da RSU 1 do que o veículo 3 está da RSU

2. Portanto, esperamos que o protocolo seja capaz de encaminhá-lo para esse veículo.

Page 73: Projeto de Graduação - Rafael 2 - Poli Monografias

60

Figura 5.5 – Nó 0 deseja enviar uma mensagem

Já para o teste dois, a topologia é semelhante, com os nós 1 e 2 representando

RSU’s fixas e o nó 0 representando um veículo que em determinado momento para e

solicita serviço de emergência. Além desses, outros 25 veículos estão dispostos em duas

faixas. Os da esquerda se deslocam para baixo e os da direita se deslocam para cima ao

longo da rodovia de acordo com sua mão. A densidade de veículos será maior, e em

determinados momentos pode haver conectividade fim a fim entre o nó 0 e uma RSU. O

que se verifica, entretanto é que essa conectividade não existe no momento em que o

serviço de emergência é requisitado.

Page 74: Projeto de Graduação - Rafael 2 - Poli Monografias

61

Figura 5.6 – Topologia do Teste 2

5.2.3 – Instanciando os nós

Como visto na topologia, a simulação precisa instanciar seis nós, para isso, um

laço “for” de 0 a 5 foi criado onde a variável “i” substitui o índice do nó. Cada nó é então

declarado como um objeto do tipo node na classe ns:

set node_($i) [$ns_ node]

Dentro desse laço, serão declarados cada vetor e argumentos que queremos

armazenar em cada nó. O vetor de contatos manterá a lista de contatos de cada nó que

será calculado pela procedure “findContacts”.

# Vetor de contatos de um nó

set contacts_($i) [list $i]

Page 75: Projeto de Graduação - Rafael 2 - Poli Monografias

62

A variável time_ mantém a data (dia, hora, minutos, segundos e frações de

segundos) em que um veículo trocou beacons com uma RSU. O valor padrão é -1. Esse

valor será repassado aos outros nós a cada beacon e será usado de métrica.

# Vetor que armazena o tempo em que do nó i passou pelo AP

set time_($i) -1

Um nó deve diferenciar uma RSU e de um veículo, para isso foi criada a variável

FGW_, que será 1 em caso do nó ser uma RSU e se manterá desabilitada caso contrário.

A chamada flag de gateway será trocada nas atualizações do protocolo com os nós

vizinhos, de forma que este possa atualizar sua variável time_ além de servir como uma

métrica de maior peso que a time_.

# Flag de Gateway

if {$i == 1 || $i == 2 } {

set FGW_($i) 1

} else {

set FGW_($i) 0

}

Quando um pacote é originado em uma RSU, ou mesmo atravessa uma RSU vinda

da rede externa com destino na instância DTN, a RSU define um flag de modo

ganancioso, que dirá aos nós seguintes que essa mensagem deverá ser encaminhada em

modo ganancioso. A variável FGreedy armazena essa flag.

#Flag de Modo Ganancioso

set FGreedy 0

Por fim, dois vetores armazenarão os geradores e os recebedores de tráfego de

cada nó, que serão ativados quando um nó tiver que encaminhar a mensagem para o nó

seguinte. O gerador de tráfego simulará tanto o pacote sendo gerado no nó 0 ou na RSU

quanto o pacote sendo retirado do buffer e retransmitido para outro nó na VDTN.

# Armazena os geradores de trafego de cada no

Page 76: Projeto de Graduação - Rafael 2 - Poli Monografias

63

set cbr_($i) { }

# Armazena os recebedores de trafego de cada no

set loss_($i) [new Agent/LossMonitor]

Vale ressaltar que o valor da posição dos nós também é um atributo do nó. Porém,

diferentemente dos acima, os valores das posições X e Y do nó no plano da simulação

são atributos inerentes do objeto node da classe ns e por isso não precisam ser declarados

explicitamente.

5.3 – Desenvolvimento do Protocolo

A procedure “findContacts” simula a troca de beacons entre os nós da rede. Ela

possui dois laços “for” em cadeia, onde o primeiro se refere ao nó de origem e o segundo

ao nó de destino de forma que todos os nós sejam testados entre si. Dentro do laço

primeiramente é calculada a distância entre o par origem/destino e essa então é comparada

com o alcance retornado pela procedure “calculaAlcance”. Se o valor da distância for

menor que o alcance, o nó destino recebeu o beacon do nó origem. O ó destino irá então

verificar se o nó origem já se encontra em seu vetor de contatos e em caso negativo irá

adicioná-lo ao final do mesmo. Adicionalmente, o nó destino também verificará se o

beacon recebido possui a flag de gateway FGW ativada, caso em que deverá atualizar sua

própria métrica time_ para a data atual. Já no caso do nó origem não estiver ao alcance

do nó destino, ele será então removido do vetor de contatos do primeiro nó.

Ao final dessa procedure há uma chamada recursiva a ela mesma dentro de um

tempo definido pelo protocolo para uma nova troca de beacons. Não é objetivo desse

trabalho calcular o melhor tempo de intervalo entre beacons, mas certamente a escolha

deste tempo seria uma decisão fundamental para a implementação do protocolo em larga

escala. Quanto menor o tempo de intervalo, maior a precisão das métricas e menor será o

atraso entre o nó entrar ao alcance do outro e haver uma transmissão. Entretanto, um

menor intervalo também significa que pacotes de controle serão transmitidos com maior

frequência, gerando maior congestionamento da rede e consumindo tempo de transmissão

da interface aérea. Uma possível solução para esse problema seria o envio de pacotes de

controle em um canal de controle dedicado, independente do tráfego dos dados.

Page 77: Projeto de Graduação - Rafael 2 - Poli Monografias

64

Para essa simulação, foi escolhido o tempo de 50ms:

$ns_ at [expr 0.05 + $now] "findContacts"

A procedure “habilitarTX” é chamada no momento em que um nó deseja

transmitir uma mensagem. Ela realiza dois testes e então chama a procedure adequada ou

não faz nada. O primeiro teste verifica se há contatos disponíveis no vetor de contatos do

nó enquanto o segundo testa o status da flag de modo ganancioso (FGreedy). Se a a flag

estiver habilitada e houver contatos disponíveis, a procedure “greedyContact” será

invocada. Já se a flag estiver desabilitada e houver contatos disponíveis, a procedure a

ser invocada será a “melhorContato” e o protocolo estará em seu modo de operação

normal. Caso não haja contato disponível os testes falham e nenhuma procedure será

invocada. O resultado dessas funções será armazenado na variável relay, que será

repassada de argumento para a procedure “criarRota”. Assim como a “findContacts”,

essa função chama a si mesma recursivamente após o intervalo entre beacons.

As duas procedures invocadas na “habilitarTX” definem o modo de operação do

protocolo. Ambas as funções recebem o index do nó de origem e seu vetor de contatos,

mas enquanto a “melhorContato” utilizará as métricas time_ e FGW para transmitir a

mensagem para o próximo nó, a “greedyContact” levará em conta apenas a posição dos

nós em relação ao destino.

A “melhorContato” testa um contato por vez e o compara sua métrica time_ com

a sua própria métrica time_. Se o contato possuir uma métrica melhor, ele será eleito o

melhor contato provisório e as comparações seguintes serão feitas com a sua métrica ao

invés daquela do nó de origem. No final, o contato com a melhor métrica será eleito o

melhor contato e seu index será retornado para a linha da procedure “habilitarTX” que o

chamou.

A “greedyContact”, por outro lado, calculará a distância do nó atual e de todos os

seus contatos para a posição do nó de destino que foi encaminhada com a mensagem. O

contato que possuir o menor valor de distância será eleito o próximo salto. Vale ressaltar

que se um contato for o nó de destino, espera-se que a distância deste para a posição do

nó destino carregada na mensagem seja zero e, portanto, ele seja eleito o próximo salto

independentemente do valor de distância dos demais contatos.

Uma vez eleito o próximo salto, ele será utilizado pela “habilitarTX” como

argumento para invocar a função “criarRota”. Essa procedure criar os agentes UDP e

Page 78: Projeto de Graduação - Rafael 2 - Poli Monografias

65

associa os geradores de tráfego, estabelecendo a troca de dados. Além disso, aqui também

será ligada a flag de modo ganancioso caso o nó atual seja uma RSU, isso é, possua sua

flag de gateway (FGW) acionada.

5.4 – Desenvolvimento do protocolo epidêmico

Para ter-se uma melhor ideia do desempenho do novo protocolo, foi desenvolvido

uma versão epidêmica semelhante àquela proposta em [2]. Nele, um nó que queira enviar

uma mensagem fará uma inundação na rede, espalhando uma cópia a todos os nós que

puderem recebe-la até que ela chegue a seu destino, no caso, a RSU 1.

Sempre que um nó estiver ao alcance de outro, estes realizarão uma sessão de anti-

entropia onde o nó de destino verificará se já possui a mensagem que o nó de origem quer

transmitir ou não e informará ao nó de origem o resultado. Caso a mensagem ainda não

seja conhecida, o nó de origem irá transmiti-la. Vale ressaltar que como na simulação

anterior, apenas uma mensagem deverá ser transmitida, mas nesse caso diversas cópias

da mensagem poderão existir simultaneamente na rede.

Para implementá-lo, foi criada a procedure “criaMSG”, que habilita a flag de

mensagem no objeto node de origem e configura uma variável TTL_ com valor inicial

10. O TTL, como explicado no capítulo anterior, limita o número de cópias da mensagem

na rede. Quando uma cópia da mensagem é transmitida a outro nó, o TTL dessa cópia é

decrementado em 1. Uma cópia com TTL igual a 1 só poderá ser transmitida para o seu

destino.

Além da “criarMSG”, a procedure “habilitarTX” foi modificada de modo que a

procedure “criarRota” é invocada para todos os contatos do nó de origem, além disso ela

deve parar quando encontrar o nó destino. A procedure “criarRota” é responsável pela

sessão de anti-entropia e pelo controle do TTL.

proc criarRota { currentNode relay } {

global rota_ ns_ mensagem_ currentContacts_ destination TTL_

set now [$ns_ now]

Page 79: Projeto de Graduação - Rafael 2 - Poli Monografias

66

if { $rota_($currentNode) == "N" && $rota_($relay) == "N" } {

if { $mensagem_($currentNode) == 1 && $mensagem_($relay) == 0 } {

if { $currentNode == $destination } {

criarAgente $currentNode $relay

set mensagem_($relay) 1

set mensagem_($currentNode) 0

} else {

if { $TTL_($currentNode) > 1 } {

criarAgente $currentNode $relay

set mensagem_($relay) 1

set TTL_($relay) [expr $TTL_($currentNode) - 1]

}

}

}

}

}

proc habilitarTX { } {

global opt ns_ habilitados_ rota_ jaEnviado_ currentContacts_ destination

set now [$ns_ now]

for {set i 0} {$i < [llength $habilitados_]} {incr i} {

set currentNode [lindex $habilitados_ $i]

set currentContacts $currentContacts_($currentNode)

quebrarRota $currentNode $currentContacts "alcance"

if { [llength $currentContacts] > 0 } {

for {set j 0} {$j < [llength $currentContacts]} {incr j} {

set relay [lindex $currentContacts $j]

if { $relay > -1 } {

if { $relay == $destination } {

criarRota $currentNode

$relay

break

} else {

Page 80: Projeto de Graduação - Rafael 2 - Poli Monografias

67

criarRota $currentNode

$relay

}

}

}

}

}

$ns_ at [expr 0.05 + $now] "habilitarTX"

5.5 – Resultados

Nessa sessão serão exibidos os resultados obtidos nos cenários simulados. O principal fator a ser testado é a latência com que o agregado alcança o seu destino. As transmissões intermediárias também serão mostradas e comentadas de forma a ilustrar e explicar o que pôde ser visto no simulador. A latência obtida nas quatro simulações pode ser observada na tabela 5.1. A latência medida aqui é do trecho veículo – RSU.

Tabela 5.1 – Latência obtida nos testes

Novo Protocolo Protocolo Epidêmico

Teste 1 – 6 nós 9s 9,1s

Teste 2 – 28 nós 6s 4s

5.5.1 – Teste 1

Novo protocolo

Os resultados das simulações estão nos arquivos de trace no apêndice A. A

simulação no NAM mostra graficamente os mesmos resultados. O nó 0 para e solicita o

serviço de emergência aos 4s, porém como não há nenhum outro nó ao alcance, ele

armazena a solicitação em seu buffer e aguarda um veículo entrar em área de contato.

Então os nós 3 e 4 se aproximam de direções diferentes até entrarem simultaneamente ao

alcance do nó transmissor. Neste momento as métricas de 3 e 4 são comparadas com

aquela de 0, que foi alterada para o valor de 999 quando a mensagem foi originada. A

mensagem é então transmitida para o nó 4, com a menor métrica.

Page 81: Projeto de Graduação - Rafael 2 - Poli Monografias

68

At 8.0499999999999936 currentContacts_(0) = 3 4 time_(0) = 999

At 8.0499999999999936 - Transmissao - currentNode = 0, relay = 4 (time_(4) = 4.9999999999999902)

Figura 5.7 – Nó 0 transmite para o nó 4

O nó 4 carrega a mensagem em seu buffer até entrar em contato com o destino,

onde então a mensagem é transmitida.

At 13.000000000000064 currentContacts_(4) = 1 5 time_(4) = 13.00000000000005

At 13.000000000000064 - Transmissao - currentNode = 4, relay = 1 (time_(1) = -1)

Page 82: Projeto de Graduação - Rafael 2 - Poli Monografias

69

Figura 5.8 – Nó 4 transmite para o nó 1

Após ser entregue à RSU, uma mensagem de reply será enviada de volta ao nó 0.

A flag de modo ganancioso é ativada. No modo ganancioso, a mensagem será transmitida

para o nó geograficamente mais próximo do destino, nesse caso o nó 0. Como o nó 4 está

mais próximo do 0, a mensagem é retransmitida para ele.

Flag de Greedy Mode ativada em 13.000000000000064

At 13.100000000000065 currentContacts_(1) = 4 5 time_(1) = -1

At 13.100000000000065 - Transmissao - currentNode = 1, relay = 4

Page 83: Projeto de Graduação - Rafael 2 - Poli Monografias

70

Figura 5.9 – Nó 1 retransmite para o nó 4 em modo ganancioso

Conforme o nó 5 se desloca em direção ao nó 0 e o nó 4 se afasta do mesmo, em

determinado momento o veículo 5 ultrapassa o detentor da mensagem e passa a deter uma

melhor métrica (menor distância). Nesse momento, a mensagem é encaminhada ao nó 5.

At 14.000000000000078 currentContacts_(4) = 1 5 time_(4) = 14.000000000000064

At 14.000000000000078 - Transmissao - currentNode = 4, relay = 5

Page 84: Projeto de Graduação - Rafael 2 - Poli Monografias

71

Figura 5.10 – Nó 4 retransmite para o nó 5

O nó 5 então, sem mais nenhum contato ao alcance, carrega a mensagem até entrar

em contato com o nó 0 e entrega-la a seu destino.

At 17.000000000000121 currentContacts_(5) = 0 time_(5) = 14.950000000000077

At 17.000000000000121 - Transmissao - currentNode = 5, relay = 0 (time_ = 999)

Page 85: Projeto de Graduação - Rafael 2 - Poli Monografias

72

Figura 5.11 – Nó 5 transmite para o nó 0, respondendo a requisição

Epidêmico

Assim como na sessão anterior, o resultado completo da simulação do protocolo

epidêmico para o mesmo cenário está no arquivo de trace no apêndice 2. Como a

simulação do NAM deste protocolo envolve um grande número de troca de mensagens,

é mais viável analisar apenas as trocas de mensagens conforme a saída da execução da

simulação. Todas essas saídas estão de acordo com o trace.

A simulação foi executada apenas para a mensagem com origem no nó 0 e destino

no nó 1, já que o protocolo funciona da mesma forma em ambos os sentidos. Os valores

obtidos foram os seguintes:

At 8.0999999999999801 currentContacts_(0) = {3 4} TTL = 10

At 8.0999999999999801 - Transmissao - currentNode = 0, relay = 3

At 8.1999999999999815 currentContacts_(0) = {3 4} TTL = 10

Page 86: Projeto de Graduação - Rafael 2 - Poli Monografias

73

At 8.1999999999999815 - Transmissao - currentNode = 0, relay = 4

At 13.05000000000005 currentContacts_(4) = {1 5} TTL = 9

At 13.05000000000005 - Transmissao - currentNode = 4, relay = 1

At 18.050000000000122 currentContacts_(3) = {2} TTL = 9

At 18.050000000000122 - Transmissao - currentNode = 3, relay = 2

A mesma mensagem transmitida pelo protocolo desenvolvido neste trabalho,

obteve o seguinte desempenho:

At 8.0499999999999936 currentContacts_(0) = 3 4 time_(0) = 999

At 8.0499999999999936 - Transmissao - currentNode = 0, relay = 4 (time_(4) = 4.9999999999999902)

At 13.000000000000064 currentContacts_(4) = 1 5 time_(4) = 13.00000000000005

At 13.000000000000064 - Transmissao - currentNode = 4, relay = 1 (time_(1) = -1)

Podemos ver que o protocolo epidêmico troca um total de quatro mensagens, o

que significa quatro cópias da mesma mensagem ocupando recursos de rede. Quando o

nó 0 deseja transmitir a mensagem, ele aguarda até os nós 3 e 4 estarem ao alcance para

fazer a transmissão. Entretanto, diferentemente da simulação anterior, o protocolo

epidêmico transmite uma cópia da mensagem para ambos os nós. Verifica-se também que

o protocolo epidêmico continua transmitindo mensagens mesmo após a mesma ter

atingindo o seu destino, já que outros nós que possuem uma cópia não foram alertados

que a mensagem que carregam já foi entregue. No caso, o nó 3 transmite para o nó 5

mesmo após a mensagem ter atingido o seu destino através do nó 4 .

Por fim, vemos que a mensagem é transmitida ao destino com um atraso

ligeiramente superior no protocolo epidêmico, o que pode ser explicado com o overhead

gerado pela sessão anti-entropia.

5.5.2 – Teste 2

Novo Protocolo

Diferentemente do teste anterior, o nó 0 agora cessa o movimento aos 9s. Essa

alteração foi realizada para que quando o nó parasse já existisse um fluxo de carros

constante na via, para isso sua posição inicial foi deslocada para baixo. Apesar disso, sua

Page 87: Projeto de Graduação - Rafael 2 - Poli Monografias

74

posição de parada é semelhante àquela do teste 1. Neste momento o veículo 4, cuja

trajetória não é a mesma do teste anterior e se desloca para baixo, já está ao alcance do

nó 0.

O nó 0 então encaminha o agregado para o nó 4 e este se desloca para cima até

entrar em contato com o RSU 2, onde o agregado é transmitido a seu destino. A seguir

segue a saída da simulação demonstrando as transmissões:

At 9.0500000000000149 currentContacts_(0) = 4 time_(0) = 999

At 9.0500000000000149 - Transmissao - currentNode = 0, relay = 4 (time_ = -1)

At 15.000000000000099 currentContacts_(4) = 2 23 time_(4) = 15.000000000000078

At 15.000000000000099 - Transmissao - currentNode = 4, relay = 2 (time_ = -1)

#Flag de Greedy Mode ativada em 15.000000000000099

Vê-se que desde o momento em que a requisição é feita até a mensagem ser

entregue ao destino, discorre-se 6s. Comparado aos 9s do teste 1, concluímos como

esperado que uma maior densidade de veículos implicará em uma menor latência.

A seguir o protocolo entra em modo ganancioso e a RSU 2 deseja enviar a resposta

de volta ao nó 0. Para isso ela possui duas opções, os nós 4 e 23 em sentidos contrários

um do outro. O nó 23 se desloca no sentido do nó 0, mas este opta pelo nó 4 por estar

mais próximo geograficamente do nó 0. Entretanto, o cenário muda apenas 0,1s depois,

quando o nó 23 “ultrapassa” o nó 4 e encurta a distância para o nó 0. Depois disso, uma

sequência de transmissões é feita seguindo a mesma lógica até que o agregado finalmente

é entregue ao nó 0, passando ao todo por oito nós intermediários.

At 15.100000000000101 currentContacts_(2) = 4 23 time_(2) = -1

At 15.100000000000101 - Transmissao - currentNode = 2, relay = 4 (time_ = 15.10000000000008)

At 15.200000000000102 currentContacts_(4) = 2 23 time_(4) = 15.200000000000081

At 15.200000000000102 - Transmissao - currentNode = 4, relay = 23 (time_ = 15.200000000000081)

At 17.000000000000128 currentContacts_(23) = 6 7 time_(23) = 15.950000000000092

At 17.000000000000128 - Transmissao - currentNode = 23, relay = 7 (time_ = 10.950000000000021)

At 17.100000000000129 currentContacts_(7) = 22 23 time_(7) = 10.950000000000021

At 17.100000000000129 - Transmissao - currentNode = 7, relay = 22 (time_ = 14.950000000000077)

At 17.200000000000131 currentContacts_(22) = 8 time_(22) = 14.950000000000077

At 17.200000000000131 - Transmissao - currentNode = 22, relay = 8 (time_ = 12.950000000000049)

At 19.000000000000156 currentContacts_(8) = 24 time_(8) = 12.950000000000049

At 19.000000000000156 - Transmissao - currentNode = 8, relay = 24 (time_ = 17.150000000000109)

At 20.000000000000171 currentContacts_(24) = 9 10 time_(24) = 17.150000000000109

At 20.000000000000171 - Transmissao - currentNode = 24, relay = 10 (time_ = 15.950000000000092)

Page 88: Projeto de Graduação - Rafael 2 - Poli Monografias

75

At 20.100000000000172 currentContacts_(10) = 23 24 time_(10) = 15.950000000000092

At 20.100000000000172 - Transmissao - currentNode = 10, relay = 23 (time_ = 15.950000000000092)

At 20.200000000000173 currentContacts_(23) = 0 11 time_(23) = 15.950000000000092

At 20.200000000000173 - Transmissao - currentNode = 23, relay = 0 (time_ = 999)

Epidêmico

Da mesma forma em que foi realizado no teste 1, aqui somente a requisição de

emergência será vista e a resposta será deixada de lado já que o funcionamento do

protocolo é o mesmo em ambos os sentidos. Aqui, diferentemente do teste 1, o protocolo

epidêmico alcançou seu destino em pouco mais de 4s, tempo consideravelmente melhor

que o novo protocolo. Isto se deve a maior densidade de nós na rede, o que favorece o

protocolo epidêmico.

At 9.0999999999999943 currentContacts_(0) = {4} TTL = 10

At 9.0999999999999943 - Transmissao - currentNode = 0, relay = 4

At 10.050000000000008 currentContacts_(0) = {4 5 15 16} TTL = 10

At 10.050000000000008 - Transmissao - currentNode = 0, relay = 5

At 10.050000000000008 currentContacts_(4) = {0 15 16} TTL = 9

At 10.050000000000008 - Transmissao - currentNode = 4, relay = 15

At 10.150000000000009 currentContacts_(0) = {4 5 15 16} TTL = 10

At 10.150000000000009 - Transmissao - currentNode = 0, relay = 16

At 11.050000000000022 currentContacts_(4) = {18} TTL = 9

At 11.050000000000022 - Transmissao - currentNode = 4, relay = 18

At 11.050000000000022 currentContacts_(15) = {0 5 6 16} TTL = 8

At 11.050000000000022 - Transmissao - currentNode = 15, relay = 6

At 12.050000000000036 currentContacts_(4) = {19} TTL = 9

At 12.050000000000036 - Transmissao - currentNode = 4, relay = 19

At 12.050000000000036 currentContacts_(15) = {7 16} TTL = 8

At 12.050000000000036 - Transmissao - currentNode = 15, relay = 7

At 13.05000000000005 currentContacts_(4) = {17 20} TTL = 9

At 13.05000000000005 - Transmissao - currentNode = 4, relay = 17

At 13.05000000000005 currentContacts_(15) = {8 16} TTL = 8

At 13.05000000000005 - Transmissao - currentNode = 15, relay = 8

At 13.150000000000052 currentContacts_(4) = {17 20} TTL = 9

At 13.150000000000052 - Transmissao - currentNode = 4, relay = 20

At 13.150000000000052 currentContacts_(17) = {4 20 21} TTL = 8

At 13.150000000000052 - Transmissao - currentNode = 17, relay = 21

At 13.200000000000053 currentContacts_(15) = {8 9 16} TTL = 8

At 13.200000000000053 - Transmissao - currentNode = 15, relay = 9

At 13.250000000000053 currentContacts_(16) = {1 8 9 15} TTL = 9

Page 89: Projeto de Graduação - Rafael 2 - Poli Monografias

76

At 13.250000000000053 - Transmissao - currentNode = 16, relay = 1

Entretanto, o melhor tempo se dá a um custo computacional mais elevado. Até

alcançar a RSU 1, o protocolo realizou 14 transmissões. Somada com a cópia mantida no

nó 0, são 15 cópias da mesma mensagem na rede em um mesmo tempo. Esse número

cresce ainda mais mesmo após a entrega da mensagem, como visto nos logs a seguir, onde

mais 12 transmissões são realizadas até o término da simulação aos 20s.

At 14.050000000000065 currentContacts_(4) = {21 22} TTL = 9

At 14.050000000000065 - Transmissao - currentNode = 4, relay = 22

At 14.050000000000065 currentContacts_(15) = {1 9 10 16} TTL = 8

At 14.050000000000065 - Transmissao - currentNode = 15, relay = 10

At 14.150000000000066 currentContacts_(22) = {2 4} TTL = 8

At 14.150000000000066 - Transmissao - currentNode = 22, relay = 2

At 14.200000000000067 currentContacts_(2) = {23} TTL = 7

At 14.200000000000067 - Transmissao - currentNode = 2, relay = 23

At 15.050000000000079 currentContacts_(15) = {1 11 16} TTL = 8

At 15.050000000000079 - Transmissao - currentNode = 15, relay = 11

At 16.050000000000093 currentContacts_(4) = {2 24} TTL = 9

At 16.050000000000093 - Transmissao - currentNode = 4, relay = 24

At 16.050000000000093 currentContacts_(15) = {12 13 14 16} TTL = 8

At 16.050000000000093 - Transmissao - currentNode = 15, relay = 12

At 16.150000000000095 currentContacts_(15) = {12 13 14 16} TTL = 8

At 16.150000000000095 - Transmissao - currentNode = 15, relay = 14

At 16.200000000000095 currentContacts_(4) = {2 24 25} TTL = 9

At 16.200000000000095 - Transmissao - currentNode = 4, relay = 25

At 17.050000000000107 currentContacts_(4) = {25 26} TTL = 9

At 17.050000000000107 - Transmissao - currentNode = 4, relay = 26

At 17.150000000000109 currentContacts_(26) = {3 4 27} TTL = 8

At 17.150000000000109 - Transmissao - currentNode = 26, relay = 3

At 17.25000000000011 currentContacts_(26) = {3 4 27} TTL = 8

At 17.25000000000011 - Transmissao - currentNode = 26, relay = 27

Page 90: Projeto de Graduação - Rafael 2 - Poli Monografias

77

Capítulo 6

Conclusão

A promessa de aumento de segurança no trânsito tem sido um dos principais

incentivos ao desenvolvimento de redes veiculares. Uma miríade de aplicações foram ou

estão em desenvolvimento para melhorar a forma como nós dirigimos reduzir o risco de

acidentes. A maioria dessas aplicações prevê a interatividade entre veículos ou mesmo o

desenvolvimento de ITS (Inteligent Traffic Systems) integrados a várias formas de

transportes.

Essas aplicações não levam em conta o cenário descontínuo que pode existir em

uma rodovia e certamente não preveem os requisitos para uma comunicação eficiente

nesse cenário. Segundo dados do DNIT (Departamento Nacional de Infraestrutura de

Transportes), as estradas federais possuem alto número de acidentes fatais, enquanto em

zonas urbanas a tendência é a de um maior número de acidentes sem casualidades. Há um

dissenso então entre as necessidades reais e as aplicações propostas.

Esse trabalho apresentou não somente um novo protocolo para redes veiculares

tolerantes a atrasos, como também um cenário para estender essas aplicações às rodovias.

A instalação de uma estrutura física nessas estradas é financeiramente inviável e os

sistemas ad hoc existentes não se enquadram em meios descontínuos onde as DTNs

fazem-se necessárias. O uso de poucas RSUs espalhadas a distâncias conhecidas e

possivelmente longas, conectadas à internet ou a uma rede privada de emergência,

conectadas via DTN aos veículos que possuem hardware de prateleira podem ser uma

solução viável e barata para que ITS sejam expandidos para fora dos centros urbanos.

O novo protocolo desenvolvido é uma possível solução de roteamento para

permitir a comunicação nesse cenário hipotético. O primeiro modo de operação do

protocolo mostrou possuir baixo overhead já que mantém as informações dos nós

vizinhos em cada nó, sem precisar de uma troca de mensagens extra sempre que se deseja

transmitir um dado. Por conta desse baixo overhead, também apresentou latência

possivelmente inferior ao protocolo epidêmico, com a vantagem de possuir uma única

cópia da mensagem na rede, consumindo poucos recursos da rede.

Page 91: Projeto de Graduação - Rafael 2 - Poli Monografias

78

O baixo consumo de recursos faz-se importante uma vez que a velocidade relativa

dos veículos em uma estrada pode ser muito alta, ocasionando intervalos pequenos para

a comunicação, já que os nós estarão ao alcance das antenas um do outro por poucos

segundos. Além disso, evita o recebimento de várias cópias da mesma mensagem no

destino, o que pode ser confundido com diversas solicitações ao invés de uma única.

Já o modo ganancioso opera de forma semelhante aos diversos protocolos

propostos na literatura. Ele é bastante eficiente quando se deseja transmitir ao longo de

um único eixo. Caso houvesse cruzamentos nessa rodovia, esse algoritmo teria sua

eficiência reduzida, já que ele leva em conta somente a posição e não a trajetória de cada

nó, o que poderia levar a loops de roteamento ou mesmo blackholes.

A desvantagem desse protocolo é a de uma sessão de comunicação só poder ser

iniciada por um veículo. Uma RSU que queira trocar mensagens com um veículo só

poderá fazê-lo se a posição do veículo constar em sua base de dados. Se levarmos em

conta que a intenção do sistema é prover somente aplicações que funcionem sob demanda

do motorista ou de seus passageiros, a desvantagem se torna uma vantagem sob o aspecto

de segurança. Não haverá requisições indesejadas e o risco de ataques serem realizados

aos veículos diminui consideravelmente.

Os cenários testados previam somente uma única mensagem sendo enviada de

cada vez em uma rodovia com densidade de veículos constante. Um trabalho futuro

poderia verificar sua escalabilidade em um cenário real com densidade de veículos

variável e múltiplas mensagens. O payload das aplicações também não foi considerado,

de forma que se mensagens de payload elevado fossem transmitidas deveria haver

fragmentação do pacote e sua reconstrução poderia incorrer em uma latência superior, já

que as partes das mensagens poderiam percorrer caminhos distintos.

Uma outra melhoria para o trabalho seria sua simulação criando-se novas classes

na hierarquia compilada, de forma a tornar a simulação mais rápida e fidedigna.

Page 92: Projeto de Graduação - Rafael 2 - Poli Monografias

79

Bibliografia

[1] Alves, R., Campbell, I., Couto, R., Campista, M., Moraes, I., Rubinstein, M., Costa, L., Duarte, O., Abdalla, M., "Redes Veiculares: Princípios, Aplicações e Desafios", Minicursos do Simpósio Brasileiro de Redes de Computadores, pp. 199-254, Recife, 2009.

[2] VAHDAT, A., E BECKER, D. Epidemic Routing for Partially-Connected Ad Hoc

Networks. Relatório técnico, Duke University, abril de 2000. http://issg.cs.duke.edu/epidemic/epidemic.pdf.

[3] WARTHMAN, F. Delay-Tolerant Networks (DTNs): A Tutorial v1.1. Relatório

técnico, Warthman Associates, março de 2003. http://www.dtnrg.org/docs/tutorials/warthman-1.1.pdf.

[4] Alves, R., Abdesslem, F., Cavalcanti, S., Campista, M., Costa, L., Rubinstein, M.,

Amorim, M., Duarte, O., “Uma Análise Experimental da Capacidade de Redes Ad Hoc Veiculares” , XXVI Simpósio Brasileiro de Telecomunicações, Rio de Janeiro, 2008.

[5] Oliveira, C. T., Uma Proposta de Roteamento Probabilístico para Redes Tolerantes a

Atrasos e Desconexões. M.Sc. dissertation, Universidade Federal do Rio de Janeiro, Março 2008.

[6] Gass, R., Scott, J., Diot, C., “Measurements of In-Motion 802.11 Networking”. In:

Mobile Computing Systems and Applications. WMCSA '06. Proceedings. 7th IEEE Workshop, pp: 69-74, Orcas Island, 2006

[7] Evanco, W. M., The Impact of Rapid Incident Detection on Freeway Accident

Fatalities. Relatório técnico, Mitretek Center for Information Systems, junho de 2006. http://ntl.bts.gov/lib/16000/16200/16295/PB2000103371.pdf

[8] Karagiannis, G., Altintas, O., Ekici, E., Heijenk, G., Jarupan, B., Lin, K., Weil, T.,

Vehicular Networking: “A Survey and Tutorial on Requirements, Architectures, Challenges, Standards and Solutions”, Communications Surveys & Tutorials - IEEE, v. 13 pp. 584-616, 2011.

[9] Jiang, D., Delgrossi, L., IEEE 802.11p: “Towards an International Standard for

Wireless Access in Vehicular Environments”, In: Vehicular Technology Conference, IEEE, pp. 2036-2040, Singapura, 2008.

[10] Moustafa, H., Zhang, Y., Vehicular Networks: Techniques, Standards, and

Applications. Flórida, CRC Press, 2009. [11] Biswas, A., Donaldson, T., Singh, J., Diamond, S., Gauthier, D., Longford, M.,

“Assessment of mobile experience engine, the development toolkit for context aware mobile applications”. In: ACE ’06: Proceedings of the 2006 ACM SIGCHI

Page 93: Projeto de Graduação - Rafael 2 - Poli Monografias

80

international conference on Advances in computer entertainment technology, pp. 8, New York, 2006

[12] Panayappan, R., Trivedi, J., Studer, A., Perrig, A., “VANET-based approach for

parking space availability”. In: ACM International Workshop on Vehicular Ad Hoc Networks (VANET), pp. 75–76, New York, 2007

[13] Rizvi, S., Olariu, S.,Weigle, M., Rizvi, M., “A novel approach to reduce traffic chaos

in emergency and evacuation scenarios”. In: IEEE Vehicular Technology Conference (VTC-Fall), pp. 1937–1941, Baltimore, 2007.

[14] Pelusi, L., Passarella, A., Conti, M., “Opportunistic networking: data forwarding in

disconnected mobile ad hoc networks”. Communications Magazine, IEEE, v. 44, pp. 134-141, 2006.

[15] JAIN, S., FALL, K., PATRA, R., “Routing in a Delay Tolerant Network”. In: ACM

SIGCOMM (2004), pp. 145–158, New York, 2004 [16] LINDGREN, A., DORIA, A., SCHELÉN, O., “Probabilistic Routing in

Intermittently Connected Networks”. International Workshop on Service Assurance with Partial and Intermittent Resources (SAPIR), v. 7, pp. 19-20, 2003.

[17] Juang, P., Oki, H., Wang, Y., Martonosi, M., Peh, L., Rubenstein, D., “Energy-

Efficient Computing for Wildlife Tracking: Design Tradeoffs and Early Experiences with ZebraNet”. In: ASPLOS X Proceedings of the 10th international conference on Architectural support for programming languages and operating systems, pp. 96-107, New York, 2002.

[18] Spyropoulos, T., Psounis, K., Raghavendra, C., “Spray and wait: an efficient routing

scheme for intermittently connected mobile networks”. In: WDTN '05 Proceedings of the 2005 ACM SIGCOMM workshop on Delay-tolerant networking, pp. 252-259, New York, 2005

[19] Musolesi, M., Mascolo, C., CAR: “Context-Aware Adaptive Routing for Delay-

Tolerant Mobile Networks”, Mobile Computing, IEEE Transactions on, v. 8, pp. 246-260, 2009

[20] Karimi, R., Ithnin, N., Razak, S., Najafzadeh, S., “DTN Routing Protocols for

VANETs: Issues and Approaches”, IJCSI International Journal of Computer Science Issues, v. 8, pp. 89-93, 2011

[21] Leontiadis, I., Mascolo, C., “GeOpps: Geographical Opportunistic Routing for

Vehicular Networks”, World of Wireless, Mobile and Multimedia Networks (WoWMoM), IEEE Internetional Symposium on a, v. no., pp. 1-6, 18-21, 2007.

[22] Zhao, J., Cao, G., “VADD: Vehicle-Assisted Data Delivery in Vehicular Ad Hoc

Networks”, Vehicular Technology, IEEE Transactions on, v. 57, pp. 1910-1922, 2008

Page 94: Projeto de Graduação - Rafael 2 - Poli Monografias

81

[23] Cheng, P., Lee, K., Gerla, M., Härri, J., “GeoDTN+Nav: Geographic DTN Routing with Navigator Prediction for Urban Vehicular Environments”, Mobile Networks and Applications, v. 15, pp. 61-82, 2010

[24] Homepage da concessionária Triunfo CONCEPA. Disponível em:

<http://www.triunfoconcepa.com.br/home.aspx>, Acesso em: 17 fev. 2014. [25] Fall, K., Varadhan, K., The ns Manual, The VINIT Project, UC Berkley and Xerox

PARC, 2004. [26] Baumann, R., Vehicular Ad Hoc Networks - Engineering and simulation of mobile

ad hoc routing protocols for VANET on highways and in cities, M.Sc. dissertation, Swiss Federal Institute of Technology Zurich, 2004.

Page 95: Projeto de Graduação - Rafael 2 - Poli Monografias

82

Apêndice A

Trace do Novo Protocolo

Aqui será apresentado um resumo do arquivo de trace gerado pela saída da

simulação. Devido ao tamanho (superior a 700 linhas) e à redundância das informações

contidas nele, como movimento dos nós e troca constantes e extensas de dados, optou-se

por mostrar apenas um resumo comentado nesse trabalho.

Antes de apresenta-lo, é importante frisar que as únicas trocas de informação

apresentadas neste trace são as que antecedem e realizam a troca de mensagens. As

mensagens de controle não são mostradas nesse trace por opção. Como dito na proposta,

tais mensagens são broadcasts de camada dois enviados periodicamente e recebidos por

todos os vizinhos ao alcance. Neste trace isso se refletiria em 2400 mensagens extras

((20P 50OP⁄ ) × 6(óP) enviadas e uma entrada extra para cada nó que recebesse cada

mensagem. Esse número, portanto, poluiria a saída e afastaria o foco da transmissão dos

dados no trace convencional (.tr) e seria ainda mais desastroso no NAM, onde 2400

transmissões extras seriam visíveis.

O trace é apresentado como uma tabela, onde cada linha segue o seguinte formato:

Tabela 2 - Estrutura do trace

Ação Tempo Nó Flags Nº de

sequência Tipo Tamanho [A B C D] Flags

Onde:

Ação: s – Enviado

r – Recebido

D – Descartado

f – Encaminhado

M – Movimento

Tempo: Quando o pacote foi enviado

Page 96: Projeto de Graduação - Rafael 2 - Poli Monografias

83

Camada: AGT – Aplicação

RTR – Roteamento

LL – Camada de enlace

IFQ – Fila de saída (entre LL e MAC)

MAC – Camada MAC

PHY – Camada física

Tipo: cbr – fluxo de dados (constant bit rate)

DSR – Pacote de roteamento DSR

RTS – Request to Send, gerado por um MAC 802.11

ARP – Address Resolution Protocol

Tamanho: Tamanho do pacote na camada atual

[A B C D]: A – Duração do pacote

B – Endereço MAC de destino

C – Endereço MAC da origem

D – Protocolo de camada 2 do corpo do pacote

#Posição inicial e movimento dos nós (t = 0s):

M 0.00000 0 (975.00, 400.00, 0.00), (975.00, 1000.00), 150.00

M 0.00000 1 (875.00, 500.00, 0.00), (875.00, 500.00), 0.00

M 0.00000 2 (875.00, 2000.00, 0.00), (875.00, 2000.00), 0.00

M 0.00000 3 (1000.00, 100.00, 0.00), (1000.00, 2400.00), 100.00

M 0.00000 4 (950.00, 1900.00, 0.00), (950.00, 100.00), 100.00

M 0.00000 5 (1000.00, 45.00, 0.00), (1000.00, 2400.00), 0.00

#Movimento dos nós (posição, destino e velocidade) em t = 8s:

M 8.00000 3 (1000.00, 900.00, 0.00), (1000.00, 2400.00), 100.00

M 8.00000 4 (950.00, 1100.00, 0.00), (950.00, 100.00), 100.00

Page 97: Projeto de Graduação - Rafael 2 - Poli Monografias

84

#No momento da primeira transmissão, o agente CBR na camada de aplicação do

nó 0 requisita às camadas inferiores uma sessão com o nó 4:

s 8.050000000 _0_ AGT --- 0 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [0] 0 0

r 8.050000000 _0_ RTR --- 0 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [0] 0 0

s 8.050000000 _0_ RTR --- 0 cbr 1044 [0 0 0 0] ------- [0:0 4:0 32 4] [0] 0 0

#A camada MAC do nó 0 realiza uma requisição ARP para o endereço de

broadcast “fff.fff.fff” para descobrir o endereço MAC do nó 4. A requisição é recebida

pelos nós 4 e 3:

s 8.050055000 _0_ MAC --- 0 ARP 62 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

r 8.050169327 _4_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

r 8.050169327 _3_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

# O nó 4 envia a resposta ARP com o seu endereço MAC para o nó 0 de forma

unicast, que a recebe na sequência:

s 8.050224327 _4_ MAC --- 0 ARP 62 [3c 0 4 806] ------- [REPLY 4/4 0/0]

r 8.050338655 _0_ MAC --- 0 ARP 28 [3c 0 4 806] ------- [REPLY 4/4 0/0]

#O nó 0 envia uma mensagem de acknowledment:

s 8.050348655 _0_ MAC --- 0 ACK 14 [0 4 0 0]

r 8.050398982 _4_ MAC --- 0 ACK 14 [0 4 0 0]

#A mensagem é então enviada via UDP:

s 8.050668655 _0_ MAC --- 0 cbr 1078 [3c 4 0 800] ------- [0:0 4:0 32 4] [0] 0 0

r 8.052138982 _4_ MAC --- 0 cbr 1044 [3c 4 0 800] ------- [0:0 4:0 32 4] [0] 1 0

s 8.052148982 _4_ MAC --- 0 ACK 14 [0 0 4 0]

r 8.052163982 _4_ AGT --- 0 cbr 1044 [3c 4 0 800] ------- [0:0 4:0 32 4] [0] 1 0

r 8.052199309 _0_ MAC --- 0 ACK 14 [0 0 4 0]

s 8.056145536 _0_ AGT --- 1 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [1] 0 0

Page 98: Projeto de Graduação - Rafael 2 - Poli Monografias

85

r 8.056145536 _0_ RTR --- 1 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [1] 0 0

(...)

s 8.148328582 _0_ AGT --- 16 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [16] 0 0

r 8.148328582 _0_ RTR --- 16 cbr 1024 [0 0 0 0] ------- [0:0 4:0 32 0] [16] 0 0

s 8.148328582 _0_ RTR --- 16 cbr 1044 [0 0 0 0] ------- [0:0 4:0 32 4] [16] 0 0

s 8.148403582 _0_ MAC --- 16 cbr 1078 [3c 4 0 800] ------- [0:0 4:0 32 4] [16] 0 0

r 8.149873878 _4_ MAC --- 16 cbr 1044 [3c 4 0 800] ------- [0:0 4:0 32 4] [16] 1 0

s 8.149883878 _4_ MAC --- 0 ACK 14 [0 0 4 0]

r 8.149898878 _4_ AGT --- 16 cbr 1044 [3c 4 0 800] ------- [0:0 4:0 32 4] [16] 1 0

r 8.149934173 _0_ MAC --- 0 ACK 14 [0 0 4 0]

# O mesmo processo se repete para as demais transmissões, como na transmissão

do nó 4 para o nó 1:

M 13.00000 3 (1000.00, 1400.00, 0.00), (1000.00, 2400.00), 100.00

M 13.00000 4 (950.00, 600.00, 0.00), (950.00, 100.00), 100.00

M 13.00000 5 (1000.00, 445.00, 0.00), (1000.00, 2400.00), 100.00

s 13.000000000 _4_ AGT --- 17 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [0] 0 0

r 13.000000000 _4_ RTR --- 17 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [0] 0 0

s 13.000000000 _4_ RTR --- 17 cbr 1044 [0 0 0 0] ------- [4:1 1:0 32 1] [0] 0 0

s 13.000055000 _4_ MAC --- 0 ARP 62 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

r 13.000169417 _1_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

#Nesse caso, o nó 5 está ao alcance do nó 4 e “escuta” a transmissão. Aqui pode-

se ver que o algoritmo do protocolo fez uma escolha pelo nó 1 ao invés do nó 5. Isso pode

ser concluído já que o nó 5 recebe o broadcast da requisição ARP do nó 4, o que o faria

apto a ser um possível destinatário da transmissão:

r 13.000169543 _5_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

s 13.000224417 _1_ MAC --- 0 ARP 62 [3c 4 1 806] ------- [REPLY 1/1 4/4]

r 13.000338833 _4_ MAC --- 0 ARP 28 [3c 4 1 806] ------- [REPLY 1/1 4/4]

s 13.000348833 _4_ MAC --- 0 ACK 14 [0 1 4 0]

r 13.000399250 _1_ MAC --- 0 ACK 14 [0 1 4 0]

#Logo em seguida, o protocolo entra em modo ganancioso e o nó 4 busca

transmitir uma resposta (que se trata de um agregado diferente) de volta ao nó 1:

Page 99: Projeto de Graduação - Rafael 2 - Poli Monografias

86

s 13.100000000 _1_ AGT --- 34 cbr 1024 [0 0 0 0] ------- [1:1 4:2 32 0] [0] 0 0

r 13.100000000 _1_ RTR --- 34 cbr 1024 [0 0 0 0] ------- [1:1 4:2 32 0] [0] 0 0

s 13.100000000 _1_ RTR --- 34 cbr 1044 [0 0 0 0] ------- [1:1 4:2 32 4] [0] 0 0

s 13.100075000 _1_ MAC --- 34 cbr 1078 [3c 4 1 800] ------- [1:1 4:2 32 4] [0] 0 0

r 13.101545390 _4_ MAC --- 34 cbr 1044 [3c 4 1 800] ------- [1:1 4:2 32 4] [0] 1 0

s 13.101555390 _4_ MAC --- 0 ACK 14 [0 1 4 0]

r 13.101570390 _4_ AGT --- 34 cbr 1044 [3c 4 1 800] ------- [1:1 4:2 32 4] [0] 1 0

r 13.101605781 _1_ MAC --- 0 ACK 14 [0 1 4 0]

s 13.106145536 _1_ AGT --- 35 cbr 1024 [0 0 0 0] ------- [1:1 4:2 32 0] [1] 0 0

r 13.106145536 _1_ RTR --- 35 cbr 1024 [0 0 0 0] ------- [1:1 4:2 32 0] [1] 0 0

s 13.106145536 _1_ RTR --- 35 cbr 1044 [0 0 0 0] ------- [1:1 4:2 32 4] [1] 0 0

s 13.106220536 _1_ MAC --- 35 cbr 1078 [3c 4 1 800] ------- [1:1 4:2 32 4] [1] 0 0

r 13.107690925 _4_ MAC --- 35 cbr 1044 [3c 4 1 800] ------- [1:1 4:2 32 4] [1] 1 0

s 13.107700925 _4_ MAC --- 0 ACK 14 [0 1 4 0]

r 13.107715925 _4_ AGT --- 35 cbr 1044 [3c 4 1 800] ------- [1:1 4:2 32 4] [1] 1 0

r 13.107751314 _1_ MAC --- 0 ACK 14 [0 1 4 0]

# Transmissão do nó 4 para o nó 5. O nó 1 está ao alcance do nó 4 e recebe a

requisição ARP, mas o algoritmo ganancioso considera que o nó 5 está mais próximo do

destino do agregado:

M 14.00000 3 (1000.00, 1500.00, 0.00), (1000.00, 2400.00), 100.00

M 14.00000 4 (950.00, 500.00, 0.00), (950.00, 100.00), 100.00

M 14.00000 5 (1000.00, 545.00, 0.00), (1000.00, 2400.00), 100.00

s 14.000000000 _4_ AGT --- 51 cbr 1024 [0 0 0 0] ------- [4:3 5:0 32 0] [0] 0 0

r 14.000000000 _4_ RTR --- 51 cbr 1024 [0 0 0 0] ------- [4:3 5:0 32 0] [0] 0 0

s 14.000000000 _4_ RTR --- 51 cbr 1044 [0 0 0 0] ------- [4:3 5:0 32 5] [0] 0 0

s 14.000055000 _4_ MAC --- 0 ARP 62 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/5]

r 14.000169224 _5_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/5]

r 14.000169250 _1_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/5]

s 14.000224224 _5_ MAC --- 0 ARP 62 [3c 4 5 806] ------- [REPLY 5/5 4/4]

r 14.000338449 _4_ MAC --- 0 ARP 28 [3c 4 5 806] ------- [REPLY 5/5 4/4]

s 14.000348449 _4_ MAC --- 0 ACK 14 [0 5 4 0]

r 14.000398673 _5_ MAC --- 0 ACK 14 [0 5 4 0]

s 14.000808449 _4_ MAC --- 51 cbr 1078 [3c 5 4 800] ------- [4:3 5:0 32 5] [0] 0 0

r 14.002278673 _5_ MAC --- 51 cbr 1044 [3c 5 4 800] ------- [4:3 5:0 32 5] [0] 1 0

Page 100: Projeto de Graduação - Rafael 2 - Poli Monografias

87

s 14.002288673 _5_ MAC --- 0 ACK 14 [0 4 5 0]

r 14.002303673 _5_ AGT --- 51 cbr 1044 [3c 5 4 800] ------- [4:3 5:0 32 5] [0] 1 0

r 14.002338898 _4_ MAC --- 0 ACK 14 [0 4 5 0]

s 14.006145536 _4_ AGT --- 52 cbr 1024 [0 0 0 0] ------- [4:3 5:0 32 0] [1] 0 0

r 14.006145536 _4_ RTR --- 52 cbr 1024 [0 0 0 0] ------- [4:3 5:0 32 0] [1] 0 0

s 14.006145536 _4_ RTR --- 52 cbr 1044 [0 0 0 0] ------- [4:3 5:0 32 5] [1] 0 0

s 14.006220536 _4_ MAC --- 52 cbr 1078 [3c 5 4 800] ------- [4:3 5:0 32 5] [1] 0 0

r 14.007690763 _5_ MAC --- 52 cbr 1044 [3c 5 4 800] ------- [4:3 5:0 32 5] [1] 1 0

#Transmissão do nó 5 para o nó 0, o agregado alcança o seu destino:

M 17.00000 3 (1000.00, 1800.00, 0.00), (1000.00, 2400.00), 100.00

M 17.00000 4 (950.00, 200.00, 0.00), (950.00, 100.00), 100.00

M 17.00000 5 (1000.00, 845.00, 0.00), (1000.00, 2400.00), 100.00

s 17.000000000 _5_ AGT --- 68 cbr 1024 [0 0 0 0] ------- [5:1 0:1 32 0] [0] 0 0

r 17.000000000 _5_ RTR --- 68 cbr 1024 [0 0 0 0] ------- [5:1 0:1 32 0] [0] 0 0

s 17.000000000 _5_ RTR --- 68 cbr 1044 [0 0 0 0] ------- [5:1 0:1 32 0] [0] 0 0

s 17.000055000 _5_ MAC --- 0 ARP 62 [0 ffffffff 5 806] ------- [REQUEST 5/5 0/0]

r 17.000169523 _0_ MAC --- 0 ARP 28 [0 ffffffff 5 806] ------- [REQUEST 5/5 0/0]

s 17.000224523 _0_ MAC --- 0 ARP 62 [3c 5 0 806] ------- [REPLY 0/0 5/5]

r 17.000339047 _5_ MAC --- 0 ARP 28 [3c 5 0 806] ------- [REPLY 0/0 5/5]

s 17.000349047 _5_ MAC --- 0 ACK 14 [0 0 5 0]

r 17.000399570 _0_ MAC --- 0 ACK 14 [0 0 5 0]

s 17.001029047 _5_ MAC --- 68 cbr 1078 [3c 0 5 800] ------- [5:1 0:1 32 0] [0] 0 0

r 17.002499570 _0_ MAC --- 68 cbr 1044 [3c 0 5 800] ------- [5:1 0:1 32 0] [0] 1 0

s 17.002509570 _0_ MAC --- 0 ACK 14 [0 5 0 0]

r 17.002524570 _0_ AGT --- 68 cbr 1044 [3c 0 5 800] ------- [5:1 0:1 32 0] [0] 1 0

r 17.002560092 _5_ MAC --- 0 ACK 14 [0 5 0 0]

s 17.006145536 _5_ AGT --- 69 cbr 1024 [0 0 0 0] ------- [5:1 0:1 32 0] [1] 0 0

r 17.006145536 _5_ RTR --- 69 cbr 1024 [0 0 0 0] ------- [5:1 0:1 32 0] [1] 0 0

s 17.006145536 _5_ RTR --- 69 cbr 1044 [0 0 0 0] ------- [5:1 0:1 32 0] [1] 0 0

s 17.006220536 _5_ MAC --- 69 cbr 1078 [3c 0 5 800] ------- [5:1 0:1 32 0] [1] 0 0

r 17.007691058 _0_ MAC --- 69 cbr 1044 [3c 0 5 800] ------- [5:1 0:1 32 0] [1] 1 0

s 17.007701058 _0_ MAC --- 0 ACK 14 [0 5 0 0]

r 17.007716058 _0_ AGT --- 69 cbr 1044 [3c 0 5 800] ------- [5:1 0:1 32 0] [1] 1 0

Page 101: Projeto de Graduação - Rafael 2 - Poli Monografias

88

Apêndice B

Trace do Protocolo Epidêmico

Novamente será feito um resumo do trace do protocolo epidêmico onde o mais importante será mostrado, que são as trocas de mensagens. O trace segue a mesma apresentação tabular do anterior.

#Posição inicial e movimento dos nós:

M 0.00000 0 (975.00, 400.00, 0.00), (975.00, 1000.00), 150.00

M 0.00000 1 (875.00, 500.00, 0.00), (875.00, 500.00), 0.00

M 0.00000 2 (875.00, 2000.00, 0.00), (875.00, 2000.00), 0.00

M 0.00000 3 (1000.00, 100.00, 0.00), (1000.00, 2400.00), 100.00

M 0.00000 4 (950.00, 1900.00, 0.00), (950.00, 100.00), 100.00

M 0.00000 5 (1000.00, 45.00, 0.00), (1000.00, 2400.00), 0.00

#Movimento dos nós e transmissão do nó 0 para o nó 3. O nó 4 também está ao alcance

do nó 0 e recebe a requisição ARP, mas ainda não recebe o agregado:

M 8.00000 3 (1000.00, 900.00, 0.00), (1000.00, 2400.00), 100.00

M 8.00000 4 (950.00, 1100.00, 0.00), (950.00, 100.00), 100.00

s 8.100000000 _0_ AGT --- 0 cbr 1024 [0 0 0 0] ------- [0:0 3:0 32 0] [0] 0 0

r 8.100000000 _0_ RTR --- 0 cbr 1024 [0 0 0 0] ------- [0:0 3:0 32 0] [0] 0 0

s 8.100000000 _0_ RTR --- 0 cbr 1044 [0 0 0 0] ------- [0:0 3:0 32 3] [0] 0 0

s 8.100055000 _0_ MAC --- 0 ARP 62 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/3]

r 8.100169311 _4_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/3]

r 8.100169311 _3_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/3]

s 8.100224311 _3_ MAC --- 0 ARP 62 [3c 0 3 806] ------- [REPLY 3/3 0/0]

r 8.100338623 _0_ MAC --- 0 ARP 28 [3c 0 3 806] ------- [REPLY 3/3 0/0]

s 8.100348623 _0_ MAC --- 0 ACK 14 [0 3 0 0]

r 8.100398934 _3_ MAC --- 0 ACK 14 [0 3 0 0]

s 8.100668623 _0_ MAC --- 0 cbr 1078 [3c 3 0 800] ------- [0:0 3:0 32 3] [0] 0 0

r 8.102138934 _3_ MAC --- 0 cbr 1044 [3c 3 0 800] ------- [0:0 3:0 32 3] [0] 1 0

Page 102: Projeto de Graduação - Rafael 2 - Poli Monografias

89

s 8.102148934 _3_ MAC --- 0 ACK 14 [0 0 3 0]

r 8.102163934 _3_ AGT --- 0 cbr 1044 [3c 3 0 800] ------- [0:0 3:0 32 3] [0] 1 0

r 8.102199244 _0_ MAC --- 0 ACK 14 [0 0 3 0]

#Transmissão da mesma mensagem do nó 0 para o nó 4. Diferentemente do novo

protocolo, o Epidêmico não precisa fazer uma escolha pelo nó de melhor métrica para

encaminhar o agregado. Uma cópia é prontamente enviada de forma unicast ao nó 4 logo

após a transmissão ao nó 3 foi finalizada. O nó 3 ainda se encontra ao alcance e recebe a

requisição ARP de 0, além de escutar a transmissão:

s 8.200000000 _0_ AGT --- 17 cbr 1024 [0 0 0 0] ------- [0:1 4:0 32 0] [0] 0 0

r 8.200000000 _0_ RTR --- 17 cbr 1024 [0 0 0 0] ------- [0:1 4:0 32 0] [0] 0 0

s 8.200000000 _0_ RTR --- 17 cbr 1044 [0 0 0 0] ------- [0:1 4:0 32 4] [0] 0 0

s 8.200264141 _0_ MAC --- 0 ARP 62 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

r 8.200378421 _4_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

r 8.200378421 _3_ MAC --- 0 ARP 28 [0 ffffffff 0 806] ------- [REQUEST 0/0 0/4]

s 8.200433421 _4_ MAC --- 0 ARP 62 [3c 0 4 806] ------- [REPLY 4/4 0/0]

r 8.200547700 _0_ MAC --- 0 ARP 28 [3c 0 4 806] ------- [REPLY 4/4 0/0]

s 8.200557700 _0_ MAC --- 0 ACK 14 [0 4 0 0]

r 8.200607979 _4_ MAC --- 0 ACK 14 [0 4 0 0]

s 8.200897700 _0_ MAC --- 17 cbr 1078 [3c 4 0 800] ------- [0:1 4:0 32 4] [0] 0 0

r 8.202367979 _4_ MAC --- 17 cbr 1044 [3c 4 0 800] ------- [0:1 4:0 32 4] [0] 1 0

s 8.202377979 _4_ MAC --- 0 ACK 14 [0 0 4 0]

r 8.202392979 _4_ AGT --- 17 cbr 1044 [3c 4 0 800] ------- [0:1 4:0 32 4] [0] 1 0

r 8.202428258 _0_ MAC --- 0 ACK 14 [0 0 4 0]

#Por fim, a camada de aplicação do nó 4 solicita a rede para transmitir ao nó 1, seu destino

final. O broadcast da requisição ARP é escutado pelos nós 1 e 5, mas apenas o nó 1

responde com seu endereço MAC. Por se tratar do destino final do agregado, uma cópia

não será enviada ao nó 5:

M 13.00000 3 (1000.00, 1400.00, 0.00), (1000.00, 2400.00), 100.00

M 13.00000 4 (950.00, 600.00, 0.00), (950.00, 100.00), 100.00

M 13.00000 5 (1000.00, 445.00, 0.00), (1000.00, 2400.00), 100.00

s 13.050000000 _4_ AGT --- 34 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [0] 0 0

r 13.050000000 _4_ RTR --- 34 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [0] 0 0

Page 103: Projeto de Graduação - Rafael 2 - Poli Monografias

90

s 13.050000000 _4_ RTR --- 34 cbr 1044 [0 0 0 0] ------- [4:1 1:0 32 1] [0] 0 0

s 13.050055000 _4_ MAC --- 0 ARP 62 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

r 13.050169403 _1_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

r 13.050169511 _5_ MAC --- 0 ARP 28 [0 ffffffff 4 806] ------- [REQUEST 4/4 0/1]

s 13.050224403 _1_ MAC --- 0 ARP 62 [3c 4 1 806] ------- [REPLY 1/1 4/4]

r 13.050338807 _4_ MAC --- 0 ARP 28 [3c 4 1 806] ------- [REPLY 1/1 4/4]

s 13.050348807 _4_ MAC --- 0 ACK 14 [0 1 4 0]

r 13.050399210 _1_ MAC --- 0 ACK 14 [0 1 4 0]

s 13.050588807 _4_ MAC --- 34 cbr 1078 [3c 1 4 800] ------- [4:1 1:0 32 1] [0] 0 0

r 13.052059210 _1_ MAC --- 34 cbr 1044 [3c 1 4 800] ------- [4:1 1:0 32 1] [0] 1 0

s 13.052069210 _1_ MAC --- 0 ACK 14 [0 4 1 0]

r 13.052084210 _1_ AGT --- 34 cbr 1044 [3c 1 4 800] ------- [4:1 1:0 32 1] [0] 1 0

r 13.052119613 _4_ MAC --- 0 ACK 14 [0 4 1 0]

s 13.056145536 _4_ AGT --- 35 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [1] 0 0

r 13.056145536 _4_ RTR --- 35 cbr 1024 [0 0 0 0] ------- [4:1 1:0 32 0] [1] 0 0

s 13.056145536 _4_ RTR --- 35 cbr 1044 [0 0 0 0] ------- [4:1 1:0 32 1] [1] 0 0

s 13.056220536 _4_ MAC --- 35 cbr 1078 [3c 1 4 800] ------- [4:1 1:0 32 1] [1] 0 0

r 13.057690938 _1_ MAC --- 35 cbr 1044 [3c 1 4 800] ------- [4:1 1:0 32 1] [1] 1 0

s 13.057700938 _1_ MAC --- 0 ACK 14 [0 4 1 0]

r 13.057715938 _1_ AGT --- 35 cbr 1044 [3c 1 4 800] ------- [4:1 1:0 32 1] [1] 1 0

r 13.057751340 _4_ MAC --- 0 ACK 14 [0 4 1 0]

#Adicionalmente, uma transmissão extra ocorre entre o nó 3 e o nó 2. Isso ocorre já que

o nó 3 ainda possui uma cópia do agregado e o nó 2 ainda não havia recebido uma cópia.

Não há nenhum outro nó escutando a transmissão, então apenas os dois nós interagem:

M 18.00000 3 (1000.00, 1900.00, 0.00), (1000.00, 2400.00), 100.00

M 18.00000 4 (950.00, 100.00, 0.00), (950.00, 100.00), 100.00

M 18.00000 5 (1000.00, 945.00, 0.00), (1000.00, 2400.00), 100.00

s 18.050000000 _3_ AGT --- 68 cbr 1024 [0 0 0 0] ------- [3:1 2:0 32 0] [0] 0 0

r 18.050000000 _3_ RTR --- 68 cbr 1024 [0 0 0 0] ------- [3:1 2:0 32 0] [0] 0 0

s 18.050000000 _3_ RTR --- 68 cbr 1044 [0 0 0 0] ------- [3:1 2:0 32 2] [0] 0 0

s 18.050055000 _3_ MAC --- 0 ARP 62 [0 ffffffff 3 806] ------- [REQUEST 3/3 0/2]

r 18.050169523 _2_ MAC --- 0 ARP 28 [0 ffffffff 3 806] ------- [REQUEST 3/3 0/2]

s 18.050224523 _2_ MAC --- 0 ARP 62 [3c 3 2 806] ------- [REPLY 2/2 3/3]

r 18.050339047 _3_ MAC --- 0 ARP 28 [3c 3 2 806] ------- [REPLY 2/2 3/3]

Page 104: Projeto de Graduação - Rafael 2 - Poli Monografias

91

s 18.050349047 _3_ MAC --- 0 ACK 14 [0 2 3 0]

r 18.050399570 _2_ MAC --- 0 ACK 14 [0 2 3 0]

s 18.050529047 _3_ MAC --- 68 cbr 1078 [3c 2 3 800] ------- [3:1 2:0 32 2] [0] 0 0

r 18.051999570 _2_ MAC --- 68 cbr 1044 [3c 2 3 800] ------- [3:1 2:0 32 2] [0] 1 0

s 18.052009570 _2_ MAC --- 0 ACK 14 [0 3 2 0]

r 18.052024570 _2_ AGT --- 68 cbr 1044 [3c 2 3 800] ------- [3:1 2:0 32 2] [0] 1 0

r 18.052060093 _3_ MAC --- 0 ACK 14 [0 3 2 0]