PDF de programación - Creación de software de análisis estadístico del tráfico de Internet aplicable a una red de área local

Imágen de pdf Creación de software de análisis estadístico del tráfico de Internet aplicable a una red de área local

Creación de software de análisis estadístico del tráfico de Internet aplicable a una red de área localgráfica de visualizaciones

Publicado el 12 de Abril del 2018
330 visualizaciones desde el 12 de Abril del 2018
1,1 MB
11 paginas
Creado hace 7a (26/07/2012)
Creación de software de análisis estadístico del tráfico de Internet

aplicable a una red de área local

Ortega Galo, Velasco Saulo, Escuela Politécnica Nacional (EPN), Quito - Ecuador



Resumen – Este proyecto de titulación está orientado a
desarrollar un software con una interfaz visual de escritorio que
permita obtener datos estadísticos y gráficos del tráfico de red,
diferenciando hosts, puertos y protocolos, que pueda ser
ejecutada en sistemas operativos como Windows y Linux(CentOS
y Ubuntu). Se usa como herramienta fundamental a WinPcap
(Windows) y a libpcap(Linux) para la captura de paquetes del
tráfico de Internet de una red LAN Ethernet y a jNetPcap para
su decodificación desde una aplicación Java. Se usa NetBeans 6.5
como entorno de desarrollo, siguiendo los lineamientos del
documento de requerimientos de
software. Se describe
brevemente el método de programación extrema y el diseño final
alcanzado con
incrementales de
desarrollo. En la etapa de diseño se utiliza UML(Unified
Modeling Language) con sus diagramas de casos de uso, clases y
de actividad para describir las relaciones y procesos principales
de la aplicación final. En este documento se mostrarán los
gráficos generados a partir de los datos capturados en el proceso
de prueba y los escenarios de detección de anomalías.

las continuas

iteraciones

I. INTRODUCCIÓN

El servicio de Internet es uno de los puntos más críticos en un
entorno corporativo, donde el uso óptimo de los recursos
constituye el pilar fundamental para el crecimiento y
estabilidad de una empresa.



Los encargados de regular el uso óptimo de este servicio son
los administradores de red, siguiendo las normas de las
políticas internas de la empresa.

El administrador de red debe hacer uso de herramientas de
software para monitorear el ancho de banda de la conexión a
Internet y también de la captura de paquetes. El problema
surge al momento de la interpretación de los datos para la
obtención de parámetros cuantitativos y cualitativos, en los
cuales basar sus decisiones para establecer medidas
restrictivas y correctivas.



El presente proyecto de titulación aborda este problema y se
implementa como una solución la creación de un software con
las siguientes directrices principales:



- Adquisición de datos basado en captura de paquetes.
- Almacenamiento de los valores capturados en una base de
datos.
- Diferenciación de tráfico.
- Análisis de Estadística Descriptiva.
- Generación de gráficos y resúmenes de datos.



Estas características engloban los requerimientos que un
software de este tipo debe poseer para tener una visión global
del uso del servicio de Internet en una red local.

II. DESCRIPCIÓN DE LAS HERRAMIENTAS Y BIBLIOTECAS

CLAVE

A. NetBeans

El Netbeans IDE es un ambiente de desarrollo integrado
para la creación aplicaciones web, empresariales, escritorio y
móviles para distintas plataformas como Java, PHP,
JavasScript y Ajax, Groovy y Grails y C/C++. Es un producto
libre y gratuito sin restricciones de uso.


Es una herramienta pensada para escribir, compilar,

depurar y ejecutar programas.

B. WinPcap y libpcap

Libpcap de Unix provee de una interfaz de alto nivel para
los sistemas de captura de paquetes y su análisis. Winpcap es
el equivalente de libpcap para la plataforma Win32.


La potencialidad de estas bibliotecas puede

ser
aprovechada en varios tipos de herramientas de red que
pueden ser de análisis, resolución de problemas, seguridad y
monitorización. Más específicamente podrían ser:


• Analizadores de red y protocolos.
• Loggers de tráfico.
• Generadores de tráfico.
• Bridges y routers de nivel de usuario.
• Sistemas de detección de intrusos (NIDS).
• Escáneres de red.
• Herramientas de seguridad.



Sin embargo tienen limitaciones, es decir, no poseen la
capacidad de bloquear, filtrar o manipular el tráfico generado
por otros programas en la misma máquina. Por esta razón no
puede ser usado en aplicaciones como limitadores de tráfico,
planificadores de QoS y firewalls personales.



C. jNetPcap

jNetPcap es un API de desarrollo de software para el
(SDK1) de Java, cuya función básica es la proveer de un
“envoltorio java” 2 para la biblioteca libpcap3 .

1 Software Development Kit
2 El término original en inglés es java wrapper




