Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf ·...

78
UNIVERSIDADE DO RIO GRANDE DO NORTE FEDERAL Universidade Federal do Rio Grande do Norte – UFRN Centro de Ensino Superior do Serid´ o – CERES Departamento de Computa¸c˜ ao e Tecnologia – DCT Bacharelado em Sistemas de Informa¸ ao – BSI Descoberta de infraestrutura e servi¸ cos de rede utilizando dispositivos m´ oveis Marcos T´ ulio de Lima Vianna Orientador: Prof. Dr. Jo˜ ao Paulo de Souza Medeiros Trabalho de Conclus˜ ao de Curso apre- sentado ao Curso de Bacharelado em Sis- temas de Informa¸c˜ ao como parte dos requisi- tos para obten¸ ao do t´ ıtulo de Bacharel em Sistemas de Informa¸ ao. Laborat´ orio de Elementos do Processamento da Informa¸c˜ ao – LabEPI Caic´ o, RN, 13 de janeiro de 2016

Transcript of Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf ·...

Page 1: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

UNIVERSIDADE DO RIO GRANDE DO NORTEFEDERAL

Universidade Federal do Rio Grande do Norte – UFRNCentro de Ensino Superior do Serido – CERES

Departamento de Computacao e Tecnologia – DCTBacharelado em Sistemas de Informacao – BSI

Descoberta de infraestrutura e servicos de rede

utilizando dispositivos moveis

Marcos Tulio de Lima Vianna

Orientador: Prof. Dr. Joao Paulo de Souza Medeiros

Trabalho de Conclusao de Curso apre-sentado ao Curso de Bacharelado em Sis-temas de Informacao como parte dos requisi-tos para obtencao do tıtulo de Bacharel emSistemas de Informacao.

Laboratorio de Elementos do Processamento da Informacao – LabEPICaico, RN, 13 de janeiro de 2016

Page 2: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Catalogacao da Publicacao na FonteUniversidade Federal do Rio Grande do Norte - UFRN

Sistema de Bibliotecas - SISBI

Vianna, Marcos Tulio de Lima.Descoberta de infraestrutura e servicos de rede utilizando dispositivos moveis.

/ Marcos Tulio de Lima Vianna. – Caico, 2016.78f: il.

Orientador : Joao Paulo de Souza Medeiros Dr.

Monografia (Bacharel em Sistemas de Informacao) Universidade Federal doRio Grande do Norte. Centro de Ensino Superior do Serido - Campus Caico.

1. Descoberta de servicos e infraestrutura. 2. Dispositivos moveis. 3. Redesde Computadores. I. Medeiros, Joao Paulo de Souza. II. Tıtulo.

Page 3: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de infraestrutura e servicos de rede

utilizando dispositivos moveis

Marcos Tulio de Lima Vianna

Monografia aprovada em 19 de dezembro pela banca examinadora composta pelosseguintes membros:

Prof. Dr. Joao Paulo de Souza Medeiros (orientador) . . . . . . . . . . . . DCT/UFRN

Prof. MSc. Joao Batista Borges Neto . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCT/UFRN

Prof. MSc. Luiz Paulo de Souza Medeiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IFRN

Page 4: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio
Page 5: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Agradecimentos

Uma das maiores virtudes de um ser humano e o reconhecimento e certamente estesparagrafos nao irao acolher todas as pessoas que fizeram parte dessa importante conquista.Portanto, desde ja peco desculpas aquelas que nao estao presentes entre essas palavras,mas podem ter certeza que fazem parte do meu pensamento e de minha gratidao.

Agradeco a Deus pelo discernimento, forca e saude para superar as dificuldades.

Ao meu pai Jorge Alves Vianna pelo apoio incondicional em todos os momentos da minhavida, por ter me tornado um homem de bem, por ser meu melhor amigo, pelas caronas praCaico e pelo sacrifıcio diario para que eu pudesse alcancar meus objetivos. Tenho orgulhode ser filho. A minha mainha Maria Aparecida de Lima Vianna, principal responsavel poressa conquista, sem voce eu nao estaria onde estou. Muito obrigado por todo tempo quevoce cuidou de mim, pelo conforto nos momentos de angustia, por me passar toda a suasabedoria e destemor mesmo em situacoes difıceis. Tenho a certeza de que no lugar maispuro desta terra a senhora me observa e cuida de mim como se estivesse ao meu lado.Enfim, sou grato por investirem em mim e me proporcionarem tudo que precisei e por terme tornado um reflexo de voces. Eu os Amo.

A minha irma Tamara de Lima Vianna por todo o “carinho” e companheirismo transmi-tidos. Voce e um dos motivos que fazem permanecer nessa caminhada. Te amo, minhairma.

A minha namorada Mayonara Fabıola pela paciencia, afeto e compreensao nos momentostristes e pela companhia, divertimento e tranquilidade nos bons momentos. Amo voce.

A Maycon, Denis, Ricardo, Luan, Eric, Sheydson e Eduardo meus companheiros de mora-dia e irmaos da vida, a convivencia com voces tornaram as coisas mais faceis e divertidas.Vou levar comigo todas as nossas historias.

Sou grato ao professor Joao Paulo pela paciencia, por todo o conhecimento transmitido,pelos momentos de descontracao e por ter me aceitado como seu orientando e juntamenteaos professores Joao Borges, Luiz Paulo e Gilson, os quais sou grato por todo os ensina-mentos e formacao profissional, por terem me aceito como membro do LabEPI, o lugar queindicaria para qualquer aluno como um agradavel ambiente de estudo. Agradeco tambemao professor Gilson pelas caronas e por me dar a oportunidade de iniciar meu caminho detutoria no Instituto Metropole Digital.

Aos professores Deilson, Adrianne, Fabrıcio, Taciano, Flavius, Karliane e Aislania pelosensinamentos, instrucoes durante todo o meu tempo nesta universidade e contribuicoespara minha formacao.

Page 6: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Aos meus amigos de laboratorio, Francimar, Daniel, Anderson, Jackson e Eduardo pelaconvivencia diaria, pelas madrugadas de estudo e pelo conhecimento compartilhado, con-sidero voces como meus irmaos.

Ao meu vizinho Seu Wagner, uma pessoa de bom coracao que me acolheu durante todaa minha estadia em Caico, a Karliane e Ana Claudia pelo companheirismo no InstitutoMetropole Digital, a Petrus por solucionar as questoes burocraticas e a todos os meuscolegas de curso, seria impossıvel citar todos voces aqui, mas deixo o meu muito obrigadopela oportunidade de conviver com cada um de voces.

Finalmente, sou grato pela oportunidade de desenvolver este trabalho no Laboratoriode Elementos do Processamento da Informacao (LabEPI), sediado no Centro de EnsinoSuperior do Serido da Universidade Federal do Rio Grande do Norte.

Page 7: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Resumo

Diante da versatilidade, do crescimento tecnologico, da popularizacao e convergenciadigital em torno dos dispositivos moveis, aliado ao avanco da infraestrutura nas redes decomputadores, surgiu a ideia do desenvolvimento de um aplicativo com o intuito de obterinformacoes relacionadas a descoberta de infraestrutura e servicos de rede. O objetivodeste trabalho consiste na construcao de um aplicativo que ira permitir ao usuario obterinformacoes para que seja possıvel analisar determinados aspectos numa determinada redeno que diz respeito a sua infraestrutura e/ou disponibilidade de servicos. O sistema a serdesenvolvido consiste em duas funcionalidades principais: um modulo de descoberta deservicos, para coletar informacoes obtidas por meio de um dispositivo com a finalidadede identificar e classificar o status das portas de uma maquina alvo; e uma ferramenta dedescoberta de rotas, para o rastreio do caminho percorrido por um pacote em uma rede decomputadores, possibilitando a visualizacao de informacoes referentes a infraestrutura darede desde o dispositivo de origem ate o destino, alem do tempo gasto para obter a respostapara cada roteador encontrado. O aplicativo permitira ainda o envio das informacoesobtidas pelos dispositivos para uma base de dados disponıvel em um servidor remoto,atraves de um Web Service, proporcionando a centralizacao dos dados. Conclui-se queos resultados obtidos com o aplicativo desenvolvido sao considerados satisfatorios, vistoque e possıvel realizar a captura e obter resultados coerentes em ambas as aplicacoes earmazena-las da maneira programada.

Palavras-chave: Dispositivos Moveis; Descoberta de servicos e infraestrutura; Redesde Computadores.

Page 8: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio
Page 9: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Abstract

Facing the versatility, the technological growth, the popularization and digital conver-gence around mobile devices, combined with the advancement of infrastructure of com-puter networks, came the idea of developing an application in order to obtain informationregarding the discovery of infrastructure and network services. This work consists of build-ing an application that will allow the user to obtain information so it is possible to analyzecertain aspects of a given network regarding its infrastructure and / or service availability.The system to be designed consists of two main features: a service discovery module tocollect information obtained from a device in order to identify and classify the status ofthe doors of a target machine; and a route discovery tool, for screening the path taken by apacket in a computer network, enabling the visualization of information about the networkinfrastructure from the source device to the destination, in addition to the time spent toget the answer for each router found. The application will also allow the transmission ofinformation obtained by the devices to a database available on a remote server via WebService, providing centralization of data. It is concluded that the results obtained withthe developed application are considered satisfactory, since it is possible to capture andobtain consistent results in both the applications and store them in the programmed way.

Keywords: Mobile Devices; Discovery services and infrastructure; Computer Net-work;

Page 10: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio
Page 11: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede i

Sumario

Lista de Figuras iii

Lista de Tabelas v

Lista de siglas e abreviacoes vii

Lista de marcas registradas ix

1 Introducao 11.1 Uma ferramenta Voltada para Servicos de Rede . . . . . . . . . . . . . . . . 21.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Organizacao do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Revisao Bibliografica 72.1 Fundamentos de Redes de Computadores . . . . . . . . . . . . . . . . . . . 7

2.1.1 Pilha de Protocolos TCP/IP . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.3 Desenvolvimento de Aplicacoes em Rede . . . . . . . . . . . . . . . . 10

2.2 Descoberta de Servicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Descoberta de Rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Desenvolvimento 193.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2 Procedimentos Metodologicos . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1 Caracterizacao da Pesquisa . . . . . . . . . . . . . . . . . . . . . . . 203.2.2 Estudo Bibliografico . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2.3 Estudo Tecnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2.4 Desenvolvimento do Aplicativo . . . . . . . . . . . . . . . . . . . . . 213.2.5 Validacao das Ferramentas e Testes . . . . . . . . . . . . . . . . . . . 21

3.3 Implementacao da Biblioteca PingWrapper . . . . . . . . . . . . . . . . . . 223.4 Implementacao da Biblioteca PortScan . . . . . . . . . . . . . . . . . . . . . 223.5 Arquitetura da Aplicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.6 Desenvolvimento da Classe de Conexao com o Banco de Dados . . . . . . . 243.7 Implementacao do Web Service . . . . . . . . . . . . . . . . . . . . . . . . . 26

Page 12: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

ii Sumario

3.8 Desenvolvimento do Aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . 263.9 Validacao do Aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 Consideracoes Finais 414.1 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2 Contribuicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

A Apendice para Desenvolvedor 45A.1 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

A.1.1 Arquitetura Android . . . . . . . . . . . . . . . . . . . . . . . . . . . 46A.1.2 Componentes de uma Aplicacao Android . . . . . . . . . . . . . . . 47

A.2 Ambiente de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . 48A.2.1 JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48A.2.2 Android SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49A.2.3 Eclipse IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

A.3 Configuracao do Ambiente Android . . . . . . . . . . . . . . . . . . . . . . . 49A.3.1 ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49A.3.2 AVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

A.4 Repositorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52A.5 Execucao do Aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Referencias Bibliograficas 58

Page 13: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede iii

Lista de Figuras

1.1 Porcentagem de uso de sistemas operacionais moveis. . . . . . . . . . . . . . 3

2.1 Pilha de protocolos TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Cabecalho do protocolo IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Traceroute em funcionamento em rede local com firewall. . . . . . . . . . . 132.4 Traceroute em funcionamento em rede local sem firewall. . . . . . . . . . . 142.5 Funcionamento do traceroute. . . . . . . . . . . . . . . . . . . . . . . . . . 142.6 Exemplo de criacao de documento com MongoDB. . . . . . . . . . . . . . . 152.7 Exemplo de criacao de documento com MongoDB. . . . . . . . . . . . . . . 162.8 Exemplo de persistencia de um documento com MongoDB. . . . . . . . . . 162.9 Funcionamento do Web Service com SOAP. . . . . . . . . . . . . . . . . . . 16

3.1 Arquitetura da aplicacao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2 Tela inicial do aplicativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3 Tela do PingWrapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4 Tela do PortScan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.5 Exemplo de captura do PingWrapper. . . . . . . . . . . . . . . . . . . . . . 303.6 Exemplo de captura do PortScan. . . . . . . . . . . . . . . . . . . . . . . . . 313.7 Tela com mensagens de alerta. . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.1 Exemplo de composicao de rotas com o Zenmap. . . . . . . . . . . . . . . . . 43

A.1 Arquitetura em camadas no Android. . . . . . . . . . . . . . . . . . . . . . 46A.2 Download do plugin ADT para Eclipse. . . . . . . . . . . . . . . . . . . . . 50A.3 Download do plugin ADT para Eclipse. . . . . . . . . . . . . . . . . . . . . 50A.4 Dialogo Install do Eclipse mostrando o plugin Android para download. . . . 51A.5 Lista de componentes a serem instalados. . . . . . . . . . . . . . . . . . . . 51A.6 Gerenciador AVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52A.7 Criacao de um novo AVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53A.8 Configuracao para o modo de desenvolvimento no dispositivo. . . . . . . . . 54

Page 14: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

iv Lista de Figuras

Page 15: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede v

Lista de Tabelas

2.1 Tipos de mensagens ICMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Tempo para escrita de n registros em milissegundos. . . . . . . . . . . . . . 253.2 Tempo para leitura de n registros em milissegundos. . . . . . . . . . . . . . 253.3 Tempo para buscar todos os n registros em milissegundos. . . . . . . . . . . 253.4 Lista de enderecos IP analisados. . . . . . . . . . . . . . . . . . . . . . . . . 323.5 Comparacao de captura para o endereco 67.23.234.115 . . . . . . . . . . . . 333.6 Comparacao de captura para o endereco 48.171.116.178 . . . . . . . . . . . 333.7 Comparacao de captura para o endereco 69.164.223.115 . . . . . . . . . . . 343.8 Comparacao de captura para o endereco 241.58.10.22 . . . . . . . . . . . . . 343.9 Comparacao de captura para o endereco 104.28.6.64 . . . . . . . . . . . . . 353.10 Comparacao de captura para o endereco 67.23.234.115 . . . . . . . . . . . . 353.11 Comparacao de captura para o endereco 48.171.116.178 . . . . . . . . . . . 363.12 Comparacao de captura para o endereco 200.147.67.142 . . . . . . . . . . . 363.13 Comparacao de captura para o endereco 241.58.10.22 . . . . . . . . . . . . . 363.14 Comparacao de captura para o endereco 104.28.6.64 . . . . . . . . . . . . . 373.15 Lista de portas analisadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.16 Comparacao entre ferramentas portscan para o endereco 67.23.234.115. . . . 383.17 Comparacao entre ferramentas portscan para o endereco 48.171.116.178. . . 383.18 Comparacao entre ferramentas portscan para o endereco 200.147.67.142. . . 393.19 Comparacao entre ferramentas portscan para o endereco 241.58.10.22. . . . 393.20 Comparacao entre ferramentas portscan para o endereco 104.28.6.64. . . . . 40

Page 16: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

vi Lista de Tabelas

Page 17: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede vii

Lista de siglas e abreviacoes

Acronimos

ACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AcknowledgementADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Android Development ToolsAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application Programming InterfaceARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Address Resolution ProtocolAVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Android Virtual DeviceBGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Border Gateway ProtocolDHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dynamic Host Configuration ProtocolGPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global Positioning SystemGSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global System for Mobile CommunicationsGSMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Groupe Speciale Mobile AssociationICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Internet Control Message ProtocolIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integrated Development EnvironmentIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Internet ProtocolIPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internet Protocol version 4IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internet Protocol version 6JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Java Development KitOSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Open Shortest Path FirstRIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Routing Information ProtocolRST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetRTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Round Trip TimeSDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Development KitSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structured Query LanguageSYN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SynchronizeTCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Transmission Control ProtocolTTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Time To LiveUDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Datagram ProtocolURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Uniform Resource LocatorXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eXtensible Markup Language

Page 18: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

viii Lista de siglas e abreviacoes

Page 19: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede ix

Lista de marcas registradas

Android R©

Eclipse R©

Facebook R©

Google R©

IBM R©

Intel R©

Java R©

LG R©

Microsoft R©

MongoDB R©

Motorola R©

Nextel R©

Nvidia R©

Open Handset Alliance R©

Samsung R©

Windows Mobile R©

Youtube R©

As varias marcas listadas nessa pagina tem o objetivo de informar aosleitores que o autor deste trabalho utiliza tais nomes apenas para fins editoriais,buscando com isso beneficiar o dono da Marca Registrada, sem haver infracaonas regras de sua utilizacao.

Page 20: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

x Lista de marcas registradas

Page 21: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 1

Capıtulo 1

Introducao

“Sometimes it’s the very people who no-one imaginesanything of who do the things that no-one can imagine.”

Alan Turing

Com a evolucao da tecnologia, os dispositivos moveis se tornaram ferramentas poderosasno que se refere a sua capacidade de armazenamento e processamento. A melhoria dohardware permitiu que aplicacoes mais robustas fossem desenvolvidas e, com isso, soft-wares que precisavam ser executados em computadores pessoais passaram a operar commaior mobilidade. Com um smartphone em maos, o usuario tem a possibilidade de usarfuncionalidades tais como GPS (Global Positioning System), navegadores, sensores demovimento e cameras, antes disponıveis apenas em dispositivos com finalidade especıfica.Devido a unificacao de elementos tecnologicos e a baixa nos precos de dispositivos verifica-se um consideravel crescimento no numero de aparelhos utilizados mundialmente. Segundoa GSMA (Groupe Speciale Mobile Association), associacao de fabricantes de dispositivosGSM (Global System for Mobile Communications), um estudo feito no ano de 2014 con-statou que o numero de dispositivos moveis conectados a Internet ao redor do mundochegou a 6 bilhoes em novembro de 2011. Nesse mesmo perıodo, o numero de seres hu-manos chegava a 7 bilhoes (Association, 2014). A partir desse crescimento no mundo dosdispositivos moveis, surgiu uma plataforma capaz de permitir aos desenvolvedores a totalutilizacao dos inumeros recursos disponibilizados atualmente: a plataforma de desenvolvi-mento Android (Deitel et al., 2012).

A definicao da plataforma Android para a construcao de aplicativos, comumentechamados de apps, se deve, principalmente, a fatores inerentes ao proprio desenvolvimentodas aplicacoes. Por ser baseado no Linux e possuir licenca aberta, varios desenvolvedorespodem contribuir para que o sistema tire um melhor proveito de novas tecnologias e re-cursos implementados no kernel do Linux. Outro fator que facilita o desenvolvimentono Android e a permissao para manipular os recursos de hardware disponıveis, provendoao desenvolvedor o controle sobre componentes que podem ser uteis para determinadosaplicativos. O grande numero de dispositivos moveis que suportam o sistema operacionaltambem colabora para a implementacao nesta plataforma, visto que e possıvel executarum mesmo programa utilizando aparelhos de diferentes fabricantes com hardware distintos(Mednieks et al., 2012).

Essa explosao no numero de dispositivos moveis foi impulsionada pela possibilidade decomunicacao entre eles. Atraves do uso das Redes de Computadores, a Internet tornou-se o

Page 22: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2 Capıtulo 1. Introducao

principal canal de conversacao entre os dispositivos por meio das aplicacoes desenvolvidas,tornando possıvel o desenvolvimento de aplicativos que usam a Internet para se comuni-carem, bem como de sistemas que sao criados para obter informacoes da propria rede e deseus componentes, caso contrario, os dispositivos moveis e suas aplicacoes estariam fada-dos a se igualar a sistemas para desktop, onde a disponibilidade de suas funcionalidadessao fornecidas de forma local (Araujo, 2010).

Para Kurose e Ross (2013) a Internet e provavelmente o maior sistema de engenhariaja criado pela humanidade, com centenas de milhoes de computadores conectados, enlacesde comunicacao e comutadores; bilhoes de usuarios que se conectam por meio de laptops,tablets e smartphones.

Em novembro de 2007, a Google e outras 33 empresas que formam a Open HandsetAlliance (Alianca de Telefonia Movel Aberta) divulgaram um comunicado a imprensa como seguinte conteudo:

“Esta Alianca partilha uma meta comum de inovacao em dispositivosmoveis e de fornecimento aos consumidores de uma experiencia deusuario muito superior a de muitos produtos disponıveis em platafor-mas moveis da atualidade. Fornecendo aos desenvolvedores um novonıvel de abertura que permite um trabalho mais colaborativo, o An-droid acelerara o ritmo em que novos servicos moveis e competitivosserao disponibilizados aos consumidores” (Rogers et al., 2009).

O Android trouxe aos desenvolvedores a liberdade para criar, de maneira autonoma,aplicacoes com diversas finalidades e disponibiliza-las de forma gratuita ou paga, de acordocom cada interesse. Alem disso, o Android se tornou atrativo devido ao grande numerode aparelhos rodando seu sistema operacional, pois mesmo que o aplicativo nao seja pago,podera trazer grande visibilidade dependendo do tipo de servico que esta sendo ofertadoSegundo a Index (2014) dois tercos dos usuarios de dispositivos moveis utilizam o sistemaoperacional Android. Junto a isso, o Android tem o apoio de empresas com um grandenumero de consumidores como LG, Motorola, Samsung, Nextel, Intel e NVidia, todascontribuindo para a Open Handset Alliance (Ogliari e Brito, 2014). Na Figura 1.1 eapresentado o percentual de usuarios de diversos sistemas operacionais para dispositivosmoveis entre os anos de 2011 a 2014.

O Android tem potencial para remover as barreiras para o sucesso no desenvolvimentoe venda de uma nova geracao de software de telefonia movel Rogers et al. (2009).

Perante as circunstancias atuais, a uniao entre dispositivos moveis e redes de com-putadores torna-se inevitavel. Ferramentas que alinhem essas duas tecnologias tornam-seuteis na concepcao de novos aplicativos que necessitem, de alguma forma, interagir com aInternet ou obter dados sobre seus servicos e infraestrutura.

1.1 Uma ferramenta Voltada para Servicos de Rede

Uma empresa precisa conhecer bem seus funcionarios, saber se eles desempenhamcorretamente uma funcao, qual departamento e mais eficiente ou ate mesmo se eles in-teragem bem com outras partes da organizacao. Todas essas informacoes sao necessariaspara garantir a qualidade na execucao dos projetos. Nas redes de computadores de umaempresa, ou ate mesmo na Internet, tambem e assim. E preciso conhecer os equipamentos,como eles se conectam, seu desempenho, entre outras metricas para assegurar o correto

Page 23: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

1.1. Uma ferramenta Voltada para Servicos de Rede 3

Figura 1.1: Porcentagem de uso de sistemas operacionais moveis.

Fonte: (Index, 2014).

funcionamento. Em uma determinada rede podem haver dezenas ou ate milhares de dis-positivos, portanto, caso algo de errado a inexistencia de documentos que descrevam comoa rede esta estruturada em relacao a sua organizacao, seguranca e interligacao tornaramais complexa a descoberta da origem da falha. Como solucao para estes problemas, ex-istem ferramentas que permitem coletar diversas informacoes de equipamentos e servicosda rede.

Para obter determinadas medidas, as ferramentas podem realizar um monitoramentopassivo, na qual ela analisa dados existentes ou um monitoramento ativo, quando a ferra-menta podera interferir no sistema, gerando trafego de dados para conseguir as informacoesnecessarias e avaliar o funcionamento de um sistema Tanenbaum (2003). Alem de coletaros dados, e interessante que as ferramentas armazene-os para que seja possıvel uma analisesubsequente. Para que o gerenciamento de uma rede de computadores seja feito de formacorreta, alguns utilitarios sao fundamentais para que o responsavel possa administra-la,tornando funcional toda a infraestrutura e disponibilizando os servicos necessarios (Pereset al., 2014).

A partir deste contexto, pode-se perceber a importancia da utilizacao, nas redesde computadores, de ferramentas capazes de executar tarefas essenciais para se obterparametros que possibilitem uma avaliacao sobre a disponibilidade de servicos e/ou in-fraestrutura de uma rede. A integracao de diversos utilitarios para monitoramento emredes de computadores faz-se um instrumento capaz de trazer ao usuario maior pratici-dade. Alem disso, com o avanco tecnologico sobre os dispositivos moveis no que se referea capacidade de processamento e comunicacao, aplicacoes de rede podem ser desenvolvi-das trazendo outras vantagens. A mobilidade se torna um dos fatores para a criacao deaplicativos voltados para a obtencao de informacoes a partir de redes de computadores,pois nao sera preciso carregar grandes equipamentos para coletar os dados necessarios, jaque tera disponıvel um sistema que fornecera informacoes de forma imediata, propiciando

Page 24: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

4 Capıtulo 1. Introducao

o envio e recebimento de informacoes remotamente.

1.2 Justificativa

As redes de computadores proporcionam que indivıduos possam trabalhar em con-junto, compartilhando informacoes, otimizando o desempenho na realizacao de tarefas eestao presentes no dia-a-dia da sociedade. Elas sao estruturas sofisticadas e complexas,mantendo os dados e informacoes ao alcance de seus usuarios. Um fator importante noque diz respeito a comunicacao atraves redes de computadores e a definicao da maneiracomo os diferentes dispositivos estao interligados. Estas formas de conexao sao conhecidascomo topologia. Medeiros (2014) descreve que topologia de rede e qualquer descricao dainterconexao de seus nos em um determinado instante de tempo. Estes nos podem estarinterconectados de varias formas, tanto do ponto de vista fısico quanto logico.

De acordo com Medeiros et al. (2015) a partir do conhecimento sobre a topologia deuma rede e possıvel obter informacoes relevantes sobre a sua infraestrutura relacionadasao numero de dispositivos conectados e a forma na qual essas ligacoes ocorrem. Medeiroset al. (2015) realizou um estudo sobre mecanismos de monitoramento em redes de com-putadores baseando-se na topologia para distribuir sensores a fim de coletar informacoessobre o estado da rede, descrevendo que a distribuicao destes sensores pode ser realizadanas bordas da rede, permitindo que a captura das informacoes seja feita de forma descen-tralizada, facilitando a utilizacao de dispositivos moveis para esta finalidade. Alem dasinformacoes proporcionadas pela infraestrutura de uma rede, os servicos disponibilizadospor ela tambem sao relevantes para o conhecimento de toda a estrutura.

Aliado as exigencias ja conhecidas sobre o entendimento em topologias de rede, aorigem de um novo conceito denominado de IoT (Internet of Things) que visa proporcionara comunicacao direta entre qualquer objeto que possa estar conectado a Internet, traz anecessidade de conhecimento sobre novos conceitos nas redes de computadores. SegundoLopez et al. (2013), a nova geracao de usuarios da Internet quer ir alem da conexao depessoas em redes sociais, querem controlar todas as “coisas” em suas vidas a qualquer horae qualquer lugar, auxiliados pela tecnologia dos smartphones. A IoT esta sendo aplicadaem uma serie de areas como, por exemplo, controle de iluminacao, gestao de trafego econtrole ambiental, formando uma especie de cidade inteligente (Wei e Jin, 2012).

A criacao da chamada Internet das Coisas, tornando simples objetos em dispositivosinterligados, possibilita a obtencao de informacoes referentes a disponibilidade de servicosem cada “coisa” conectada a Internet. Dispositivos ligados a Internet podem forneceralgum tipo de servico e, no sentido de identificar quais servicos poderiam ou nao estardisponıveis em um determinado dispositivo, a utilizacao de uma ferramenta com esteproposito torna-se util. Baseado no status das portas de rede de alguma “coisa” conectadaa Internet pode-se descobrir qual a configuracao de um determinando dispositivo no quediz respeito a disponibilidade de servicos, pois os dispositivos podem esta presentes emambientes totalmente dinamicos, onde constantemente correm o risco de ser danificados ouate mesmo desaparecer devido as perdas de conexao, mobilidade ou limitacao de recursos(Wei e Jin, 2012).

Diante destes cenarios, justifica-se o desenvolvimento de uma ferramenta capaz deobter as rotas de uma determinada rede, descobrindo o caminho percorrido pelos dadosdo dispositivo de origem ate o destino, bem como o tempo gasto para se chegar a cadaum dos dispositivos, colaborando para a descoberta da topologia de uma rede, assim como

Page 25: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

1.3. Objetivos 5

de uma aplicacao que permita coletar informacoes sobre a disponibilidade de servicos emum determinado dispositivo, atraves da verificacao do status das suas portas de rede. Oarmazenamento das informacoes referentes ao tracado de rotas torna-se util, pois os dadoscoletados podem ser validos para determinar a topologia de alguma rede, assim como asinformacoes sobre a disponibilidade de servicos com a finalidade de recolher referencias quepodem ser importantes em questoes de seguranca. Sendo assim, um modulo que permitaa persistencia dos dados coletados pelas ferramentas tambem sera implementado.

1.3 Objetivos

Tem-se por objetivo geral o desenvolvimento de uma aplicacao para dispositivos moveis,utilizando a plataforma de desenvolvimento Android, que tem como finalidade obter e ar-mazenar informacoes coletadas em diversos momentos, referentes a descoberta de servicose tracado de rotas nas redes de computadores.

1.4 Objetivos Especıficos

Nos topicos a seguir serao descritos os objetivos especıficos deste trabalho:1. Implementacao de uma biblioteca para o tracado de rotas e descoberta de infraestru-

tura de rede;2. Implementacao da aplicacao portscan para a descoberta de servicos de rede;3. Construcao de um ambiente para armazenar os dados coletados; e4. Desenvolver um aplicativo para dispositivos moveis que executem o sistema opera-

cional Android incorporando as funcionalidades anteriormente desenvolvidas.

1.5 Organizacao do Documento

Este trabalho contem, alem deste capıtulo, outros topicos que englobam aspectos ref-erentes aos conceitos necessarios para o desenvolvimento deste trabalho. O documentoesta organizado em cinco capıtulos e um apendice. O Capıtulo 2 que diz respeito ao refer-encial teorico o qual e a base de estudo deste projeto e demonstra a importancia do uso deferramentas de rede para um bom funcionamento e comunicacao de toda a infraestruturae disponibilidade de servicos. Ao final do capıtulo, uma fundamentacao teorica sobre asferramentas portscan e traceroute e realizada com a intencao de esclarecer o funciona-mento de cada uma e suas principais caracterısticas, assim como exibe as propriedades doMongoDB, base de dados que sera utilizada para armazenar as informacoes coletadas.

No Capıtulo 3, sao demonstrados os procedimentos metodologicos empregados paraalcancar os objetivos deste trabalho, alem de relatar como foi realizada a implementacaodos objetivos deste trabalho, bem como os testes e os resultados obtidos. No Capıtulo 4,e apresentada uma avaliacao sobre as atividades desempenhadas neste projeto. Por fim,no Apendice A, sao descritas informacoes sobre o ambiente de desenvolvimento e ilustraa configuracao dos componentes necessarios para organizacao da estrutura na plataformaAndroid, alem de conter referencias para a visualizacao dos codigo-fontes desenvolvidosneste trabalho.

Page 26: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

6 Capıtulo 1. Introducao

Page 27: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 7

Capıtulo 2

Revisao Bibliografica

“If knowledge can create problems, it isnot through ignorance that we can solve them.”

Isaac Asimov

Este Capıtulo esta organizado da seguinte forma: Na Secao 2.1, sao descritos funda-mentos basicos sobre redes de computadores com a finalidade de elucidar alguns conceitosdesta area, assim como mecanismos utilizados em aplicacoes que facam uso das redesde computadores. Ainda neste capıtulo, o funcionamento das ferramentas portscan etraceroute, que tambem sao objetos de estudo deste trabalho, serao explicadas, respec-tivamente, nas Secoes 2.2 e 2.3. Ja na Secao 2.4, as propriedades, particularidades eprincipais caracterısticas do MongoDB, banco de dados orientado a documentos, que seraaplicado no desenvolvimento deste estudo, serao relatadas. Por fim, na Secao 2.5 algunsconceitos sobre Web Services serao apresentados.

2.1 Fundamentos de Redes de Computadores

Redes de computadores se tornaram imprescindıveis devido a sua eficiencia em inter-conectar centenas de milhoes de dispositivos de computacao em todo o mundo (Tanen-baum, 2003). A capacidade de alcancar grandes areas geograficas faz com que quilometrosde distancia se aproximem devido a Internet. Para que toda essa complexa estruturafuncione e os dispositivos a ela conectados possam se comunicar, protocolos precisaramser criados para padronizar a comunicacao entre eles. Em uma era em que a maioriados dispositivos moveis contem hardware diferentes, especificacoes diferentes e fabricantesdiferentes, as comunicacoes entre eles sao feitas gracas as convencoes criadas no desen-volvimento dos protocolos. Segundo Kurose e Ross (2013), aplicacoes de rede sao a razaode ser de uma rede de computadores. Se nao fosse possıvel inventar aplicacoes uteis, naohaveria necessidade de projetar protocolos de rede para suporta-las.

De modo que esse trabalho tem como finalidade principal a obtencao de dados a partirde redes de computadores, uma descricao sobre a pilha de protocolos TCP/IP sera feitacom o intuito de elucidar conceitos que serao empregados neste estudo.

2.1.1 Pilha de Protocolos TCP/IP

O TCP/IP e o principal protocolo de envio e recebimento de dados na Internet. Suanomenclatura e formada pela juncao de dois importantes protocolos (que serao detalha-

Page 28: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

8 Capıtulo 2. Revisao Bibliografica

dos em secoes posteriores), o TCP (Transmission Control Protocol) (Postel, 1981b) e IP(Internet Protocol) (Postel, 1998). O conjunto de protocolos contidos neste modelo e di-vidido em camadas que se comunicam, onde cada uma e responsavel por executar tarefaspara que a comunicacao entre dois dispositivos ocorra. A pilha de protocolos TCP/IP eilustrada na Figura 2.1.

Computador A envia os dados.

Computador B

recebe os dados.

Aplicação Aplicação

Transporte

Rede

Enlace

Física Física

Pilha de protocolos TCP/IP

Rede

Transporte

Rede

Enlace

Figura 2.1: Pilha de protocolos TCP/IP.

Fonte: Adaptada de Kurose e Ross (2013).

O TCP/IP trabalha em etapas, percorrendo cada camada e transmitindo as informacoespara a camada seguinte. Uma breve descricao, partindo do mais alto nıvel sobre o com-portamento de cada camada sera feita a seguir.

Na camada de Aplicacao, os protocolos sao especıficos para a finalidade de cada pro-grama que faz uso da rede. Sendo assim, por exemplo, existe um protocolo para a co-municacao entre um cliente Web (Fielding et al., 1999) e um servidor Web, um protocolopara a comunicacao entre um cliente Telnet (Postel e Reynolds, 1983) e um servidor Telnete assim por diante. Os protocolos da camada de transporte fornecem uma comunicacaologica entre as aplicacoes que estao sendo executadas (Kurose e Ross, 2013). Os proto-colos da camada de transporte podem solucionar problemas de confiabilidade, verificandose os dados chegaram a seu destino, assim como de integridade, certificando que os dadoschegaram em sua totalidade. Os protocolos da camada de transporte, concedem a cadaprograma um numero de porta, que e acrescentado a cada pacote para determinar a qualaplicacao ele sera destinado e os pacotes, chamados de segmentos, sao enviados para acamada de rede.

Na camada de transporte, utilizamos portas para identificar os processos que estao

Page 29: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2.1. Fundamentos de Redes de Computadores 9

se comunicando entre os diferentes computadores. Agora, na camada de Rede, usamos oendereco IP para identificar os hosts que fazem parte de uma conexao (Peres et al., 2014).Ao receber os segmentos da camada anterior, a camada de rede encapsula os segmentosem datagramas IP e, por meio de algum protocolo de roteamento, encaminha-o para ocomputador de destino, com base no endereco IP.

Alem do enderecamento entre origem e destino, a camada de rede possui protocolos quepermitem a descoberta de computadores vizinhos em uma mesma rede, bem como paraa descoberta de computadores em outras redes. Os Protocolos ICMP (Internet ControlMessage Protocol) (Postel, 1981a), ARP Address Resolution Protocol (J. Arkko, 2009),IP e protocolos de roteamento como: RIP (Routing Information Protocol) (Postel, 1998),OSPF (Open Shortest Path First) (Moy, 1998) e BGP (Border Gateway Protocol) (Rekhteret al., 2006) sao alguns dos responsaveis por realizarem as tarefas atribuıdas a camada derede.

Ao receber os datagramas da camada de rede, a camada de enlace, camada logica demais baixo nıvel na pilha de protocolos, eles tem a responsabilidade de transferir datagra-mas de um host para outro por meio de um enlace. Enlaces sao canais de comunicacao queconectam hosts adjacentes atraves de um caminho. Essa camada determina os detalhesde como a informacao e enviada fisicamente pela ultima cada da pilha de protocolos, sejapor um cabo de par trancado, fibra otica ou sem fio.

2.1.2 Protocolos

A implementacao das ferramentas envolvidas neste trabalho dependem de um razoavelentendimento sobre os protocolos que serao aplicados. Diante disso, sera abordada aimportancia e principais conceitos de cada protocolo.

O TCP e um protocolo da camada de transporte e tem como objetivo o envio/rece-bimento de dados de forma confiavel ao seu destino. A confiabilidade do TCP e baseadano controle de conexao criada pelo protocolo. Antes de iniciar a transmissao de dados deuma aplicacao, o TCP requisita ao servidor o estabelecimento de uma conexao a qual oservidor pode ou nao aceitar. Para obter a conexao, o protocolo realiza um procedimentodenominado three-way-handshake com o intuito de realizar uma sincronizacao entre as en-tidades envolvidas na transmissao para que informacoes sejam transferidas corretamente(Peres et al., 2014).

Outro ponto importante do protocolo TCP e o controle de fluxo. O receptor, en-quanto recebe os dados, envia mensagens confirmando a recepcao dos dados para o emis-sor, servindo de parametro para que o receptor nao seja sobrecarregado com o envio demensagens, ja que as velocidades de transmissao de ambos podem ser diferentes causandoperda dos dados transmitidos Kurose e Ross (2013).

Alem do TCP, outro protocolo da camada de transporte bastante utilizado em aplicacoese o UDP (User Datagram Protocol) (Postel, 1981c). O UDP e um protocolo simples e naoorientado a conexao, nao fornecendo garantia de que os dados chegarao a seu destino.Por nao ser orientado a conexao esse protocolo e usado em aplicacoes onde e necessaria aentrega dos dados de maneira mais rapida e nao e preciso ocorrer retransmissao em casode falhas. Sendo assim, ao contrario do TCP, o UDP nao possui controle de fluxo, apenasuma verificacao de integridade. Ele realiza a tentativa de entrega dos dados e caso algumdado sofra alteracao no caminho ate o destinatario, o pacote sera descartado (Peres et al.,2014).

Page 30: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

10 Capıtulo 2. Revisao Bibliografica

O protocolo IPv4 (Internet Protocol version 4 ), que pertence a camada de rede,e utilizado para enderecar hosts para os quais os pacotes serao transmitidos. O en-dereco IP e um numero de 32 bits, que representado em decimal tem a seguinte forma:“189.124.133.180”. Cada parte do endereco e responsavel pela identificacao de um com-ponente, seja uma rede ou um dispositivo especıfico. A parte inicial do endereco fazreferencia a uma rede existente e a segunda identifica um host (Peres et al., 2014). Cadaequipamento que esteja em rede deve possuir um endereco IP unico, para que seja possıvela entrega correta dos dados pelos roteadores.

No inıcio do desenvolvimento do protocolo IPv4, acreditou-se que a quantidade de en-derecos fornecidos por ele fosse suficiente para suprir os equipamentos existentes, mas como avanco tecnologico e o surgimento de diversos dispositivos analogos aos computadores,como smartphones, relogios e ate electrodomesticos, em 1990, iniciou-se o desenvolvimentode um protocolo sucessor do IPv4, o IPv6 (Internet Protocol version 6 ) (Deering e Hinden,1998) (Peres et al., 2014). Como principal evolucao, o IPv6 amplia o numero de enderecosdisponıveis a uma escala muito maior.

Enquanto o IPv4 fornece 4 bilhoes de enderecos com seus 32 bits, seu sucessor fornece,para enderecamento, 128 bits. Alem da expansao de sua capacidade, o IPv6 implementaem sua estrutura o uso obrigatorio do IPsec (IP Security) (Frankel e Krishnan, 2001),antes opcional no IPv4. O IPsec e um protocolo que fornece servicos de seguranca como:confiabilidade, integridade e autenticidade na camada de rede, concedendo uma garantiaadicional, ja que a propria camada nao prove recursos de seguranca (Brito, 2013).

Junto ao IP, na camada de rede, esta o ICMP, o qual e utilizado para comunicacao deerros. O ICMP tem como funcao notificar eventos ocorridos durante a transmissao pelosroteadores, mas e usado principalmente para alertar sobre possıveis falhas (Peres et al.,2014). O utilitario ping, usado para testar conexoes entre equipamentos faz uso do ICMPpara obter informacoes da rede. Assim como o ping, o ICMP e empregado na ferramentatraceroute, objeto de estudo neste trabalho, que nos permite estimar a rota percorridapor um pacote ate o seu destino. Na Tabela 2.1 e apresentado os tipos de mensagemICMP.

2.1.3 Desenvolvimento de Aplicacoes em Rede

A comunicacao entre aplicacoes se tornou indispensavel nos sistemas atuais, permitindoa troca de informacoes entre dispositivos. Uma das tecnologias utilizadas para essa in-teracao sao os sockets. Sockets sao mecanismos de comunicacao usados para a troca demensagens entre processos que, teoricamente, estao em hosts diferentes (Kurose e Ross,2013). Para que os hosts possam se comunicar e necessario a utilizacao de protocolos dacamada de transporte, seja TCP ou UDP (Peres et al., 2014). De acordo com Tanenbaum(2003) o socket funciona como uma interface entre a camada de aplicacao e a de transporteem uma maquina. Basicamente, os sockets sao definidos atraves de um endereco IP e deum numero de porta do respectivo protocolo de transporte que sera usado.

Com essas informacoes, e possıvel identificar de maneira unica qual o destino da in-formacao a qual aplicacao especificamente ela sera entregue. Entre os tipos de socketsexistentes, serao abordados o stream socket e o datagram socket. O stream socket fornecefluxos de comunicacao confiaveis, ou seja, caso seja preciso garantir a entrega das in-formacoes enviadas ao outro lado da conexao e que a transmissao esteja livre de erros, suaaplicacao sera mais apropriada (Kurose e Ross, 2013).

As caracterısticas de confiabilidade contidas no stream sockets provem da utilizacao

Page 31: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2.2. Descoberta de Servicos 11

do protocolo de controle de transmissao, TCP, que garante que os dados cheguem ıntegrose do IP que garante o correto roteamento ate o destino. Ja o datagram socket tambemutiliza o IP para o roteamento, mas nao usa TCP, e sim o UDP. Datagram sockets saoconhecidos por serem sockets nao orientados a conexao, isso se deve as caracterısticas doUDP, que objetiva a entrega e recebimento dos dados da forma mais rapida possıvel. Aocontrario do TCP, o UDP nao estabelece uma conexao, a unica garantia fornecida peloprotocolo e a de que caso um pacote sofra alguma alteracao entre a origem e o destino eleo pacote sera descartado (Kurose e Ross, 2013).

2.2 Descoberta de Servicos

Nos dias de hoje, quando falamos em seguranca nas redes de computadores, citamosa Internet com bastante frequencia, pois e nela que ocorrem a maioria dos ataques emcomputadores e, consequentemente, nos servicos ofertados por ela. Um dos maiores prob-lemas referentes a questoes de seguranca em computadores sao as vulnerabilizardes a qualeles estao expostos, permitindo a exploracao de falhas com o intuito de violar sistemas ouobter informacoes. Segundo Nakamura e de Geus (2007) possıveis problemas podem serencontrados e potenciais ameacas podem surgir, as quais se destacam:

• Destruicao de informacoes;• Alteracao na integridade das informacoes;• Interceptacao de informacoes; e• Paralisacao de servicos.

Diante deste ambiente inseguro, empresas e instituicoes buscam formas de manter aseguranca de suas informacoes e a estabilidade em seus servicos atraves de politicas deseguranca e utilizacao de ferramentas capazes de monitorar e verificar provaveis problemas.Um dos metodos que podem ser usados para minimizar tais situacoes e a aplicacao deferramentas portscan. Portscan sao programas com a capacidade de detectar possıveisvulnerabilidades nos servicos ofertados por uma rede de computadores (Lyon, 2012). Elesobjetivam a varredura em portas de rede de um determinado host e, com as informacoesobtidas, permitem a busca por falhas de seguranca que possam permitir ataques e causarcircunstancias indesejadas. Em outras palavras, os portscan tem como proposito o testeem portas de rede em um host especıfico. Ao realizar esses testes, ele investiga o statusdas portas, verificando, basicamente, se estao abertas, fechadas ou filtradas.

Diversas tecnicas podem ser utilizadas para examinar o status de uma porta e anal-isar quais servicos podem estar disponıveis. Porem, neste trabalho, citaremos tres formasde se realizar essa sondagem, baseando-se nas tecnicas de escaneamento suportadas poruma conhecida ferramenta de varredura de portas, denominado Nmap (Lyon, 2012). Parafacilitar o entendimento sobre cada uma dessas tecnicas, na Figura 2.2 e representado ocabecalho de um pacote IPv4, contendo os campos que serao utilizados para os procedi-mentos.

A primeira tecnica de varredura de portas e a TCP SYN. Ela tem como principal carac-terıstica a nao conclusao de uma conexao TCP com o computador alvo. O host de origemenvia um pacote com o campo flag contendo a flag SYN, para iniciar o estabelecimentoda conexao e aguarda alguma resposta. Caso receba uma flag SYN/ACK, assinala que aporta esta aberta, mas se a resposta obtida for um RST (reset), e provavel que a portanao esteja aberta. Se mesmo apos diversas tentativas de conexao nao for recebida resposta

Page 32: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

12 Capıtulo 2. Revisao Bibliografica

0 1 2 3

4

0

1 2 3 4 5 6 70 8 91

0

2

0

3

02 3 4 5 6 7 81 9 2 3 4 5 6 7 81 9 1

8

Version IHL Type of Service Total Length

Flags

(RDM)Identification Fragment Offset

Time to Live Protocol Header Checksum

Destination Address

Source Address

Options

12

16

20

bytes

bits

R - Reserved

MF - More fragments

DF - Don't framgment

Figura 2.2: Cabecalho do protocolo IP.

Fonte: Medeiros (2009).

alguma, a porta e classificada como filtrada. A porta tambem sera rotulada como filtradacaso a origem receba um erro de host inalcancavel por um pacote ICMP. A Tabela 2.1contem os codigos de erro ICMP. E possıvel perceber que por meio dessa tecnica podemosdistinguir com clareza o status obtido para cada porta.

Outra forma de varredura de portas e utilizando a tecnica TCP connect. Esse modo descanner se torna uma alternativa quando nao e possıvel utilizar o TCP SYN, ja que esteultimo requer privilegios na maquina onde sera executado. Ao contrario do TCP SYN, oTCP connect nao envia pacotes em estado bruto ao destinatario, solicitando ao sistemaoperacional para que estabeleca uma conexao com o host alvo, enviando chamadas desistema connect() (Lyon, 2012). Atraves das respostas recebidas por cada tentativa deconexao e possıvel obter o status de cada porta. Devido ao fato dessa tecnica tentar re-alizar conexoes por meio de chamadas de sistemas connect() as conexoes sao completadas,fornecendo ao host destino a possibilidade de registro dessas conexoes e, caso ele tenha al-guma ferramenta que monitore sua rede, essas tentativas de varredura serao identificadas.

O Scan UDP e a ultima tecnica a ser descrita nessa secao. Apesar de usar o protocolode transporte UDP ao inves do TCP, esse tipo de verificacao nao e menos importante doque as citadas anteriormente. Servicos importantes como DNS (Domain Name System)(Mockapetris, 1987) e DHCP (Dynamic Host Configuration Protocol) (R. Droms, 1997)(que tem a finalidade de atribuir dinamicamente enderecos IP a dispositivos) trafegamsobre UDP e podem se tornar potenciais alvos em ataques a um host. De maneira diferente,o scan UDP encaminha um cabecalho UDP vazio para a porta escolhida e, caso ocorra umerro de porta inalcancavel com tipo e codigo 3, indica que a porta esta fechada. Outroserros do tipo 3, mas com os codigos 1, 2, 9, 10 ou 13 determinam a porta como filtrada.Apos outras tentativas de conexao sem resposta a porta e classificada como aberta/filtrada(Lyon, 2012).

2.3 Descoberta de Rotas

O traceroute e uma ferramenta de diagnostico em redes de computadores que temcomo objetivo descobrir o caminho percorrido por um pacote de dados, desde o hostde origem ate o destino. O traceroute e normalmente utilizado para realizar testes

Page 33: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2.3. Descoberta de Rotas 13

Tipo Codigo Descricao

0 0 Resposta de ECHO.

3 0 Rede de destino inalcancavel.

3 1 Host de destino inalcancavel

3 2 Protocolo de destino inalcancavel.

3 3 Porta de destino inalcancavel.

3 6 Rede de destino desconhecida.

3 7 Host de destino desconhecido.

4 0 Reducao da fonte (controle de congestionamento).

8 0 Solicitacao de ECHO.

9 0 Anuncio do roteador.

10 0 Descoberta do roteador.

11 0 TTL expirado.

12 0 Cabecalho IP invalido.

Tabela 2.1: Tipos de mensagens ICMP.

Fonte: Adaptada de Kurose e Ross (2013).

na infraestrutura de uma rede, identificando falhas em determinados locais durante ocaminho de transmissao dos dados. Com a resposta obtida da ferramenta, pode-se analisare verificar se situacoes problematicas como, por exemplo, perceber se algum roteadoresta descartando pacotes ou que em alguma parte da rota a transmissao dos dados estademorando.

O seu mecanismo esta baseado na utilizacao de um valor numerico, representado pelocampo TTL (Time To Live), presente no cabecalho IP (Figura 2.2), que controla o tempode vida de um pacote em uma rede, como forma de evitar que ele fique no meio detransmissao por tempo indeterminado. Esse valor e decrementado em 1 cada vez que umpacote passa por um roteador e, ao alcancar o valor zero, o pacote e descartado e umamensagem de erro “TIME EXCEEDED” e emitida pelo protocolo de controle ICMP eenviada ao host de origem. Nas Figuras 2.3 e 2.4 sao apresentadas as informacoes obtidaspela ferramenta traceroute tendo como alvo o endereco “scanner.nmap.org”. Na Figura2.3 e mostrado uma captura em uma rede com regras de firewall para pacotes ICMP,obtendo informacoes apenas dos roteadores dentro da propria rede. Na Figura 2.4 e exibidaa captura feita em uma rede sem regras de bloqueio para pacotes ICMP, mostrando todo ocaminho percorrido ate chegar ao endereco destino. Por fim, na Figura 2.5 e apresentadoo mecanismo da ferramenta traceroute para exemplificar seu funcionamento.

1 $ traceroute to scanner.nmap.org (173.255.243.189), 30 hops max, 60 byte packets

2 1 192.168.21.1 (192.168.21.1) 2.869 ms 4.130 ms 4.191 ms

3 2 flag.labepi.ufrn.br (192.168.0.254) 13.428 ms 13.436 ms 13.798 ms

4 3 10.142.16.1 (10.142.16.1) 15.363 ms 15.370 ms 15.369 ms

5 4 * * *

6 ...

7 30 * * *

Figura 2.3: Traceroute em funcionamento em rede local com firewall.

Fonte: Elaborada pelo autor.

Page 34: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

14 Capıtulo 2. Revisao Bibliografica

1 $ traceroute to scanner.nmap.org (173.255.243.189), 30 hops max, 60 byte packets

2 1 192.168.0.10 (192.168.0.10) 5.563 ms 5.547 ms 5.540 ms

3 2 180-105-177-1.sidys.com.br (177.105.180.1) 19.136 ms 19.310 ms 19.438 ms

4 3 10.30.0.1 (10.30.0.1) 17.014 ms 21.822 ms 21.692 ms

5 4 sidys.static.gvt.net.br (179.185.39.81) 22.362 ms 22.599 ms 22.686 ms

6 5 Vlan2098.static.gvt.net.br (179.185.39.60) 74.909 ms 74.792 ms 75.036 ms

7 6 gvt-te-0-0-0-0.rc02.fla.gvt.net.br (179.185.129.226) 81.367 ms 68.693 ms

8 68.680 ms

9 7 177.205.8.103.static.adsl.gvt.net.br (177.205.8.103) 80.560 ms 90.795 ms

10 90.779 ms

11 8 gvt-te-0-3-0-4.rc02.sdr.gvt.net.br (187.115.218.226) 94.785 ms 94.792 ms

12 94.788 ms

13 9 177.205.10.136.static.adsl.gvt.net.br (177.205.10.136) 93.835 ms 93.445 ms

14 93.836 ms

15 10 xe0-1-0-0-grtssatw1.net.telefonicaglobalsolutions.com (84.16.7.157) 68.074 ms

16 68.050 ms 68.057 ms

17 11 xe5-2-0-0-grtfortw1.net.telefonicaglobalsolutions.com (84.16.14.242) 104.642 ms

18 xe7-3-0-0-grtfortw1.net.telefonicaglobalsolutions.com (5.53.5.54) 81.483

19 ms xe5-2-0-0-grtfortw1.red.telefonica-wholesale.net (84.16.14.242) 44.144 ms

20 12 xe9-0-6-0-grtmiabr4.red.telefonica-wholesale.net (94.142.123.178) 119.157 ms

21 119.532 ms te0-3-0-13-grtmiabr6.red.telefonica-wholesale.net (94.142.123.174)

22 205.060 ms13 xe4-0-1-0-grtdaleq4.net.telefonicaglobalsolutions.com (94.142.119.33)

23 205.044 ms xe-0-0-2-0-grtdaleq4.red.telefonica-wholesale.net (176.52.251.49)

24 205.049 ms xe4-0-1-0-grtdaleq4.red.telefonica-wholesale.net (94.142.119.33)

25 205.032 ms

26 14 213.140.53.254 (213.140.53.254) 205.028 ms 205.025 ms 205.023 ms

27 15 10ge9-1.core3.fmt2.he.net (72.52.92.153) 205.036 ms 205.011 ms 205.208 ms

28 16 router3-fmt.linode.com (65.49.10.218) 205.019 ms router4-fmt.linode.com

29 (64.71.132.138) 205.202 ms router3-fmt.linode.com (65.49.10.218) 205.193 ms

30 17 * * *

31 ...

32 30 * * *

Figura 2.4: Traceroute em funcionamento em rede local sem firewall.

Fonte: Elaborada pelo autor.

Figura 2.5: Funcionamento do traceroute.

Fonte: Elaborada pelo autor.

Page 35: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2.4. MongoDB 15

2.4 MongoDB

O MongoDB surgiu como uma nova ideia para o armazenamento de dados em aplicacoesque necessitam de flexibilidade na estrutura de seus dados. A definicao basica do Mon-goDB e a utilizacao do conceito de banco de dados orientados a documentos, que temcomo princıpio a concepcao de que cada documento deve ser autocontido e autodescritivoou seja, que cada registro decide como ele deve ser exibido e qual o significado dos dadossalvos na estrutura (Banker, 2011).

Segundo Lennon (2011), por ser orientado a documentos, ele se difere dos tradicionaisbancos de dados relacionais que utilizam esquemas bidimensionais para representar in-formacoes por meio de linhas e colunas, se tornando um modelo nao relacional. Esse tipode base de dados permite ainda o agrupamento de todas as informacoes significativas emum unico documento, facilitando assim a criacao de consultas para obter determinadasinformacoes, alem de permitir a apresentacao de todos os dados sem o uso de relaciona-mentos (propriedade imprescindıvel nos banco de dados relacionais), gerando assim umamaior performance. Uma importante propriedade que possibilita ao MongoDB um alto de-sempenho e a aplicacao de redundancia e inconsistencia em suas informacoes, propiciandoo retorno de uma consulta sem a necessidade de vasculhar outros documentos.

Outro fundamento do MongoDB consiste na nao utilizacao da linguagem de consultaSQL (Structured Query Language) para a realizacao de buscas na base de dados (Mon-goDB, 2015). Uma analise de desempenho comparando o MongoDB com outras bases dedados e feita na Secao 3.6 com a finalidade de justificar sua escolha para este projeto.

No MongoDB, os documentos equivalem aos registros nos bancos de dados relacionais.Para esclarecer este conceito, os trechos de codigo abaixo demonstrarao a estrutura, criacaoe armazenamento de algumas informacoes.

1 Dados = {

2 nome: "Jose Carlos",

3 curso: "Pedagogia",

4 cidade: "Caico/RN"

5 }

Figura 2.6: Exemplo de criacao de documento com MongoDB.

Fonte: Elaborada pelo autor.

Na Figura 2.6 e representada a criacao de um documento denominado “Dados”quecontem tres atributos: nome, curso e cidade. E possıvel perceber que nao e preciso ainsercao de regras de validacao, tipos de dados ou tamanho dos atributos, garantindoflexibilidade no armazenamento.

Outra possibilidade de representar as mesmas informacoes estao no trecho de codigona Figura 2.7.

Ambos os trechos registram as mesmas informacoes, mas contem atributos diferentes.Ja no codigo da Figura 2.8 e demonstrado como e possıvel armazenar o documento criadoem um banco de dados chamado “ipsensor”.

Diante das informacoes supracitadas, e perceptıvel a versatilidade na estrutura dosdados que podem ser gerenciados pelo MongoDB, tornando-o util para aplicacoes quedemandam o arquivamento de dados que podem variar sua formacao e/ou que nao preciseda criacao de relacionamentos para representar suas informacoes.

Page 36: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

16 Capıtulo 2. Revisao Bibliografica

1 Dados = {

2 nome: "Jose Carlos",

3 curso: "Pedagogia",

4 cidade:{ nome:"Caico", estado:{"Rio Grande do Norte"}

5 }

Figura 2.7: Exemplo de criacao de documento com MongoDB.

Fonte: Elaborada pelo autor.

1 db.ipsensor.save(Dados)

Figura 2.8: Exemplo de persistencia de um documento com MongoDB.

Fonte: Elaborada pelo autor.

2.5 Web Services

Diante do avanco da Internet para o mercado corporativo, surgiu a necessidade dese integrar aplicacoes que abrangem nao apenas redes locais, mas ambientes contendotecnologias diferentes. A partir dessa exigencia, segundo Gomes (2010), deu-se origema tecnologia conhecida como Web Service, tendo inıcio em um consorcio formado porgrandes empresas tais como a IBM e Microsoft que se juntaram para unir tecnologias dedesenvolvimento Web disponıveis na epoca e criar um padrao para o desenvolvimento Webchamado de SOAP (Simple Object Acess Protocol).

Ainda de acordo com Gomes (2010), com o desenvolvimento de Web Services podemosdesenvolver softwares capazes de interagir enviando ou recebendo informacoes de outrossoftwares, independente da linguagem em que foram desenvolvidos, o sistema operacionalque esta sendo executado ou hardware disponıvel. Os Web Services disponibilizam todaessa liberdade desde que a comunicacao e troca de dados ocorra atraves do formato XML(eXtensible Markup Language). A Figura 2.9 ilustra a interacao entre a solicitacao de umcliente e a resposta de um Web Service.

Figura 2.9: Funcionamento do Web Service com SOAP.

Fonte: Adaptado de Gomes (2010).

A sequencia de acoes descritas na Figura 2.9 sao explicadas a seguir:

1. Efetuar o download do WSDL: nesta etapa o cliente realiza o download do WSDL(Web Services Description Language) que e um arquivo no formato XML, que temcomo finalidade descrever as informacoes do Web Service, assim como as operacoes

Page 37: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

2.5. Web Services 17

que o compoem, definindo o formato de entrada e saıda de dados em cada operacao;2. Enviar solicitacao XML: apos receber o arquivo WSDL, o cliente envia uma so-

licitacao no formato XML realizando chamadas ao Web Service, atraves de seuURI (Uniform Resource Identifier);

3. Recebe resposta XML: ao final, depois de receber a solicitacao do cliente, o WebService realizara algum tipo de processamento e podera ou nao enviar o resultadodo processamento para o cliente, tambem no formato XML.

Conforme Gomes (2010), a arquitetura projetada para a transferencia de mensagensXML especifica que qualquer protocolo como HTTP, FTP, SMTP ou TCP pode ser us-ado, mas devido ao fato do HTTP ser dominante na Internet, ser suportado por todasas plataformas de software e nao sofrer com restricoes de firewall acaba sendo o maisempregado.

Page 38: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

18 Capıtulo 2. Revisao Bibliografica

Page 39: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 19

Capıtulo 3

Desenvolvimento

“Everything should be made as simple as possible, but not simpler.”Albert Einstein

Este Capıtulo tem a finalidade de apresentar em detalhes os metodos, ferramentas,experimentos e tecnicas empregadas para o desenvolvimento deste trabalho.

3.1 Introducao

O desenvolvimento deste trabalho tem origem, inicialmente, nas questoes relacionadasa coleta de informacoes por meio de dispositivos moveis a partir de redes de computadores.Uma de suas funcionalidades e um portscan, que sera capaz de realizar a varredura emportas de um host com o intuito de investigar o status de portas de rede. Em consequencia,sera capaz de ter informacoes sobre a possıvel disponibilidade de determinados servicosem uma maquina analisada.

A implementacao do portscan usara a tecnica TCP connect, fazendo uso de chamadasde sistema para realizar a conexao com o host. Outro quesito abordado por este trabalhoe a verificacao da infraestrutura de uma rede de computadores usando uma ferramenta detracado de rotas. Esta ferramenta e capaz de descobrir por quais roteadores um pacoteatravessa na Internet ate chegar a um destino especıfico, atraves da utilizacao de um campopresente no cabecalho do IP, o TTL. O TTL tem a finalidade de representar o tempo devida de um pacote em uma rede de computadores, por meio dele e possıvel controlar ossaltos entre roteadores de um pacote ate que ele seja descartado pela rede. Alem disso, epossıvel calcular o RTT (Round Trip Time), que e o tempo estimado para uma informacaochegar ao destinatario e o remetente receber sua confirmacao (Tanenbaum, 2003).

Todos os roteadores sao programados para descontar uma unidade do TTL de cadapacote que o atravessa e, desta forma, evita que os pacotes permanecam por um tempoindeterminado na rede causando um trafego desnecessario. Os dados obtidos serao ar-mazenados por meio de um Web Service em uma base de dados MongoDB, um banco dedados orientado a documentos que fornece uma estrutura mais flexıvel, sem definicoes detipo ou tamanho de campos, tornando-se mais adequada para salvar os dados colhidospor essa aplicacao, disponibilizando essas informacoes de forma centralizada. Todas essasfuncionalidades estarao disponıveis em um aplicativo para dispositivos moveis que estejamexecutando o sistema operacional Android a partir da versao 4.1.

Page 40: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

20 Capıtulo 3. Desenvolvimento

3.2 Procedimentos Metodologicos

Este trabalho esta constituıdo na construcao de duas ferramentas que se baseiam eminformacoes obtidas atraves das redes de computadores, empregadas por meio de umaplicativo desenvolvido na linguagem de programacao Java, utilizando a plataforma de de-senvolvimento Android. Para tornar possıvel a implementacao das funcoes dessa aplicacao,sera necessario a utilizacao da IDE de desenvolvimento Eclipse que tem seu funcionamentobaseado em plugins, permitindo a integracao com o plugin ADT (Android Developer Tools),que facilita a execucao de tarefas no desenvolvimento Android. Juntamente com o SDK(Software Development Kit) do Android, eles fornecem os softwares necessarios para aelaboracao de programas Android.

A construcao do aplicativo sera feita de forma modular, tornando algumas funcional-idades independentes para o uso em outras aplicacoes. Um dos modulos sera compostopor uma biblioteca, que sera responsavel pelas funcoes de descoberta de rotas e servicosem redes de computadores, sendo o encarregado por coletar os dados necessarios. Outrocomponente desta aplicacao sera responsavel pelo armazenamento dos dados obtidos, demodo que seja possıvel enviar remotamente as informacoes obtidas. Por fim, a construcaoda interface grafica do aplicativo sera feita utilizando uma GUI (Graphical User Interface)Android, um framework de interface de usuario orientado a eventos que utiliza arquivosXML (eXtensible Markup Language) para modelar e organizar os componentes fornecidospela biblioteca.

3.2.1 Caracterizacao da Pesquisa

A metodologia escolhida para a elaboracao deste trabalho foi a abordagem DesignScience. Esta tem como objetivo a producao de conhecimento a partir da busca de solucoespara problemas do mundo real utilizando como referencias as tecnicas, procedimentos,fundamentos e ferramentas que sao aplicadas por profissionais de determinada area, tendoum importante papel como meio de aproximar a teoria e pratica (Aken, 2005). Comoproposta de orientacao para a pesquisa, a abordagem design science se baseia em diretrizesque devem ser seguidas a fim de se obter os resultados desejados, sendo elas:

• Tem como objeto de estudo o desenvolvimento de um artefato;• Verificar a relevancia do problema;• Avaliacao rigorosa sob o aspecto do funcionamento do artefato;• Contribuicao da pesquisa para a area de conhecimento;• Pesquisa rigorosa sobre as tecnicas a serem empregadas; e• Uso eficiente de recursos.

Aken (2005) destaca que as formas de contribuicoes para um trabalho podem ser:

• Projeto do artefato: quando o artefato e uma solucao para um problema que nao foisolucionado ou aplicando um conhecimento ja existente a partir de uma nova visao;

• Ampliacao dos fundamentos: permite que novas informacoes sejam adicionadas abases de conhecimentos ja existentes, podendo estender tecnicas que melhorem asteorias, estruturas, metodos ou prototipos;

• Desenvolvimento de novas metodologias: possibilita a contribuicao da pesquisa parao desenvolvimento de novas metodologias, colaborando com a expansao da base deconhecimento existente.

Page 41: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.2. Procedimentos Metodologicos 21

Este trabalho aplicou, como forma de contribuicao, o tipo projeto do artefato para odesenvolvimento da pesquisa, ja que, segundo as caracterısticas desse tipo, os conhecimen-tos para a construcao do artefato em questao ja existem, sendo implementado por umaotica diferente.

Durante o desenvolvimento deste trabalho, foram realizadas as seguintes atividades:

1. Escolha do tema;2. Estudo bibliografico;3. Estudo tecnico;4. Desenvolvimento do aplicativo; e5. Validacao das ferramentas e testes.

3.2.2 Estudo Bibliografico

O estudo bibliografico deste trabalho ocorreu por meio de pesquisas a diversas obrasacademicas, com o intuito de fundamentar o trabalho, obtendo informacoes e conhecendoo estado da arte nas areas de redes de computadores, dispositivos moveis e armazenamentode dados.

3.2.3 Estudo Tecnico

A realizacao do estudo tecnico foi feito atraves de informacoes obtidas nas docu-mentacoes das tecnologias envolvidas no desenvolvimento deste trabalho (Java, Androide MongoDB), bem como em foruns publicos na Web, em vıdeo aulas, livros e tutoriais.

3.2.4 Desenvolvimento do Aplicativo

Apos o estudo tecnico, com o entendimento sobre o problema, foi possıvel implementaras ferramentas, envolvendo as seguintes atividades:

1. Construcao da biblioteca de tracado de rotas, para que seja possıvel verificar ocaminho percorrido por um pacote da sua origem ate o destino;

2. Construcao da biblioteca para o portscan, descobrindo qual o status de uma portalogica em um determinado endereco;

3. Desenvolvimento da classe de banco de dados com o MongoDB, sendo possıvel re-alizar a persistencia dos dados capturados;

4. Criacao do aplicativo para o sistema operacional Android, integrando as bibliotecasdesenvolvidas e a classe de conexao com a base de dados MongoDB; e

5. Criacao e configuracao de um Web Service para realizar o armazenamento dos dadosna base de dados MongoDB em um servidor remoto.

3.2.5 Validacao das Ferramentas e Testes

Ao final do desenvolvimento das bibliotecas e do aplicativo, para verificar e validar asinformacoes obtidas por elas, alguns procedimentos foram realizados. Algumas ferramen-tas ja existentes, contendo as mesmas funcionalidades propostas pelas bibliotecas, foramutilizadas para atestar o correto funcionamento. Estas etapas estao contidas na Secao 3.9.Alem disso, testes com o aplicativo foram feitos para certificar que o mesmo cumpre osrequisitos deste trabalho.

Page 42: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

22 Capıtulo 3. Desenvolvimento

3.3 Implementacao da Biblioteca PingWrapper

Nesta etapa de desenvolvimento foram realizadas atividades voltadas a construcao deuma biblioteca capaz de obter informacoes sobre o caminho percorrido por um pacote apartir de um dispositivo de origem ate o seu destino, utilizando um procedimento semel-hante ao citado na Secao 2.3. Para isso, como principal recurso, o utilitario ping foiempregado para que fosse possıvel encontrar cada computador durante o caminho ate odestino.

O comando ping permite a configuracao de parametros, tais como o numero de pacotesque serao enviados, o intervalo de tempo para o envio de um proximo pacote, um intervalode tempo para aguardar a resposta de um determinado alvo e o tempo de vida de umpacote, que representa o numero de saltos entre maquinas que os pacotes podem demorarem uma rede antes de serem descartados.

Inicialmente, foi preciso realizar a modelagem da biblioteca, analisando quais in-formacoes seriam uteis para a construcao deste modulo e a forma que cada uma das etapasdeveriam ser desenvolvidas. Pelo fato do funcionamento desta biblioteca para tracado derotas se basear na execucao do comando ping e na manipulacao de seus parametros, osmetodos responsaveis por realizar tais tarefas precisaram ser criados. Com o comandoping ajustado, e possıvel executa-lo para um determinado alvo informado pelo usuario eobter informacoes, que dependem do tipo de resposta que sera retornada pelo destino.

Como a finalidade do metodo para a execucao do ping e apenas realizar uma chamadaao sistema operacional para um determinado alvo e retornar o resultado obtido, se tornounecessario a criacao de um metodo capaz de, a partir de um comando ping, alterando oparametro do tempo de vida do pacote, descobrir cada maquina pela qual o pacote passaate chegar ao seu destino. A tarefa deste metodo e realizar comandos ping, incrementandoo tempo de vida do pacote em 1 ate que se se consiga chegar ao destino ou que o pacotenao encontre o seu destino mesmo apos percorrer um numero maximo de 30 maquinas.Objetivando determinar que um pacote chegou ao seu destino, outro metodo foi desen-volvido, permitindo a biblioteca encerrar a sua execucao no caso encontre o endereco dedestino.

O link para o codigo-fonte desta biblioteca esta disponıvel no Apendice A.4.

Apos a conclusao do desenvolvimento desta biblioteca, alguns testes foram feitos afim de validar o seu funcionamento e a corretude do algoritmo criado. Os procedimentosexecutados estao disponıveis na Secao 3.9.

3.4 Implementacao da Biblioteca PortScan

O proximo passo no desenvolvimento deste trabalho e a implementacao da bibliotecaresponsavel por realizar os procedimentos de um portscan. A partir dos conceitos e datecnicas demonstradas na Secao 2.2, as funcionalidades da biblioteca foram desenvolvidascom o intuito de se obter as informacoes referentes ao status das portas de determinadoalvo.

Assim como na biblioteca PingWrapper, primeiramente foi preciso fazer uma analisee modelagem dos dados com o proposito de verificar as caracterısticas necessarias parao funcionamento do portscan e quais seriam suas principais funcionalidades. Devido as

Page 43: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.5. Arquitetura da Aplicacao 23

limitacoes/restricoes inerentes aos privilegios que um usuario tem para criar pacotes emestado bruto e envia-los a um alvo para obter informacoes sobre o status de suas portas, asolucao encontrada para a implementacao do portscan foi a utilizacao de sockets, atraves dosistema operacional, para estabelecer uma conexao com a maquina e porta alvos enviandouma chamada de sistema connect(). Apesar de ser mais lenta e existirem outras formasde varredura de portas, como as citadas na Secao 2.2, esta tecnica foi escolhida por ser amais apropriada quando nao se tem privilegios de usuario.

Nesta biblioteca, as formas de varreduras de portas foram implementadas usando difer-entes parametros. Ela e capaz de verificar todas as 216 portas disponıveis, as 10 portas,mais utilizadas pelos principais servicos ou entre um intervalo de portas. A bibliotecatambem permite diferenciar o status retornado por cada uma das portas, ou seja, se estaaberta, fechada ou filtrada. Embora a chamada de sistema connect() nao possua valor deretorno, e possıvel, atraves das formas de excecoes lancadas e capturadas por blocos detry/catch, discernir o estado de cada uma das portas.

O link para o codigo-fonte desta biblioteca esta disponıvel no Apendice A.4.

3.5 Arquitetura da Aplicacao

Com o proposito de exemplificar a organizacao dos modulos desenvolvidos e arquiteturada aplicacao, assim como o fluxo de informacoes contidas no aplicativo a Figura 3.1 foicriada. Os dispositivos moveis na Figura 3.1 ilustram a execucao das ferramentas detracado de rotas e portscan, interagindo com a Internet por meio de um ponto de acessosem fio para coletar informacoes. Da mesma forma, utilizando a Internet, as informacoessao enviadas para um Web Service que recebe os dados e realiza a persistencia na base dedados MongoDB.

Page 44: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

24 Capıtulo 3. Desenvolvimento

Figura 3.1: Arquitetura da aplicacao.

Fonte: Elaborada pelo autor.

3.6 Desenvolvimento da Classe de Conexao com o Banco deDados

Baseado nas informacoes expostas na Secao 2.4 e na analise feita a partir de metricascontidas em Li e Manoharam (2013), que realiza um estudo sobre algumas bases de dadospara comparar caracterısticas e verificar quais operacoes tem o melhor desempenho entreos bancos de dados analisados. A partir desta analise, a base de dados MongoDB foiescolhida para armazenar e gerenciar as informacoes obtidas pelas bibliotecas PingWrappere PortScan.

O estudo consiste na analise de desempenho em determinadas operacoes, como leitura,escrita, deletar um registro e busca por todos os registros. Contudo, de modo que afinalidade deste trabalho tem como requisito as operacoes de escrita e busca de registros

Page 45: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.6. Desenvolvimento da Classe de Conexao com o Banco de Dados 25

armazenados, apenas esses dois valores, juntamente com o tempo de leitura dos dadosforam analisados. Nas Tabelas 3.1, 3.2 e 3.3 sao exibidos, respectivamente, os resultadosobtidos a partir de Li e Manoharam (2013) para cada uma das operacoes.

Base de dados/Operacoes 10 50 100 1000 10000 100000

MongoDB 61 75 84 387 2693 23354

RavenDB 570 898 1213 6939 71343 740450

CouchDB 90 374 616 6211 67216 932038

Cassandra 117 160 212 1200 9801 88197

Hypertable 55 90 184 1035 10938 114872

CouchBase 60 76 63 142 936 8492

Microsoft SQL Express 30 94 129 1790 15588 216479

Tabela 3.1: Tempo para escrita de n registros em milissegundos.

Fonte: Li e Manoharam (2013).

Base de dados/Operacoes 10 50 100 1000 10000 100000

MongoDB 8 14 23 138 1085 10201

RavenDB 140 351 539 4730 47459 426505

CouchDB 23 101 196 1819 19508 176098

Cassandra 115 230 354 2385 19758 228096

Hypertable 60 83 103 420 3427 63036

CouchBase 15 22 23 86 811 7244

Microsoft SQL Express 13 23 46 277 1968 17214

Tabela 3.2: Tempo para leitura de n registros em milissegundos.

Fonte: Li e Manoharam (2013).

Base de dados/Operacoes 10 50 100 1000 10000 100000

MongoDB 4 4 5 19 80 702

RavenDB 101 113 115 116 136 591

CouchDB 67 196 19 173 1063 9512

Cassandra 47 50 55 76 237 709

Hypertable 3 3 3 5 25 159

Microsoft SQL Express 4 4 4 4 11 76

Tabela 3.3: Tempo para buscar todos os n registros em milissegundos.

Fonte: Li e Manoharam (2013).

Diante dos resultados obtidos, foi possıvel analisar o desempenho de cada uma dasbases de dados e compara-las. O MongoDB e CouchBase tiveram as melhores mediaspara o numero minimo e maximo de operacoes, tornando-se candidatas a serem escolhi-das. Apesar da Microsoft SQL Express ter alcancado o melhor tempo de busca, nao setornou uma opcao ja que e uma base de dados relacional, nao se caracterizando como req-

Page 46: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

26 Capıtulo 3. Desenvolvimento

uisito deste trabalho. A escolha do MongoDB se deu pelo fato do CouchBase nao possuirfuncionalidade para buscar todos os registros, tornando-o inviavel para utilizacao.

A partir dessa escolha foi implementada uma classe de conexao que possibilitou ar-mazenar as informacoes de ambas as bibliotecas em um servidor remoto, utilizando umWeb Service (detalhado na Secao 3.7). Devido a facilidade de configuracao deste bancode dados, apenas algumas informacoes referentes ao endereco da maquina onde os dadosserao armazenados, a sua respectiva porta e o nome da base de dados foram necessariaspara que fosse possıvel utiliza-lo.

O link para o codigo-fonte implementado para esta finalidade esta disponıvel no apendiceA.

3.7 Implementacao do Web Service

Diante da exigencia deste trabalho para armazenar os dados coletados com as bib-liotecas em um servidor remoto, surgiu a necessidade da criacao de um Web Service paraexecutar tal tarefa. A plataforma de desenvolvimento Android nao fornece uma aplicacaonativa em seu sistema operacional para enviar dados remotamente a algum servidor, tor-nando indispensavel a criacao de um Web Service para realizar a ligacao entre o dispositivoque captura as informacoes e a base de dados onde serao armazenadas.

Para que o Web Service funcionasse corretamente, alguns requisitos foram necessariosa fim de realizar a sua correta configuracao. A princıpio, foi preciso realizar o download einstalacao do Apache Tomcat. O Tomcat e uma aplicacao que fornece um servidor Webem Java por meio de um container, onde diversos servicos Web podem ser disponibilizadosAraujo (2010). Alem disso, foi preciso a instalacao do framework Apache Axis, que e umframework de codigo aberto, baseado na linguagem Java e no padrao XML, utilizado paraconstrucao de Web Service no padrao SOAP (Gomes, 2010).

Apenas algumas informacoes obtidas com a aplicacao por meio das bibliotecas neces-sitam ser armazenadas e, por isso, foram criadas classes de modelo/entidade para que oarquivo WSDL, que representa os dados e as operacoes no Web Service fosse construıdocom as informacoes que precisam ser persistidas na base de dados MongoDB. Apos aconfiguracao do ambiente para o Web Service com o Apache Tomcat e o Apache Axis, amodelagem das classes para ambas as bibliotecas foram implementadas, sendo responsaveispor enviar os dados da aplicacao para o Web Service.

O procedimento utilizado para enviar os dados foi o mesmo para as duas ferramentas,onde em cada uma foi criado um objeto do tipo SOAP que encapsula as informacoes e asenvia via HTTP para que o Web Service possa armazenar os dados recebidos.

O link para codigo-fonte desse procedimento esta disponıvel no Apendice deste trabalhona Secao A.4.

3.8 Desenvolvimento do Aplicativo

Neste ultimo passo, foram realizadas as etapas voltadas para a integracao de todasas ferramentas desenvolvidas anteriormente e a criacao de um aplicativo para o sistemaoperacional Android que permita a utilizacao das bibliotecas PingWrapper e PortScan, doWeb Service e da base de dados MongoDB.

Page 47: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.8. Desenvolvimento do Aplicativo 27

A criacao do aplicativo consistiu, basicamente, na criacao da interface grafica, a partirde arquivos XML, com a insercao de alguns campos de texto e botoes para a interacaocom o usuario. Na Figura 3.2 e ilustrada a tela inicial do aplicativo.

Figura 3.2: Tela inicial do aplicativo.

Fonte: Elaborada pelo autor.

Ao selecionar um dos botoes, sera aberta uma tela com a respectiva funcionalidadee o campo para que seja preenchido com o endereco IP que se deseja obter determinadainformacao. Nas Figuras 3.3 e 3.4 sao representadas, respectivamente, as telas das duasferramentas.

Page 48: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

28 Capıtulo 3. Desenvolvimento

Figura 3.3: Tela do PingWrapper.

Fonte: Elaborada pelo autor.

Page 49: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.8. Desenvolvimento do Aplicativo 29

Figura 3.4: Tela do PortScan.

Fonte: Elaborada pelo autor.

A partir do botao em cada uma dessas telas e possıvel iniciar a execucao da ferramentaescolhida e aguardar para que o resultado seja exibido. Na Figura 3.5 e possıvel visualizarum exemplo de resultado da ferramenta de tracado de rotas, ja na Figura 3.6 o resultadodo PortScan e exibido.

Page 50: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

30 Capıtulo 3. Desenvolvimento

Figura 3.5: Exemplo de captura do PingWrapper.

Fonte: Elaborada pelo autor.

Page 51: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.8. Desenvolvimento do Aplicativo 31

Figura 3.6: Exemplo de captura do PortScan.

Fonte: Elaborada pelo autor.

A entrada dos dados na aplicacao necessitou de algumas validacoes para garantir ocorreto funcionamento do aplicativo. Nao e possıvel iniciar nenhuma operacao caso algumdos campos estejam em branco ou contenham um formato de endereco IPv4 incorreto.A aplicacao tambem nao sera executada caso nao haja conexao com a Internet, seja emuma rede Wi-Fi ou utilizando o sinal de alguma operadora de telefonia. Na Figura 3.7 saomostradas as mensagens de alerta do aplicativo.

Page 52: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

32 Capıtulo 3. Desenvolvimento

Figura 3.7: Tela com mensagens de alerta.

Fonte: Elaborada pelo autor.

3.9 Validacao do Aplicativo

Ao final do desenvolvimento do aplicativo, para atestar que o mesmo funciona correta-mente, alguns experimentos foram feitos para verificar a validade dos dados obtidos. Paratal, com a finalidade de comparar os resultados, foi utilizado a ferramenta Nmap. O Nmap eum software livre capaz de realizar portscan e e muito utilizado para avaliar seguranca decomputadores e descoberta de servicos em redes de computadores (Lyon, 2012). Alem dosfatores anteriormente citados o Nmap possui tambem um mecanismo de tracado de rotase, com isso, torna-se o aplicacao util para validacao do aplicativo devido a suas funcional-idades e credibilidade do software na area de redes de computadores. A validacao de cadaferramenta sera feita com informacoes obtidas de diferentes ambientes com o intuito deanalisar o comportamento em lugares com caracterısticas de rede diferenciadas. Na Tabela3.4 sao listados os enderecos que serao analisados nas duas ferramentas que foram geradosde forma aleatoria usando o Nmap, com o comando nmap -iR n, onde “n” e o numero deenderecos a serem gerados.

Enderecos IP

67.23.234.115

48.171.116.178

200.147.67.142

241.58.10.22

104.28.6.64

Tabela 3.4: Lista de enderecos IP analisados.

Fonte: Elaborada pelo autor.

Ja nas Tabelas 3.5, 3.6, 3.7, 3.8 e 3.9 sao exibidos os dados obtidos para os enderecos IPcontidos na Tabela 3.4 com a captura das informacoes a partir da ferramenta de tracadode rotas desenvolvida neste trabalho e com a respectiva ferramenta do Nmap em uma redesem restricoes de firewall.

Page 53: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.9. Validacao do Aplicativo 33

IP 67.23.234.115PingWrapper Nmap

1 - 192.168.0.10 - RTT 47ms 1 - 192.168.0.10 - RTT 7.28ms

2 - 177.105.180.1 -RTT 521ms 2 - 177.105.180.1 - RTT 64.01ms

3 - 10.30.0.1 - RTT 631ms 3 - 10.30.0.1 - RTT 61.95ms

4 - 177.184.141.117 RTT 211ms 4 - 177.184.141.117 RTT 64.84ms

5 - 186.225.35.129 RTT 186ms 5 - 186.225.35.129 RTT 68.19ms

6 - 84.16.6.186 RTT 71ms 6 - 84.16.6.186 RTT 68.88ms

7 - 176.52.252.133 RTT 84ms 7 - 176.52.252.133 RTT 134.53ms

8 - 94.142.127.50 RTT 156ms 8 - 94.142.127.50 RTT 154.73ms

9 - 176.52.252.133 RTT 142ms 9 - 176.52.252.133 RTT 149.08ms

10 - 72.29.88.34 RTT 160ms 10 - 72.29.88.34 RTT 129.47ms

11 - 67.23.234.2 RTT 193ms 11 - 67.23.234.2 RTT 137.23ms

12 - 67.23.234.115 RTT 158ms 12 - 67.23.234.115 RTT 139.27ms

Tabela 3.5: Comparacao de captura para o endereco 67.23.234.115 em uma rede sem restricoesde firewall.

Fonte: Elaborada pelo autor.

IP 48.171.116.178PingWrapper Nmap

1 - 192.168.0.10 - RTT 66ms 1 - 192.168.0.10 - RTT 2.30ms

2 - 177.105.180.1 - RTT 55ms 2 - 177.105.180.1 - RTT 51.26ms

3 - 10.30.0.1 - RTT 110ms 3 - 10.30.0.1 - RTT 51.21ms

4 - 177.184.141.117 - RTT 79ms 4 - 177.184.141.117 RTT 52.73ms

5 - 186.225.35.129 - RTT107 ms 5 - 186.225.35.129 - RTT 61.14ms

6 - 186.230.231.161 - RTT 122ms 6 -186.230.231.161 - RTT 95.84ms

7 - *** 7 - ***...

30 - *** 30 - ***

Tabela 3.6: Comparacao de captura para o endereco 48.171.116.178 em uma rede sem restricoesde firewall.

Fonte: Elaborada pelo autor.

Page 54: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

34 Capıtulo 3. Desenvolvimento

IP 69.164.223.115PingWrapper Nmap

1 - 192.168.0.10 - RTT 74ms 1 - 192.168.0.10 - RTT 9.81ms

2 - 177.105.180.1 - RTT 60ms 2 - 177.105.180.1 - RTT 22.94ms

3 - 10.30.0.1 - RTT 84ms 3 - 10.30.0.1 - RTT 21.72ms

4 - 177.184.141.117 - RTT 53ms 4 - 177.184.141.117 RTT 24.76ms

5 - 186.225.35.129 - RTT 72ms 5 - 186.225.35.129 - RTT 29.07ms

6 - 84.16.6.186 - RTT 58ms 6 - 84.16.6.186 - RTT 31.07ms

7 - 176.52.254.22 - RTT 73ms 7 - 176.52.254.22 - RTT 28.26ms

8 - 94.142.123.234 - RTT 121ms 8 - 94.142.123.234 - RTT 97.79ms

9 - 94.142.126.161 - RTT 163ms 9- 94.142.126.133 - RTT 126.89ms

10 - 173.205.48.49 - RTT 167ms 10 - 129.250.9.1 - RTT 119.15ms

11 - 129.250.4.205 - RTT151 ms 11 - 129.250.4.205 - RTT 136.57ms

12 - 129.250.203.106 - RTT 164ms 12 - 69.31.34.178 - RTT 156.05ms

13 - *** 13 - ***

14 - 207.99.53.42 - RTT 190ms 14 - ***

15 - 69.164.223.115 - RTT 402ms 15 - ***

16 - ***

17 - ***

18 - ***

19 - ***

20 - ***

21 - ***

22 - ***

23 - 69.164.223.115 - RTT 3.88ms

Tabela 3.7: Comparacao de captura para o endereco 69.164.223.115 em uma rede sem restricoesde firewall.

Fonte: Elaborada pelo autor.

IP 241.58.10.22PingWrapper Nmap

1 - 192.168.0.10 - RTT 67ms 1 - 192.168.0.10 - RTT 3.39ms

2 - 177.105.180.1 - RTT 1030ms 2 - 177.105.180.1 - RTT 35.70ms

3 - 10.30.0.1 - RTT 667ms 3 - 10.30.0.1 - RTT 35.60ms

4 - 177.184.141.117 - RTT 303ms 4 - 177.184.141.117 RTT 36.28ms

5 - *** 5 - ***...

30 - *** 30 - ***

Tabela 3.8: Comparacao de captura para o endereco 241.58.10.22 em uma rede sem restricoes defirewall.

Fonte: Elaborada pelo autor.

Page 55: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.9. Validacao do Aplicativo 35

IP 104.28.6.64PingWrapper Nmap

1 - 192.168.0.10 - RTT 45ms 1 - 192.168.0.10 - RTT 2.32ms

2 - 177.105.180.1 - RTT 43ms 2 - 177.105.180.1 - RTT 21.26ms

3 - 10.30.0.1 - RTT 49ms 3 - 10.30.0.1 - RTT 21.24ms

4 - 177.185.141.117 - RTT 78ms 4 - 177.185.141.117 - RTT 22.40ms

5- 186.225.35.129 - RTT ms 5- 186.225.35.129 - RTT 30.67ms

6 - 84.16.6.186 - RTT ms 6 - 84.16.6.186 - RTT ms

7 - 176.52.254.22 - RTT ms 7 - 176.52.254.22 - RTT ms

8 - 94.142.127.57 - RTT ms 8 - 94.142.127.57 - RTT ms

9 - 176.52.255.33 - RTT ms 9 - 176.52.255.33 - RTT ms

10 - 176.52.253.23 - RTT ms 10 - 176.52.253.23 - RTT ms

11 - 104.28.6.64 - RTT ms 11 - 104.28.6.64 - RTT ms

Tabela 3.9: Comparacao de captura para o endereco 104.28.6.64 em uma rede sem restricoes defirewall.

Fonte: Elaborada pelo autor.

E possıvel verificar que alguns enderecos se diferem nas rotas contidas, assim como asproprias rotas podem mudar, comparando as duas ferramentas, como ocorreu nas rotas daTabela 3.7. Outro ponto a ser analisado e a situacao em que alguns roteadores responderamapenas para uma das ferramentas, como pode-se verificar na tambem nas rotas da Tabela3.7. Essas alteracoes podem se explicadas pelo fato do pacote enviado por cada ferramentater seguido por caminhos diferentes ou na situacao em que alguns enderecos IP respondempelo mesmo computador que esteja contido na rota.

As capturas obtidas dentro de um ambiente de rede com regras de firewall sao apre-sentadas nas Tabelas 3.10, 3.11, 3.12, 3.13 e 3.14.

IP 67.23.234.115PingWrapper Nmap

1 - 10.142.68.1 - RTT 111ms 1 - 10.142.68.1 - RTT 38.15ms

2 - 10.142.255.1 - RTT 29ms 2 - 10.142.255.1 - RTT 39.19ms

3 - 192.168.1.1 - RTT 28ms 3 - 192.168.1.1 - RTT 26.23ms

4 - *** 4 - ***...

30 - *** 30 - ***

Tabela 3.10: Comparacao de captura para o endereco 67.23.234.115 em uma rede com restricoesde firewall.

Fonte: Elaborada pelo autor.

Page 56: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

36 Capıtulo 3. Desenvolvimento

IP 48.171.116.178PingWrapper Nmap

1 - 10.142.68.1 - RTT 40ms 1 - 10.142.68.1 - RTT 86.51ms

2 - 10.142.255.1 - RTT 34ms 2 - 10.142.255.1 - RTT 99.24ms

3 - 192.168.1.1 - RTT 37ms 3 - 192.168.1.1 - RTT 87.26ms

4 - *** 4 - ***...

30 - *** 30 - ***

Tabela 3.11: Comparacao de captura para o endereco 48.171.116.178 em uma rede com restricoesde firewall.

Fonte: Elaborada pelo autor.

IP 200.147.67.142PingWrapper Nmap

1 - 10.142.68.1 - RTT 40ms 1 - 10.142.68.1 - RTT 8.08ms

2 - 10.142.255.1 - RTT 33ms 2 - 10.142.255.1 - RTT 15.55ms

3 - 192.168.1.1 - RTT 40ms 3 - 192.168.1.1 - RTT 10.61ms

4 - *** 4 - ***...

30 - *** 30 - ***

Tabela 3.12: Comparacao de captura para o endereco 200.147.67.142 em uma rede com restricoesde firewall.

Fonte: Elaborada pelo autor.

IP 241.58.10.22PingWrapper Nmap

1 - 10.142.68.1 - RTT 51ms 1 - 10.142.68.1 - RTT 12.60ms

2 - *** 2 - ***

3 - 192.168.1.1 - RTT 51ms 3 - 192.168.1.1 - RTT 14.36ms

4 - *** 4 - ***...

30 - *** 30 - ***

Tabela 3.13: Comparacao de captura para o endereco 241.58.10.22 em uma rede com restricoesde firewall.

Fonte: Elaborada pelo autor.

Page 57: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.9. Validacao do Aplicativo 37

IP 104.28.6.64PingWrapper Nmap

1 - 10.142.68.1 - RTT 36ms 1 - 10.142.68.1 - RTT 8.27ms

2 - 10.142.255.1 - RTT 34ms 2 - 10.142.255.1 - RTT 13.72ms

3 - 192.168.1.1 - RTT 32ms 3 - 192.168.1.1 - RTT 10.66ms

4 - *** 4 - ***...

30 - *** 30 - ***

Tabela 3.14: Comparacao de captura para o endereco 104.28.6.64 em uma rede com restricoesde firewall.

Fonte: Elaborada pelo autor.

Com os resultados obtidos nas comparacoes das capturas realizadas dentro de umarede com firewall exibidas nas Tabelas 3.10, 3.11, 3.12, 3.13 e 3.14 e possıvel perceberque as ferramentas so conseguiram ter alguma resposta, para todos os enderecos alvo, nostres primeiros roteadores. Esse cenario pode ter se apresentado devido a bloqueios feitosnos roteadores desta rede para nao responderem a comandos ping, filtrando qualquersolicitacao desta natureza.

Com o portscan, a validacao foi feita a partir da mesma lista de enderecos IP da tabela3.4 alem de usar as n portas mais utilizadas de acordo com o arquivo “nmap-services”[i],que fornece uma lista com a frequencia de utilizacao de cada porta. Essas portas foramusadas para efeito de comparacao entre o portscan implementado neste trabalho com o doNmap. Assim como na validacao com a ferramenta de tracado de rotas, este experimentosera realizado em redes de computadores distintas no que se refere as configuracoes erestricoes de cada uma.

Na Tabela 3.15 sao descritas as portas nas quais a varredura foi realizada com as duasferramentas.

Porta Servico

80 HTTP (Procolo de transferencia de HiperTexto)

631 Protocolo de impressao na internet

161 Protocolo simples de gerenciamento de rede

137 Servico NetBIOS

123 Protocolo de tempo na rede

138 Servico de datagrama NetBIOS

1434 Monitor Microsoft SQL

445 Servicos de diretorio Microsoft

135 Microsoft RPC Servico de localizacao

67 DHCP (Protocolo de configuracao dinamica do Host)

Tabela 3.15: Lista de portas analisadas.

Fonte: Elaborada pelo autor.

Apos a varredura das portas descritas na Tabela 3.15 com os mesmos enderecos IP

[i]Disponıvel em https://svn.nmap.org/

Page 58: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

38 Capıtulo 3. Desenvolvimento

contidos na Tabela 3.4, foram obtidos os resultados expostos nas Tabelas 3.16, 3.17, 3.18,3.19 e 3.20.

IP 67.23.234.115Porta Status Portscan Status Nmap

80 Aberta Aberta

631 Filtrada Filtrada

161 Filtrada Filtrada

137 Filtrada Filtrada

123 Filtrada Filtrada

138 Filtrada Filtrada

1434 Filtrada Filtrada

445 Filtrada Filtrada

135 Filtrada Filtrada

67 Filtrada Filtrada

Tabela 3.16: Comparacao entre ferramentas portscan para o endereco 67.23.234.115.

Fonte: Elaborada pelo autor.

IP 48.171.116.178Porta Status Portscan Status Nmap

80 Filtrada Filtrada

631 Filtrada Filtrada

161 Filtrada Filtrada

137 Filtrada Filtrada

123 Filtrada Filtrada

138 Filtrada Filtrada

1434 Filtrada Filtrada

445 Filtrada Filtrada

135 Filtrada Filtrada

67 Filtrada Filtrada

Tabela 3.17: Comparacao entre ferramentas portscan para o endereco 48.171.116.178.

Fonte: Elaborada pelo autor.

Page 59: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

3.9. Validacao do Aplicativo 39

IP 200.147.67.142Porta Status Portscan Status Nmap

80 Aberta Aberta

631 Filtrada Filtrada

161 Filtrada Filtrada

137 Filtrada Filtrada

123 Filtrada Filtrada

138 Filtrada Filtrada

1434 Filtrada Filtrada

445 Filtrada Filtrada

135 Filtrada Filtrada

67 Filtrada Filtrada

Tabela 3.18: Comparacao entre ferramentas portscan para o endereco 200.147.67.142.

Fonte: Elaborada pelo autor.

IP 241.58.10.22Porta Status Portscan Status Nmap

80 Filtrada Filtrada

631 Filtrada Filtrada

161 Filtrada Filtrada

137 Filtrada Filtrada

123 Filtrada Filtrada

138 Filtrada Filtrada

1434 Filtrada Filtrada

445 Filtrada Filtrada

135 Filtrada Filtrada

67 Filtrada Filtrada

Tabela 3.19: Comparacao entre ferramentas portscan para o endereco 241.58.10.22.

Fonte: Elaborada pelo autor.

Page 60: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

40 Capıtulo 3. Desenvolvimento

IP 104.28.6.64Porta Status Portscan Status Nmap

80 Aberta Aberta

631 Filtrada Filtrada

161 Filtrada Filtrada

137 Filtrada Filtrada

123 Filtrada Filtrada

138 Filtrada Filtrada

1434 Filtrada Filtrada

445 Filtrada Filtrada

135 Filtrada Filtrada

67 Filtrada Filtrada

Tabela 3.20: Comparacao entre ferramentas portscan para o endereco 104.28.6.64.

Fonte: Elaborada pelo autor.

Pelo fato das analises nas redes com restricoes e sem restricoes retornarem exatamenteas mesmas informacoes, nas Tabelas 3.16, 3.17, 3.18, 3.19 e 3.20 sao representados osresultados dos dois ambientes.

Page 61: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 41

Capıtulo 4

Consideracoes Finais

“Intellectual growth should commenceat birth and cease only at death.”

Albert Einstein

4.1 Conclusao

A realizacao deste trabalho teve como caracterıstica principal o desenvolvimento de umaplicativo para dispositivos moveis que executem o sistema operacional Android a partir daversao 4.1, contendo ferramentas voltadas a area de redes de computadores. Durante estetrabalho foi possıvel adquirir conhecimentos quanto a estrutura de uma aplicacao Android,mecanismos de descoberta de rotas e servicos, procedimentos envolvendo a comunicacaoe armazenamento de dados de forma remota e de tecnologias relacionadas a cada umadessas areas. Todas estas atividades proporcionaram uma proveitosa experiencia, visto queenglobaram domınios sobre campos de atuacao tanto no que se refere ao desenvolvimentode sistemas quanto relacionados a rede de computadores.

Conclui-se que as atividades deste projeto e objetivos planejados antes e durante seuandamento foram desempenhados de forma satisfatoria, mostrando a relevancia do tra-balho nas areas tecnologicas envolvidas, das quais se destacam o desenvolvimento paradispositivos moveis e redes de computadores. O artefato desenvolvido neste trabalho podeser usado como base para criacao de uma ferramenta mais complexa, auxiliando na elab-oracao de novos estudos sobre os temas e integracoes com outras aplicacoes.

Como legado, permanece o fato de se ter desenvolvido uma aplicacao util para profis-sionais na area de redes de computadores permitindo, alem das funcionalidades de tracadode rotas e descoberta de servicos, a mobilidade de realizar estas acoes sem a necessidadede portar um computador pessoal.

Por fim, algumas limitacoes foram enfrentadas durante a realizacao deste trabalho,tendo como principais obstaculos a construcao do aplicativo sem a necessidade de per-missoes para super usuario e a minimizacao do tempo de execucao do aplicativo ja que,por nao ter privilegios, utiliza tecnicas que demandam mais tempo para serem concluıdas.Outra dificuldade encontrada foi o envio das informacoes obtidas com o aplicativo para umservidor remoto, dado que o sistema operacional Android nao possui nenhum aplicativonativo que permita esse tipo de acao.

Page 62: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

42 Capıtulo 4. Consideracoes Finais

4.2 Contribuicoes

Como contribuicoes deste trabalho tem-se uma aplicacao com funcionalidades voltadaspara a descoberta de rotas e servicos em redes de computadores, capaz obter e armazenaras informacoes coletadas em um servidor remoto, integrando-as em um aplicativo paradispositivos moveis que executem o sistema operacional Android. As funcionalidades de-senvolvidas para o tracado de rotas e descoberta de servicos foram implementadas paraque seja possıvel utiliza-las de forma independente em outras aplicacoes.

Alem disso, este trabalho tambem contribui com o mecanismo de armazenamento dosdados utilizados neste projeto, onde o desenvolvimento de um Web Service foi necessariopara intermediar a comunicacao entre o aplicativo e a base de dados, visto que a plataformade desenvolvimento Android nao fornece nenhuma aplicacao nativa para este fim. Oaplicativo elaborado neste trabalho fornece ferramentas uteis para a area de redes decomputadores juntamente com a mobilidade fornecida pelos dispositivos moveis.

4.3 Trabalhos Futuros

Para trabalhos futuros existem algumas tarefas que podem ser implementadas, sejapara aperfeicoamento do aplicativo criado, para implementacao de novas funcionalidadesou integracao com outras ferramentas. No que se refere ao aperfeicoamento do aplicativopode-se realizar melhorias em sua interface grafica, adicionando elementos que favoreca avisualizacao dos dados pelos usuarios. Para o desenvolvimento de novas funcionalidadese integracao com outras ferramentas tem-se a ideia de implementar uma interface graficapara um sistema desktop fazendo uso das bibliotecas construıdas neste trabalho.

Por fim, outra tarefa que poderia ser implementada e a composicao das rotas e de-scobertas de servicos a partir das informacoes obtidas com as bibliotecas desenvolvidasneste trabalho. Seria possıvel obter uma visualizacao intuitiva de cada uma das rotas,alem das informacoes sobre a disponibilidade de servicos em cada um dos roteadores con-tidos na rota, assemelhando-se as funcionalidades da ferramenta Zenmap[i], que funcionacomo a interface grafica da ferramenta Nmap. O Zenmap integra uma ferramenta de rededenominada RadialNet[ii], que e a responsavel por gerar estruturas de redes mapeadaspelo Nmap, proporcionando uma visao grafica dos dispositivos em uma rede (Medeiros eSantos, 2009) . Na Figura 4.1, e exibido a composicao de rotas a partir das informacoesgeradas pela ferramenta Zenmap atraves dos dados obtidos pelo Nmap.

[i]Disponıvel em https://nmap.org/zenmap/[ii]Disponıvel em https://github.com/labepi/radialnet

Page 63: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

4.3. Trabalhos Futuros 43

Figura 4.1: Exemplo de composicao de rotas com o Zenmap.

Fonte: Elaborada pelo autor.

Page 64: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

44 Capıtulo 4. Consideracoes Finais

Page 65: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 45

Apendice A

Apendice para Desenvolvedor

Neste Apendice, serao apresentadas as ferramentas, bibliotecas e configuracoes necessariaspara o desenvolvimento de uma aplicacao Android utilizando a IDE para desenvolvimentoEclipse, de acordo com a ordenacao necessaria e de forma generica, sem evidenciar nen-hum sistema operacional. Na Secao A.1, sao expostas informacoes sobre a origem, car-acterısticas da plataforma de desenvolvimento Android e as motivacoes para sua criacao.Na Subsecao A.1.1, a arquitetura Android e detalhada, exibindo cada funcionalidade edescrevendo como cada parte desse modelo pode ser utilizada. Os Componentes de umaAplicacao Android sao descritos na Subsecao A.1.2, explicando a importancia de cada umpara o correto desenvolvimento de um aplicativo Android.

Na Secao A.2, a preparacao do ambiente de desenvolvimento e demonstrada, na SubsecaoA.2.1, com a configuracao do JDK (Java Development Kit) e do SDK (Software Develop-ment Kit), exibida na Subsecao A.2.2. A Subsecao A.2.3 demonstra os passos necessariospara a configuracao que permita o desenvolvimento de aplicativos Android. A seguir,na Secao A.3 sao apresentados os aspectos relacionados ao plugin ADT para o Eclipse eao AVD, gerenciador de dispositivos virtuais para a execucao de aplicativos, mostrados,respectivamente, nas Subsecoes A.3.1 e A.3.2.

A.1 Android

O Android e um Sistema Operacional (SO) voltado para dispositivos moveis, baseadono kernel Linux e atualmente e mantido pela Google . O SO e voltado para a interacaodireta com os usuarios atraves de telas sensıveis ao toque e, nos dias de hoje, e utilizado,principalmente, na nova geracao de telefones celulares, os smartphones. A tecnologiaAndroid tambem esta presente em tablets, relogios e ate em veıculos, integrando variosdispositivos em uma mesma plataforma.

Outras linguagens de programacao, tais como Windows Mobile e Java ME existiamantes do aparecimento do Android, mas nao obtiveram grande sucesso em virtude dasrestricoes de hardware existentes, softwares proprietarios e bloqueio por parte das fabri-cantes para a inclusao de aplicativos de terceiros. Parte desses problemas foi solucionadocom o surgimento dos smartphones. Os smartphones e o principal alvo do sistema opera-cional da Google, ja que com o avanco tecnologico esses aparelhos se tornaram verdadeiroscomputadores pessoais devido ao seu alto poder de processamento, conectividade com aInternet e a integracao de varios recursos, como sensores de movimento, camera e GPS.Outro ponto positivo e o seu modelo de codigo-fonte aberto, que concede tanto aos de-

Page 66: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

46 Apendice A. Apendice para Desenvolvedor

senvolvedores comuns quantos as grandes fabricantes a permissao para realizar alteracoesno sistema, personalizando-o de acordo com cada necessidade. Um dos fatores que ala-vancaram o desenvolvimento para Android e a concessao, por parte do SO, de todo ohardware e aplicativos nativos para a criacao de novas aplicacoes. O servico de mapas doGoogle, calendario, agenda, cameras e sensores sao alguns dos recursos disponıveis para aintegracao em novos aplicativos desenvolvidos.

Apesar de aparentar ser mais recente, o Android foi construıdo, inicialmente, por umapequena empresa denominada Android Inc., situada na California, EUA, ganhando maiorvisibilidade a partir da sua compra pela Google, junto com a formacao da Open Hand-set Alliance (Alianca de Telefonia Movel Aberta), um grupo de empresas de telefonia efabricantes de hardware e o lancamento do SDK (Kit de Desenvolvimento de Software)fazendo com que a tecnologia Android se disseminasse rapidamente entre os desenvolve-dores. Poucos meses apos o lancamento, mais de um milhao de downloads do SDK foramfeitos, mesmo estando em versao beta (Rogers et al., 2009). O Android e uma plataformapara desenvolvimento de dispositivos moveis robusta e de facil utilizacao, visto que aconstrucao de aplicativos e baseada na linguagem de programacao Java e na criacao dearquivos XML para desenvolvimento da interface grafica.

A.1.1 Arquitetura Android

A infraestrutura do Android e baseada em uma pilha contendo um sistema operacionalbaseado em Linux, um conjunto de bibliotecas, a API Android Runtime e aplicacoesnativas (Ogliari e Brito, 2014). As bibliotecas contidas na pilha Android consistem emcomponentes desenvolvidas na linguagem C/C++ e estao disponıveis para desenvolvedoresutilizarem em funcoes distintas. A pilha de bibliotecas Android e ilustrada na Figura A.1

Figura A.1: Arquitetura em camadas no Android.

Fonte: Ogliari e Brito (2014).

Na parte superior da Figura A.1 estao as aplicacoes. O Android vem com diver-sos programas de uso comum instalados, como calendario, cliente de e-mail, navegadores

Page 67: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

A.1. Android 47

e contatos. Todas essas aplicacoes nativas sao escritas em Java, da mesma forma queaplicacoes desenvolvidas por terceiros, ou seja, e possıvel desenvolver novos aplicativosutilizando recursos como camera e GPS ou aproveitar os aplicativos ja existentes, comoenvio de e-mails, mensagens de texto ou executar musicas para criar novos aplicativos.

Do mesmo modo que em Java, no Android, as aplicacoes sao executadas em maquinasvirtuais, onde cada maquina executa independente das demais aplicacoes, mas permitemo compartilhamento dos dados entre as instancias das maquinas virtuais e das aplicacoesvinculadas entre elas. Logo apos, na camada abaixo, estao lozalizados os frameworksde aplicacao. Por ser uma plataforma aberta o Android permite aos usuarios usar ohardware disponıvel nos aparelhos e executar tarefas em segundo plano, enviar mensagense outras diversas funcionalidades acessıveis aos desenvolvedores da mesma forma que estaodisponıveis paras os fabricantes.

A seguir, estao as bibliotecas que fornecem funcionalidades para todas as aplicacoes.O Android dispoe de varias bibliotecas, tais como a OpenCORE, para a exibicao e manip-ulacao de arquivos multimıdIa, a SQLite, usada para operacoes em bancos de dados e aOpenGL para renderizacao de imagens em 3 dimensoes. Em uma mesma camada, ao lado,esta o Android Runtime. Essa e a parte responsavel pelo gerenciamento das maquinas vir-tuais acessando o kernel do Linux para gerenciar os recursos com mais eficiencia. Naultima camada esta o nucleo da arquitetura, o kernel do Linux que, por questao de se-guranca, e fechada para os desenvolvedores. Essa camada tem a atribuicao de realizar ogerenciamento de memoria, processos e por mediar a comunicacao entre software e hard-ware.

A.1.2 Componentes de uma Aplicacao Android

A construcao de aplicativos Android se difere da forma de desenvolvimento de aplicacoesDesktop e Web. Essas diferencas sao conduzidas por conceitos especıficos da propriaplataforma e de caracterısticas particulares dos dispositivos moveis. Quatro componentesprincipais estao disponıveis para o desenvolvedor, cada um com propriedades diferentes epossibilidades de aplicacoes distintas, seja com ou sem interface grafica, funcionando emsegundo plano ou apenas monitorando atividades em execucao.

O primeiro e mais importante componente no desenvolvimento Android e a Activity. AActivity e responsavel por gerenciar uma tela de aplicacao e mostrar uma interface graficaao usuario permitindo, atraves disso, controlar a interacao entre o usuario e o sistemapor meio de uma tela, normalmente sensıvel ao toque, simulando botoes virtuais ou combotoes fısicos do aparelho. Em uma aplicacao Android, podem existir varias Activitys quese comunicam entre si e podem tambem iniciar uma Activity em outra aplicacao.

Uma simples demonstracao da interacao desses componentes e quando um usuario, porexemplo, esta assistindo um vıdeo no aplicativo do Youtube e deseja compartilha-lo noFacebook. Isso e feito a partir de uma Activity do Youtube que invoca uma Activity noaplicativo do Facebook, usando as informacoes referentes ao vıdeo que se deseja compar-tilhar. Mesmo tendo varias Activitys em uma mesma aplicacao, somente uma e ativadapor vez, sendo assim, ao iniciar uma nova Activity, as antigas sao paradas e colocadas emsegundo plano ate que o usuario volte e ative-a novamente. Todos esses procedimentosformam o ciclo de vida de uma Activity.

Outro componente que pertence ao ciclo de desenvolvimento Android chama-se Ser-vice. O Service tem como objetivo permitir a uma aplicacao executar tarefas em segundoplano. Diferindo das Activitys, os Services nao possuem interface grafica e sao capazes

Page 68: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

48 Apendice A. Apendice para Desenvolvedor

de executar mesmo apos uma aplicacao ter sido encerrada. Ao ser iniciada, um Service,em segundo plano, estara funcionando para que outros componentes possam se conectare obter informacao providas por ele. Um exemplo de implementacao de Services e umreprodutor de musicas que, mesmo em segundo plano, deve continuar a reproduzir osarquivos escolhidos, ate que tenha sua execucao interrompida pelo usuario.

O terceiro componente disponıvel para o desenvolvedor e o Content Provider. Ele eresponsavel por salvar, gerenciar e disponibilizar um determinado conjunto de dados emcomum que sao usados entre aplicacoes. Alguns Content Provider sao nativos do Android,fornecendo um grupo de dados que pode ser acessado por qualquer aplicacao. Um tipo dedado que pode ser compartilhado sao as informacoes sobre os contatos, no qual podem serusados em aplicacoes como e-mails, mensagens de texto ou ate mesmo em ligacoes. Apesarda disponibilidade de Content Providers provenientes da proprio Android, e possıvel criarnovos provedores de conteudo, capazes de partilhar os dados gerados com outras aplicacoes.

A criacao de um Content Provider nao e obrigatoria, a nao ser que se deseje compar-tilhar os dados armazenados. A execucao de um Content Provider pode ser comparada aum banco de dados relacional. Em sua estrutura, os dados sao armazenados em tabelase consultados atraves de um componente chamado Content Resolver, retornando as in-formacoes solicitadas. Caso precise implementa-lo ou utiliza-lo, e necessario programar osmetodos para cada acao correspondente, sendo eles: query(), insert(), update() e delete().

Por fim, o ultimo componente definido pela arquitetura Android e o Broadcast Receiver.Esse componente tem a finalidade de receber e processar eventos gerados pelo sistema ecompartilha-los com todas as aplicacoes. A partir dele, aplicacoes podem capturar o eventoque foi criado e realizar acoes em conformidade com tais eventos. Diversos eventos podemser gerados pelo sistema.

Um alerta de conexao a uma rede sem fio, bateria fraca, indicacao de chamadas devoz ou mensagens sao exemplos de Broadcast Receiver. Esses avisos podem ser geradospelo proprio Android ou por outras aplicacoes em eventos especıficos, como, por exemplo,o termino de um Download que pode ser de interesse de uma determinada aplicacao eela pode, atraves de um Broadcast Receiver, receber esse evento ainda que nao tenha sidogerada por um servico nativo.

A.2 Ambiente de Desenvolvimento

Nas Subsecoes a seguir, serao descritos conceitos sobre o JDK e SDK, kits de desen-volvimento necessarios para o correto funcionamento do ambiente de desenvolvimento naplataforma Android.

A.2.1 JDK

O JDK (Java Development Kit), e um utilitario com a finalidade de permitir a criacaode jogos, programas e aplicativos para a plataforma Java. Atualmente, o JDK e mantidopela empresa de tecnologia Oracle e, mesmo sendo proprietario, ainda e um software decodigo aberto que e mantido pela comunidade de usuarios. O JDK e composto pelocompilador e pelas bibliotecas necessarias para criacao de programas em Java, contendotambem ferramentas para testes dos programas desenvolvidos. Caso o sistema operacionalque executara a aplicacao nao tenha uma maquina virtual Java, o JDK fara a a instalacao.Alem disso, o JDK fornece um arquivo executavel que realiza todo o trabalho de instalacao

Page 69: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

A.3. Configuracao do Ambiente Android 49

e configuracao do ambiente.

A.2.2 Android SDK

O Android SDK (Software Development Kit) e um pacote de software que fornece ositens fundamentais para o desenvolvimento na plataforma Android. Nele estao inclusosdiversas APIs desenvolvidas para controlar as funcoes do dispositivo, bem como realizara integracao de servicos. O SDK do Android e estruturado por um conjunto de arquivoscompostos por: bibliotecas, executaveis, scripts, documentos e ferramentas (Medniekset al., 2012). O Android SDK fornece ainda um emulador para o testar as aplicacoes e todaa documentacao necessaria para o desenvolvimento. Por padrao, o SDK nao inclui todasas ferramentas para iniciar a criacao de aplicacoes, cabendo ao desenvolvedor adicionar aoSDK os utilitarios que cada projeto precisa.

A.2.3 Eclipse IDE

A IDE (Integrated Development Environment) Eclipse e uma plataforma de tecnologiade finalidade geral, que pode ser usada para a criacao de aplicacoes utilizando diversosSDK. Apesar de geralmente ser utilizado para a implementacao, testes e depuracao desoftwares em Java, o Eclipse suporta outras linguagens como C/C++ e PHP atraves daemulacao de um ambiente de programacao utilizando modulos de extensao. Uma dasvantagens do ambiente e que seu desenvolvimento e baseado em plugin, aumentando osuporte ao desenvolvedor, oferecendo diversas opcoes para criacao de projetos, inclusivede aplicacoes Android com o plugin ADT (Android Developer Tools).

A.3 Configuracao do Ambiente Android

Nesta Secao, serao detalhadas questao inerentes a configuracao do plugin ADT (An-droid Developer Tools) no ambiente de desenvolvimento Eclipse para a adicao de recursosdo Android em projetos e a criacao de um AVD(Android Virtual Device), que permita aexecucao de aplicacoes simulando o sistema operacional do Android em uma determinadaversao, criando um dispositivo movel virtual.

A.3.1 ADT

De modo que a IDE Eclipse tem seu desenvolvimento voltado para plugin, e necessariaa inclusao e configuracao do plugin ADT para permitir a criacao de aplicacoes Android. Oplugin ADT possibilita que o Eclipse possa compilar aplicativos para o Android, bem comoinstanciar o emulador do Android e permitir a edicao de aquivos XML, responsaveis pelainterface grafica das aplicacoes. As imagens a seguir ilustrarao os passos essenciais para acorreta configuracao do Eclipse, preparando o ambiente para a execucao de projetos.

Inicialmente, abra o Eclipse e acesse o menu Help, New Software. Ao abrir a janela,clique no botao Add para adicionar a referencia para o download do ADT, como e apre-sentado na Figura A.2.

Na janela seguinte, digite “ADT Plugin” no campo referente ao nome e informe oendereco “https://dl-ssl.google.com/android/eclipse/” no campo URL. Feito isso, cliqueem OK para que os repositorios de plugins sejam adicionados ao Eclipse. O processo eilustrado na A.3.

Page 70: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

50 Apendice A. Apendice para Desenvolvedor

Figura A.2: Download do plugin ADT para Eclipse.

Fonte: Elaborada pelo autor.

Figura A.3: Download do plugin ADT para Eclipse.

Fonte: Elaborada pelo autor.

Selecione o repositorio ADT plugin no campo Work with e marque as opcoes DeveloperTools e NDK Plugins na lista que sera carregada logo abaixo e clique em Next paracontinuar, assim como e exibido na Figura A.4

A imagem seguinte representa, atraves da Figura A.5, a ultima etapa do processode configuracao. Apos prosseguir a instalacao, sera exibido os componentes que seraoinstalados. Clique em Next para continuar e, apos isso, aceite os termos de licenca paraconcluir a instalacao.

Ao termino de todas essas etapas, o Eclipse estara configurado para a criacao deaplicacoes Android.

A.3.2 AVD

O SDK da plataforma de desenvolvimento Android fornece um emulador que permitesimular dispositivos executando um sistema operacional Android, para realizar testes nas

Page 71: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

A.3. Configuracao do Ambiente Android 51

Figura A.4: Dialogo Install do Eclipse mostrando o plugin Android para download.

Fonte: Elaborada pelo autor.

Figura A.5: Lista de componentes a serem instalados.

Fonte: Elaborada pelo autor.

aplicacoes em um computador. Um AVD (Android Virtual Device) virtualiza um ambienteAndroid, possibilitando a configuracao de parametros para viabilizar a estrutura necessariapara o desenvolvimento em uma versao especıfica do sistema operacional Android. Algu-mas propriedades como tamanho da tela, capacidade de memoria e armazenamento podemser realizadas na organizacao de um AVD.

Apos ter realizado a integracao do plugin ADT com a IDE Eclipse, demonstrada naSubsecao A.3.1, ja e possıvel realizar a criacao de um ambiente virtual utilizando o AVDManager, como e mostrado na Figura A.6.

Ao clicar no botao New, a tela ilustrada na Figura A.7 e exibida, na qual devem serinseridos os parametros que especificam o novo AVD.

1. Name : Pode ser inserido qualquer nome para o AVD, mas sugere-se que seja iden-tificado com a versao do Android escolhida;

2. Target : Define qual imagem do sistema sera usada. Ela deve ser a mesma, ou mais

Page 72: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

52 Apendice A. Apendice para Desenvolvedor

Figura A.6: Gerenciador AVD.

Fonte: Elaborada pelo autor.

recente que a versao dos projetos a serem executados;3. SD Card : Caso o aplicativo a ser executado precise de um maior armazenamento, a

opcao pode ser preenchida com o tamanho de memoria correspondente a necessidadedo projeto;

4. Skin : Determina as configuracoes referentes ao tamanho da tela do dispositivo a seremulado. Sugere-se que algumas resolucoes diferentes sejam testadas para verificar seos componentes da interface grafica do aplicativo funcionam em definicoes distintas;

A.4 Repositorio

Esta Secao reune os links referentes aos codigos-fonte desenvolvidos neste trabalho e doexecutavel para instalacao em um dispositivo executando o sistema operacional Android.

Os codigos fonte do aplicativo desenvolvido neste trabalho, bem como das bibliotecasdesenvolvidas para o proposito deste projeto estao disponıveis no link:

- https://github.com/tuliovianna/ipsensor.git

Apos o download, o instalador do aplicativo “IpSensor.apk” pode ser obtido dentro dodiretorio “bin” e transferido para o dispositivo desejado.

O codigo fonte do Web Service esta disponıvel no link:

- https://github.com/tuliovianna/web-service.git

Page 73: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

A.5. Execucao do Aplicativo 53

Figura A.7: Criacao de um novo AVD.

Fonte: Elaborada pelo autor.

A.5 Execucao do Aplicativo

Durante o desenvolvimento do aplicativo, foi necessario executa-lo diversas vezes a fimde testar suas funcionalidades e possıveis erros. Para isso, o Eclipse fornece a possibilidadeda criacao de emuladores para simular um dispositivo Android real em um ambiente dedesenvolvimento. Contudo, devido a alta quantidade de recursos computacionais consum-idos pelos emuladores, a utilizacao dos mesmos se torna inviavel pela lentidao na execucaode aplicativos e pelas restricoes de hardware como, por exemplo, a utilizacao da propriainterface de rede do computador que esta emulando a aplicacao.

Para solucionar este problema, foi utilizado um smartphone executando o sistema op-eracional Android como meio para a execucao da aplicacao. Para isso, foi preciso conectaro dispositivo Android via USB ao computador onde o software esta sendo construıdo e ati-var o modo de depuracao no dispositivo. Essa opcao e normalmente encontrada seguindoo caminho Configuracao, seguido por Opcoes do Desenvolvedor. Apos o dispositivo serconfigurado, a instalacao do aplicativo e feita selecionando o projeto desejado e escolhendoo aparelho que deseja-se fazer a instalacao. Na Figura A.8 sao ilustrados os procedimentosanteriormente citados.

Page 74: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

54 Apendice A. Apendice para Desenvolvedor

Figura A.8: Configuracao para o modo de desenvolvimento no dispositivo.

Fonte: Elaborada pelo autor.

Page 75: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Descoberta de Infraestrutura e Servicos de Rede 55

Referencias Bibliograficas

Aken, Joan Ernst Van (2005), Management research as a design science: Articulating theresearch products of mode 2 knowledge production in management, em ‘British Journalof Management’, pp. 19–36.(Citado na pagina 20)

Araujo, Everton Coimbra (2010), Desenvolvimento para Web com Java, Visual Books.(Citado nas paginas 2 e 26)

Association, GSMA (2014), ‘The Mobile Economy 2014’, GSMA Mobile Economy 2(1), 2–3.(Citado na pagina 1)

Banker, Kyle (2011), MongoDB IN ACTION, Manning.(Citado na pagina 15)

Brito, Samuel H. B. (2013), IPv6 - O novo protocolo da Internet, 1a edicao, NovatecEditora.(Citado na pagina 10)

Deering, S. e R. Hinden (1998), ‘Internet Protocol, Version 6 (IPv6)’. Tornou obsoleta aRFC 2373.URL: https://www.ietf.org/rfc/rfc2460.txt(Citado na pagina 10)

Deitel, Paul, Abbey Deitel, Harvey Deitel e Michael Morgano (2012), Android para Pro-gramadores: Uma abordagem baseada em aplicativos, Bookman.(Citado na pagina 1)

Fielding, R., UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach e T.Berners-Lee (1999), ‘ Hypertext Transfer Protocol – HTTP/1.1’. Tornou obsoleta aRFC 2068.URL: https://tools.ietf.org/html/rfc2616(Citado na pagina 8)

Frankel, S. e S. Krishnan (2001), ‘IP Security (IPsec) and Internet Key Exchange (IKE)Document Roadmap’. Tornou obsoleta a RFC 2411.URL: https://tools.ietf.org/html/rfc6071(Citado na pagina 10)

Gomes, Daniel Adorno (2010), Web Services SOAP em Java: Guia Pratico para o desen-volvimento de web services em Java, Novatec.(Citado nas paginas 16, 17, e 26)

Page 76: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

56 Referencias Bibliograficas

Index, Global Web (2014), ‘Two thirds of mobile audience using Android’. Junho 2014.URL: http://www.globalwebindex.net/blog/android-os(Citado nas paginas 2 e 3)

J. Arkko, Ericsson, C. Pignataro (2009), ‘Address resolution protocol’. Atualizada pelasRFC: 826, 951, 1044, 1329, 2131, 2132, 2176, 2225, 2834, 2835, 3315, 4338, 4361, 4701.URL: https://tools.ietf.org/html/rfc5494(Citado na pagina 9)

Kurose, Jim e Keith Ross (2013), Redes de Computadores e a Internet: uma abordagemtop-down, Pearson.(Citado nas paginas 2, 7, 8, 9, 10, 11, e 13)

Lennon, Joe (2011), ‘Explore o MongoDB’. Julho 2011.URL: http://http://www.ibm.com/developerworks/br/library/os-mongodb4/(Citado na pagina 15)

Li, Yishan e Sathiamoorthy Manoharam (2013), ‘A performance comparison of SQL andNoSQL databases’, 2013 IEEE Pacific Rim Conference on p. 5.(Citado nas paginas 24 e 25)

Lopez, Pablo, David Fernandez, Jose F. Castillo, Miguel A. Zamora e Antonio F. Skarmeta(2013), ‘Mobile Digcovery: A Global Service Discovery for the Internet of Things’,27th International Conference on Advanced Information Networking and ApplicationsWorkshops p. 6.(Citado na pagina 4)

Lyon, Gordon “Fyodor” (2012), Exames de Rede com NMAP, Ciencia Moderna.(Citado nas paginas 11, 12, e 32)

Medeiros, Joao P. Souza (2014), A Influencia da Observabilidade e da Visualizacao Radialno Projeto de Sistemas de Monitoramento de Redes de Computadores, Doutorado,Universidade Federal do Rio Grande do Norte - UFRN.(Citado na pagina 4)

Medeiros, Joao P. Souza, Paulo S. Motta Pires, Joao B. Borges Neto e Antonio A. F.Loureiro (2015), ‘Minimization and Placement of Sensors in Structurally ObservableNetworks’, The 15th IEEE International Conference on Computer and InformationTechnology (CIT 2015) p. 8.(Citado na pagina 4)

Medeiros, Joao Paulo Souza (2009), Identificacao remota de sistemas operacionais uti-lizando analise de processos aleatorios e edes neurais artificiais, Dissertacao de mestrado,Universidade Federal do Rio Grande do Norte.(Citado na pagina 12)

Medeiros, Joao Paulo Souza e Selan R. Santos (2009), RadialNet: An Interactive NetworkTopology Visualization Tool with Visual Auditing Support, em ‘Critical InformationInfrastructure Security’, Springer Berlin Heidelberg, pp. 168–179.(Citado na pagina 42)

Page 77: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

Referencias Bibliograficas 57

Mednieks, Zigurd, Laird Dornin, G. Blake Meike e Masumi Nakamura (2012), Progra-mando o Android, Novatec.(Citado nas paginas 1 e 49)

Mockapetris, P. (1987), ‘Domain names - implementation and specification’. Tornou ob-soleta as RFC 882, 883 e 973.URL: https://www.ietf.org/rfc/rfc1035.txt(Citado na pagina 12)

MongoDB (2015), ‘NOSQL Database Explained’.URL: https://www.mongodb.com/nosql-explained(Citado na pagina 15)

Moy, J. (1998), ‘Open shortest path first’. Tornou obsoleta a RFC 2178.URL: https://www.ietf.org/rfc/rfc2328.txt(Citado na pagina 9)

Nakamura, Emilio Tissato e Paulo Lıcio de Geus (2007), Seguranca de redes em ambientescooperativos, Campus.(Citado na pagina 11)

Ogliari, Ricardo Silva e Robison Cris Brito (2014), Android: Do Basico ao Avancado,Ciencia Moderna.(Citado nas paginas 2 e 46)

Peres, Andre, Cesar Augusto Hass Loureiro e Marcelo Augusto Rauh Schmitt (2014),Redes de Computadores II: Nıveis de transporte e rede, Bookman.(Citado nas paginas 3, 9, e 10)

Postel, J. (1981a), ‘Internet Control Message Protocol’. Atualizada pelas RFC: 777, 760.URL: https://tools.ietf.org/html/rfc792(Citado na pagina 9)

Postel, J. (1981b), ‘Transmission Control protocol’. Atualizada pelas RFC: 1122, 3168,6093, 6528.URL: https://tools.ietf.org/html/rfc793(Citado na pagina 8)

Postel, J. (1981c), ‘User Datagram Protocol’. Atualizada pelas RFC: 1122, 3168, 6093,6528.URL: https://tools.ietf.org/html/rfc798(Citado na pagina 9)

Postel, J. e J. Reynolds (1983), ‘Telnet protocol specification’.URL: https://tools.ietf.org/html/rfc854(Citado na pagina 8)

Postel, Jon (1998), ‘Routing information protocol’. Tornou obsoleta as RFC 1723 e 1388.URL: https://tools.ietf.org/html/rfc2453(Citado nas paginas 8 e 9)

Page 78: Descoberta de infraestrutura e servi˘cos de rede ...labepi.ufrn.br/bib/tulio2015tcc.pdf · Descoberta de infraestrutura e servi˘cos de rede ... descoberta de rotas, para o rastreio

58 Referencias Bibliograficas

R. Droms, Bucknell University (1997), ‘Dynamic host configuration protocol’. Tornouobsoleta a RFC 1541.URL: https://www.ietf.org/rfc/rfc2131.txt(Citado na pagina 12)

Rekhter, Y., T. Li e S. Hares (2006), ‘A border gateway protocol 4 (bgp-4)’. Tornouobsoleta a RFC 1771.URL: https://www.ietf.org/rfc/rfc4271.txt(Citado na pagina 9)

Rogers, Rick, John Lombardo, Zigurd Mednieks e Blake Meike (2009), Android: Desen-volvimento de Aplicacoes Android, O’REILLY Novatec.(Citado nas paginas 2 e 46)

Tanenbaum, Andrew S. (2003), Redes de Computadores, Novatec.(Citado nas paginas 3, 7, 10, e 19)

Wei, Qiang e Zhi Jin (2012), ‘Mobile Digcovery: A Global Service Discovery for theInternet of Things’, Internetware ’12 Proceedings of the Fourth Asia-Pacific Symposiumon Internetware p. 6.(Citado na pagina 4)