El objetivo de jNetPcap es el de proveer una mayor
facilidad para el desarrollo de aplicaciones típicas de la
biblioteca libpcap y WinPcap.


jNetPcap está conformada por una implementación java
más una implementación nativa dependiente de plataforma. En
el caso de sistemas Win32 la biblioteca es un .dll y en sistemas
Unix es un fichero .so.


jNetPcap API

Protocol Development SDK
Custom Protocol Libraries

Java SDK

Core Protocol

Libpcap Wrapper

Protocol Decoder

Native SDK

Libpcap library

Protocol scanner

Fig. 1. Estructura de jNetPcap

D. Java

Java es un lenguaje de programación orientado a objetos
desarrollado por Sun Microsystems pero actualmente es
mantenido por Oracle Corporation. Este lenguaje contiene
sintaxis de C y C++, pero que gestiona elementos de bajo
nivel para evitar errores asociados a aquello.


Java se ha construido con extensas capacidades de conexión
como TCP/IP, por lo tanto, contiene librerías de rutinas para
acceder e interactuar con protocolos como ftp y http. Esto
permite al programador acceder información a través de la red
con tanta facilidad como ficheros locales.


Java posee las características de ser orientado a objetos,
robusto, seguro, portable, multithreaded4, dinámico y posee
una arquitectura neutral.

integración con

• Desarrollar/integrar/probar el sofware: Se realiza la
implementación,
requisitos o módulos
anteriormente realizados y se efectúan pruebas para observar
el comportamiento de las funcionalidades agregadas. Estas
pruebas buscan verificar que los cambios no contengan errores
lógicos o que no cumplan con los requisitos a fin de obtener
una entrega que satisfaga las necesidades del cliente.

• Entregar y Evaluar el Sistema: Para finalizar la iteración
se hace la prueba final la entrega de todo el sistema con el
cliente para verificar su funcionalidad. Este ciclo continúa
hasta que se hayan integrado todos los requisitos del cliente.



Fig. 1. Ciclo de entrega de la programación extrema [2]

Este método incluye otro principio básico, el cual es la
programación en parejas, cuyo objetivo es la minimización de
errores y aumento la productividad al escribir código de gran
calidad, por la continua verificación del trabajo realizado entre
ambos.

B. Descripción de requerimientos

Requerimientos del usuario resumidos en forma de

diagrama UML.

III. DISEÑO E IMPLEMENTACIÓN DEL SISTEMA

A. Programación extrema

Es un método de desarrollo ágil basado en procesos
iterativos e incrementales y la participación activa del cliente.


A continuación un detalle del ciclo de entrega de la



Fig. 2. Diagramas de casos de uso de los requerimientos del usuario



programación extrema.


• Selección de historias de usuario (requerimientos) y
fragmentación en tareas más pequeñas y planificación de
entrega: Para el desarrollo incremental en la planificación del
proyecto se sintetiza las necesidades del cliente detalladas en
un relato de sus necesidades. Luego de ello se realiza un
planeación para ordenar todas las ideas del cliente y establecer
tiempos. Posteriormente se realiza varias iteraciones para
obtener una diversidad de versiones y analizar con el cliente
hasta que se adapte a su necesidad.

C. Descripción general del sistema

La solución fue dividida en dos módulos:

• TrafficStatistics: módulo que implementa todos los casos
de uso que requieren captura de tráfico de Internet.
• QueryStatistics: módulo que implementa el análisis
estadístico y
los datos
almacenados por el módulo anterior.

Estos módulos fueron implementados en Java con la
finalidad de proveer la característica multiplataforma.


informativos de

resúmenes


3 Biblioteca propia de sistemas Unix utilizada para captura de paquetes de red
4 Significa que varios threads se ejecutan simultáneamente en un espacio de
direcciones compartido.

Ambos módulos utilizan una base de datos implementada
con MySQL para el almacenamiento y posterior análisis de
los mismos como se muestra la Fig. 3.





Fig. 3. Diagramas de casos de uso de los requerimientos del usuario


Tabla Host: Asigna un identificador entero autoincremental
a cada estación de trabajo que va siendo ingresada en la tabla.
El host es diferenciado por su MAC y dirección IP
almacenados en un valor entero equivalente a
su
representación en octetos.


Tabla TrafficType: Identifica los tipos de tráfico existentes
en una conexión a Internet, el tráfico entrante y el tráfico
saliente. El tráfico entrante es identificado con el entero 0 y el
saliente con el 1. Los otros campos de la tabla describen
brevemente cada tipo de tráfico.


Tabla IP_ProtocolNumber: Lista cada uno de todos los
posibles valores del campo protocolo dentro la cabecera del
paquete IP qu
  • Links de descarga
http://lwp-l.com/pdf10363

Comentarios de: Creación de software de análisis estadístico del tráfico de Internet aplicable a una red de área local (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad