Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los derechos de autor han sido entregados a la "ESCUELA POLTCNCA NACONAL bajo
el libre consentimiento del (los) autor(es).
Al consultar esta tesis deber acatar con las disposiciones de la Ley y las siguientes
condiciones de uso:
Cualquier uso que haga de estos documentos o imgenes deben ser slo para efectos de
investigacin o estudio acadmico, y usted no puede ponerlos a disposicin de otra
persona.
Usted deber reconocer el derecho del autor a ser identificado y citado como el autor de
esta tesis.
No se podr obtener ningn beneficio comercial y las obras derivadas tienen que estar
bajo los mismos trminos de licencia que el trabajo original.
El Libre Acceso a la informacin, promueve el reconocimiento de la originalidad de las ideas
de los dems, respetando las normas de presentacin y de citacin de autores con el fin de
no incurrir en actos ilegtimos de copiar y hacer pasar como propias las creaciones de
terceras personas.
Respeto hacia s mismo y hacia los dems.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA ELCTRICA Y
ELECTRNICA
CREACIN DE SOFTWARE DE ANLISIS ESTADSTICO DEL
TRFICO DE INTERNET APLICABLE A UNA RED DE REA
LOCAL
PROYECTO PREVIO A LA OBTENCIN DEL TTULO DE INGENIERO EN
ELECTRNICA Y REDES DE INFORMACIN
ORTEGA LVAREZ, GALO EFRN
VELASCO RIVERA, SAULO ISMAEL
DIRECTOR: Ing. Xavier Caldern
Quito, Octubre de 2010
I
DECLARACIN
Nosotros, Ortega lvarez Galo Efrn y Velasco Rivera Saulo Ismael, declaramos
bajo juramento que el trabajo aqu descrito es de nuestra autora; que no ha sido
previamente presentada para ningn grado o calificacin profesional; y, que
hemos consultado las referencias bibliogrficas que se incluyen en este
documento.
A travs de la presente declaracin cedemos nuestros derechos de propiedad
intelectual correspondientes a este trabajo, a la Escuela Politcnica Nacional,
segn lo establecido por la Ley de Propiedad Intelectual, por su Reglamento y por
la normatividad institucional vigente.
Ortega lvarez Galo Efrn Velasco Rivera Saulo Ismael
II
CERTIFICACIN
Certifico que el presente trabajo fue desarrollado por Ortega lvarez Galo Efrn y
Velasco Rivera Saulo Ismael, bajo mi supervisin.
Ing. Xavier caldern
DIRECTOR DE PROYECTO
III
AGRADECIMIENTOS
Galo Ortega
A Dios por haberme dado la oportunidad de vivir y estar con las personas que
ms quiero como es mi familia.
A mis padres, quienes a lo largo de mi vida han velado por mi bienestar y
educacin siendo mi apoyo en todo momento. Ensendome los valores
fundamentales que forman parte de un buen ser humano. Depositando su
confianza en cada reto de mi vida sin dudar ni un solo momento en mi inteligencia
y capacidad.
A mis hermanas, que siempre han estado ah pendientes en cada paso de mi
vida. A Marthi, que desde pequeo supo cuidarme y junto a mis padres darme el
ms grande regalo que es la oportunidad de salir adelante.
A mi buen amigo Saulo, que siempre ha desempaado su papel en cada proyecto
con responsabilidad y haber demostrado en cada paso una buena actitud de
compaerismo y amistad.
A la Escuela Politcnica Nacional, por haber sido uno de los pilares
fundamentales en mi formacin universitaria.
Saulo Velasco
A mis padres por su incondicional apoyo durante todos estos aos de estudio, a
mis hermanos y en general a toda mi familia.
A Galo y su familia por su amistad y paciencia en el tiempo que pasamos
involucrados en el desarrollo del presente proyecto de titulacin.
Finalmente agradezco a la Escuela Politcnica Nacional por abrirme sus puertas y
brindarme la oportunidad de conocer a tan buenos profesionales y a excelentes
compaeros.
IV
DEDICATORIA
Galo Ortega
Dedico este proyecto de titulacin a Dios y a mis padres. A Dios porque siempre
supo darme la energa y el descanso espiritual necesario para poder afrontar
todos los obstculos que la vida me ha deparado. A mis padres, porque han sido
siempre mi ejemplo a seguir demostrando su tenacidad ante las adversidades de
la vida.
Saulo Velasco
A mis padres.
V
CONTENIDO
NDICE DE GRFICOS
NDICE DE ECUACIONES
XXII
NDICE DE TABLAS
XXIV
PRESENTACIN
El servicio de Internet es uno de los puntos ms crticos 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 polticas internas de la empresa.
El administrador de red debe hacer uso de herramientas de software para
monitorear el ancho de banda de la conexin a Internet y tambin de la captura de
paquetes. El problema surge al momento de la interpretacin de los datos para la
obtencin de parmetros cuantitativos y cualitativos, en los cuales basar sus
decisiones para establecer medidas restrictivas y correctivas.
El presente proyecto de titulacin aborda este problema y se implementa como
una solucin la creacin de un software con las siguientes directrices principales:
- Adquisicin de datos basado en captura de paquetes.
- Almacenamiento de los valores capturados en una base de datos.
- Diferenciacin de trfico.
- Anlisis de Estadstica Descriptiva.
- Generacin de grficos y resmenes de datos.
Estas caractersticas engloban los requerimientos que un software de este tipo
debe poseer para tener una visin global del uso del servicio de Internet en una
red local.
XXV
RESUMEN
En el primer captulo se explora el fundamento terico necesario con los
conceptos y criterios ms relevantes que aportan al proyecto de titulacin. Esto
incluye a la Estadstica Descriptiva con sus conceptos y resmenes grficos, la
Estadstica Inferencial con una introduccin a las series de tiempo, la descripcin
y estructura de los protocolos del modelo de referencia TCP/IP, informacin
referente a las bibliotecas y el API (Interfaz de programacin de aplicaciones) de
captura de paquetes y la plataforma de desarrollo software de Java.
Posteriormente en el segundo captulo se redacta un documento de
requerimientos de software desde el punto de vista de un usuario con el perfil de
un administrador de red y lo que especficamente se espera de este.
El tercer captulo involucra a todo el desarrollo de software. Aqu se describe el
diseo de la base de datos con sus tablas y campos. Por tratarse de un software
desarrollado con programacin orientada a objetos se incluyen los diagramas
UML de casos de uso, de clases y de actividad que ayudan a describir
detalladamente las relaciones y procesos principales del resultado final.
El proyecto consta de dos mdulos bien diferenciados, uno especializado en la
captura de paquetes y la funcionalidad de sniffer y otro enfocado al tratamiento de
los datos de la base, la generacin de grficos y resmenes, tanto visuales como
en formato de texto.
En el cuarto captulo se detallan los paquetes ejecutables finales, los
requerimientos de software y de hardware. Adems se describen las pruebas
realizadas, el anlisis de resultados, algunos escenarios de deteccin de
anomalas y un estimado del costo de desarrollo del proyecto.
En el anexo A se describe el lenguaje de modelado UML versin 2.2 utilizado en
el desarrollo del proyecto de titulacin, mostrando sus aspectos esenciales como
son los casos de uso, diagramas de clases, diagramas de actividad y diagramas
de interaccin.
XXVI
El anexo B muestra los parmetros usados para acceder a la informacin
existente en un servidor DNS (Domain Name System) utilizando el JNDI (Java
Naming Directory Interface).
El anexo C se muestra los requerimientos del sistema, detalles de la instalacin y
ejecucin del proyecto de titulacin para ciertas distribuciones de CentOS 5.2,
Ubuntu 8.04 y Windows (XP o superior).
El anexo D realiza una descripcin comparativa del proyecto de titulacin con la
aplicacin Wireshark 1.2.8 y Colasoft Capsa 7.1 Demo para destacar las
caractersticas principales del mismo y sus limitaciones.
El anexo E incluye el estndar IEEE 830-1998 del formato de Especificacin de
Requisitos de Software (ERS).
El anexo F contiene la propuesta del proyecto de titulacin necesaria para
describir los requerimientos de software.
1
CAPTULO 1
1. INTRODUCCIN
En este captulo se mostrarn los temas base para el desarrollo del presente
proyecto, asumiendo que el lector posee conocimientos bsicos de redes de
datos, programacin orientada a objetos y base de datos.
Se explorar los conceptos y trminos ms importantes de la Estadstica
Descriptiva y lo que se utilizar de la Estadstica Inferencial, adems de una
revisin de los Protocolos del Modelo de Referencia TCP/IP y de la estructura de
sus cabeceras que contienen la informacin pertinente a la transmisin de datos.
Adicionalmente se revisarn los aspectos claves para el entendimiento de la
estructura bsica y funcionamiento del API de programacin orientado a captura
de paquetes y anlisis de red.
Finalmente se mostrar informacin sobre las herramientas de desarrollo de
software, gestor de base de datos y biblioteca de componentes estadsticos,
utilizados en el desarrollo del proyecto de titulacin.
1.1. ESTADSTICA DESCRIPTIVA
[1] [2]
La necesidad de poder describir los patrones a partir de los datos provenientes
del objeto de estudio, ha obligado a desarrollar un mtodo formal de anlisis de
datos para el desarrollo cientfico y de ingeniera. El estudio de dichos datos
involucra un anlisis para la obtencin de conclusiones, a partir de lecturas
provenientes de mediciones experimentales.
La recopilacin de datos es un primer paso para el anlisis en la obtencin de
conclusiones y esta se la realiza de manera metdica con la finalidad de obtener
las caractersticas ms importantes de las mismas. Estas caractersticas son las
ms relevantes y reflejan de forma global al conjunto que representan. El
1
NAVIDI, William ; Estadstica para ingenieros; Cap. 1
2
SPIEGEL, Murray y STEPHENS, Larry; Estadstica; Cap. 1
2
conglomerado de mtodos y tcnicas que describe como hacer lo anteriormente
expuesto, se le conoce como estadstica descriptiva.
Los cientficos y analistas se enfrentan a la perenne existencia de un rango de
incertidumbre en los datos obtenidos. Los resultados pueden ser influenciados por
causas aleatorias e impredecibles. Por lo tanto el objetivo de estos mtodos de
tratamiento de datos es el de minimizar el efecto que tienen estos factores
aleatorios en las conclusiones resultantes. Este campo de estudio es el conocido
como Estadstica Inferencial.
En el presente proyecto de titulacin se har nfasis a la estadstica descriptiva
para el anlisis de los datos obtenidos durante el proceso de captura de trfico.
1.1.1. CONCEPTOS BSICOS
Para comprender con claridad el tratamiento estadstico realizado sobre los datos
obtenidos por medio de la utilizacin del software, se describirn brevemente
algunas definiciones utilizadas, referente a la estadstica descriptiva.
1.1.1.1. Poblacin
En conceptos estadsticos una poblacin representa una coleccin o un conjunto
completo de elementos o resultados obtenidos luego de un proceso experimental
u otro evento.
Grfico 1.1 Poblacin
1
r
E
m
1
H
s
E
d
c
p
c
t
3
1.
R
re
E
m
1.
H
si
E
d
ca
p
co
tr
3
T
.1
R
es
Es
m
.1
Ha
im
Es
e
a
o
o
ra
To
1.
Re
s
st
1.
ac
m
st
e
ad
os
or
at
om
.1
ep
su
ta
to
1
c
mp
to
s
da
st
rre
ta
m
1.
p
ul
a
o
1.
e
pl
o
se
a
te
e
ar
ma
.2
re
lta
m
d
2
e
le
im
e
e
er
es
ra
ad
2.
e
a
m
do
2.
r
e.
m
r
e
ri
sp
a
o
M
es
d
mu
o
1
re
.
m
ele
o
po
d
d
M
se
do
ue
d
1.
ef
p
p
e
or
o
de
de
M
en
os
e
de
fe
pli
pa
em
r
on
e
e:
Mu
n
s
es
e
e
ic
ar
m
a
nd
e
E
ue
nta
s q
st
e
re
ca
rt
me
a
d
u
Es
es
a
q
tr
m
e
a
te
en
e
un
sta
st
a
qu
ra
m
en
q
e
n
e
er
na
ad
tr
ue
a
u
M
nc
q
d
to
es
r
a
ds
ra
u
e
p
ue
M
ci
u
de
o
s
n
l
st
a
un
r
pu
es
Mu
ia
ue
e
o
sto
n
lo
tic
n
re
u
s
ue
a
e
e
d
o
ot
ca
ea
e
tr
es
t
la
de
o,
a
te
a p
s
a
ed
re
st
a
to
a
e
a
er
pa
s
alm
de
e
G
tr
a
od
a
u
s
l
r
ar
u
m
e
o
G
ra
d
m
u
se
o
a
ra
ub
me
e
o
Gr
a
la
o
m
n
e
os
a.
in
bc
e
o
u
a
a
os
mu
na
s
.
ng
co
en
o
ut
fi
al
s
ue
a
d
e
ge
o
nt
n
til
c
le
m
lo
e
de
e
en
on
te
no
iz
co
ea
m
o
es
p
e
le
nie
nj
e
o
z
o
at
mu
os
st
po
eb
e
er
ju
s
o
a
1
to
ue
s
tra
ob
be
m
G
ro
un
se
s
ad
.2
or
e
e
a
b
e
m
Gr
os
n
e
se
do
2
ria
s
el
a.
la
r
e
r
s,
to
o
er
o
M
a
st
e
a
en
f
W
o
ob
r
p
M
a s
ra
em
E
c
nt
fic
Wi
b
r
p
u
si
a
m
El
ci
g
to
co
lli
d
bs
re
pa
ue
im
a
me
l
g
os
o
a
d
se
ep
ar
es
mp
o
e
m
n
e
s
1
m
de
er
p
ra
st
mp
o
n
m
n
en
s
1.
m N
e
rv
re
a
ra
pl
b
nt
m
d
ne
q
3
N
v
e
o
a
le
bt
o
t
de
e
qu
3 M
av
u
va
es
ob
q
e
e
os
to
e
er
u
M
vi
un
an
se
b
qu
en
s
od
e
a
e
Mu
d
n
n.
en
bte
ue
ni
d
d
ta
ar
e
ue
i,
na
.
n
e
e
id
de
o
a
r
f
es
M
a
3
ta
en
r
da
e
o
am
u
fo
st
Mc
3
a
ne
re
a
l
c
m
u
or
tr
cG
p
at
e
ep
la
co
ma
n
rm
ra
Gr
po
iv
rl
pr
p
a
o
a
n
m
a A
ra
o
va
la
re
po
p
on
c
ma
A
aw
ob
a
a.
es
o
po
ns
o
c
ar
Ale
w-
bl
.
se
or
o
si
o
co
r
ea
H
la
d
en
r
ob
is
n
on
at
Hil
ac
de
nt
m
bl
st
n
nj
n
to
l,
ci
e
ta
m
a
te
e
ju
n
or
p
i
u
a a
me
ac
e
e
un
p
ria
p
n
u
a
ed
ci
e
en
n
pa
a
g
n
n
u
d
i
e
n
to
a
S
. 3
,
na
un
io
n
n
e
o
ar
S
3.
a
na
o
n
n
e
o
rte
im
.
q
p
a
t
a
l
d
e
m
q
p
P
d
ti
as
r
d
p
u
o
P
de
e
s
ra
e
d
ple
ue
ob
o
e
en
ig
an
e
de
e
e
bl
ob
e
ne
g
n
e
la
bla
u
e
n
g
n
c
ac
ac
u
n
na
go
n
la
co
c
c
n
n
ar
o
m
a
o
i
i
na
la
r
q
m
on
n
a
a
u
q
me
m
nt
n
n.
m
u
qu
e
m
tie
n,
.
s
m
n
ue
ro
u
e
e
se
m
n
e
o
ue
en
e
el
is
n
v
os
es
ne
es
le
sm
n
v
s
s
e
st
ec
m
va
tr
to
cc
ma
m
a
a
ra
e
o
c
a
m
d
al
a
e
d
ci
p
me
de
e
,
le
de
p
er
e
ea
c
e
e
n
pr
ro
es
at
c
m
ep
n
ro
o
sd
to
o
m
pe
a
ob
e
de
or
om
me
e
a
ba
e
e
ri
m
en
n
ale
a
en
e
o
mo
nt
nd
e
ab
nt
1
os
o
to
de
ea
bi
te
1
s
s
os
e
at
li
er
a
s
s
e
to
d
ro
a
q
i
s
d
or
da
o
qu
s
de
ri
a
n
u
s
3
o
el
a
d
a
n,
e
e
3
o
l
a
d
a
,
e
e
1
S
m
E
d
C
u
o
p
1
C
q
d
E
e
m
1.
S
m
E
d
C
u
o
p
1.
C
q
d
E
e
m
.1
Se
mu
Es
e
Co
n
p
u
.1
Cu
u
e
En
s
mu
1.
e
u
st
e
om
no
pc
ue
1.
ua
ue
e
n
st
u
1
e
to
u
m
o
ci
ed
.1
a
e,
lo
u
ri
e
1.
re
es
o
un
mo
d
d
1.
an
,
o
u
ic
es
2
e
st
p
na
o
de
n
e
.3
nd
s
s
n
ct
st
2.
fi
tr
pu
a
o
e
n
e
3.
do
si
s o
na
ta
tr
2
ie
ra
u
a m
e
e
p
e
I
o
s
o
a
am
ra
2.
er
a
e
m
ej
e
p
es
In
o
se
ot
p
m
a,
re
d
ed
m
e
el
r
sc
n
s
e
ro
p
me
s
e
de
de
u
em
lo
c
nd
se
e
o
o
e
s
e
e
ue
m
os
c
o
de
e
c
os
ob
n
su
a
m
e
es
mp
s
ct
og
ep
h
co
s
bl
nt
u
a
m
d
st
pl
s d
tic
ge
p
h
on
e
la
te
p
M
u
ma
da
tr
lo
d
c
e
e
ha
n
el
ac
e
po
M
u
a
ar
ra
o,
de
a
er
en
ab
o
e
c
o
Mu
un
n
rs
a
,
en
a
r l
nd
b
oc
em
i
in
b
ue
n
ne
se
p
e
n
y
lo
de
la
ce
m
n
n
bla
es
e
e
pa
el
tr
ya
os
e
a
e
me
n
d
a
st
m
ra
e e
a
ro
a
s
n
d
e
en
de
ac
tr
m
a
e
ar
c
o
s
p
nc
d
e
n
fi
ep
ci
ra
c
en
ra
ca
d
se
po
ci
de
el
nto
in
p
a
t
c
n
a
as
d
e
o
ia
e
v
o
ni
pe
n
d
o
o
c
d
so
e
a
os
a
va
os
it
en
n
de
od
om
ca
de
o
e
a
st
e
a
s
a
nd
c
e
do
m
a
es
o
u
p
te
e
lo
r
a
d
ca
c
o
mp
s
s
d
un
po
es
le
o
re
lo
die
a
co
o
pl
so
sc
de
n
o
s
e
r
es
o
e
am
on
p
le
os
cr
e
a
r
m
G
m
d
st
os
en
m
nv
po
et
s
rib
u
a
d
m
Gr
m
de
ta
s
nt
mb
ve
o
ta
b
u
r
d
m
r
e
e
an
e
te
bi
en
or
am
d
bir
n
e
is
f
en
e
n
el
es
a
n
r
m
do
r
na
em
sp
s
fic
nt
a
te
le
s
a.
G
ie
e
me
o
u
a
m
p
s a
co
to
alg
e
em
,
G
en
el
e
on
un
f
me
o
a
o
os
g
es
m
Gr
n
l
en
nd
n
f
es
os
ac
1
s
gu
s.
me
y
r
c
c
nt
de
a
b
s
si
cc
1.
un
e
ya
fi
cia
cu
te
e
a
b
a
ic
ce
4
in
n
n
a
ic
a
u
e
e
p
r
a
ci
e
4 M
nd
o
nt
co
a
a
a
s
po
ic
a
es
M
d
o
to
q
o
al
al
se
ob
ca
ap
n
si
Mu
de
d
os
q
1
le
ea
b
a
p
n
b
ue
ep
de
s
u
.5
s
ea
a
bla
d
il
f
ble
es
p
e
e
ue
5
se
a
f
a
d
a
f
e
st
e
e
e
e
I
e
to
f
c
de
ad
s
es
tr
en
e
n
n
o
s
ci
e
da
sic
s
ra
nd
ll
n
c
nd
o
or
si
p
a
c
d
a d
d
o
u
cu
de
op
ia
c
n
po
a e
a
de
d
ie
os
un
ua
ep
pt
a
ca
n.
o
e
a
e
e
e
s,
n
a
pe
ta
.
am
.
os
en
u
l
e c
n
,
a
an
en
a
m
st
n
u
a
co
nt
e
a
nd
n
me
te
g
o
a
o
te
es
m
d
d
c
e
es
gr
ot
r
n
es
st
m
o
e
cu
n
s,
ra
tr
re
v
s
to
mu
o
en
ua
nt
,
a
ra
em
ve
e
o
ue
nc
a
te
e
n
a
m
en
e
n
e
s
cia
an
e
en
nd
r
me
nie
en
n
es
se
a
nd
im
n
de
ra
es
e
n
o
st
e
d
m
e
az
s
n
u
o
tr
o
mp
la
es
z
a
c
u
a
a
e
o
p
a
s
a.
cia
n
ap
a
ex
n
pr
c
g
n
a
na
po
a
xt
n
r
c
gr
n,
a
o
al
tr
o
c
u
ru
m
or
le
ra
o
ct
ua
up
p
m
rta
ea
ae
e
tic
al
p
po
mu
a
at
e
e
c
l
po
or
u
ar
to
e
s
co
e
os
r
e
a
o
u
s
o
el
s,
e
es
a
ri
u
p
o
e
,
el
st
a
ia
n
p
o
eg
n
llo
tr
a
a
n
o
n
gi
no
o
ra
a
s
os
no
ir
o
o s
a
p
s
e
si
o
r
r
s
s
pr
im
el
b
o v
a
re
sim
se
re
m
e
bl
v
ale
e
m
e
ed
mp
em
e
via
e
s
mp
e
de
p
m
e
a
ea
su
p
q
e
le
me
o
b
at
ul
ple
qu
ec
e
e
o
bl
to
ta
e
u
ci
n
n
b
e
or
a
m
ie
r
n
nt
bt
e
ri
a
m
er
o
o
te
la
a
s
e
re
e
o
o
en
a
am
se
en
e
el
s
n
t
m
er
nt
l v
se
d
e
to
me
r
te
d
v
e
de
er
o
e
u
e
de
va
r
e
r
m
n
un
s
ec
al
a
l
m
nt
n
s
c
o
a
l
4
a
a
e
a
e
ir
or
n
a
4
a
a
e
a
e
r
r
n
a
5
1.1.2. MEDIDAS DE TENDENCIA CENTRAL
Estas medidas o promedios son conocidos de esta forma porque sus valores
tienden o asemejan a los del centro del conjunto de datos, previa una ordenacin
por magnitud.
Entre las ms utilizadas tenemos la media muestral, la mediana muestral y la
moda.
Los cuartiles, deciles y percentiles pueden considerarse una extensin de la
mediana.
1.1.2.1. Media muestral
La media muestral, o tambin conocida como media aritmtica, es un valor
numrico obtenido a partir de la suma de todos los elementos de la muestra,
dividido para la cantidad total de elementos existentes en esta.
Se define por
Ecuacin 1.1
1.1.2.1.1. Datos atpicos
Este tipo de datos son aquellos que en ocasiones se presentan en las muestras
con valores muy superiores o muy por debajo de los dems.
Pueden deberse a errores al momento del ingreso de los datos, pero tambin
existen casos donde las poblaciones realmente contengan estos valores. Si se
comprueba que realmente son fruto de un error, deben ser eliminados o
corregidos, de no ser as se corre el riesgo de disminuir el carcter representativo
de la muestra.
Grfico 1.6 Conjunto de datos que contiene un dato Atpico
6
1.1.2.1.2. Media recortada
La media recortada es una medida de tendencia central pensada para evitar que
el resultado sea influenciado por datos atpicos. Previa una ordenacin de los
valores de la muestra, se procede a realizar un recorte de un porcentaje del
nmero de datos en ambos extremos de la muestra y se calcula la media con los
elementos restantes.
Por lo general estos valores corresponden al 5%, 10% y 20% del total de
elementos de la muestra.
1.1.2.2. Mediana muestral
La mediana muestral es una medida de tendencia central que corresponde al
valor central (en caso de que el nmero de elementos de la muestra sea impar) o
al promedio de los dos valores centrales (en caso de que el nmero de elementos
de la muestra sea par) de un conjunto ordenado de nmeros de forma creciente o
decreciente.
Grfico 1.7 Mediana
1.1.2.3. Moda
La moda muestral corresponde al o los valores con mayor frecuencia en una
muestra. En otras palabras, al o los valores que ms se repiten.
Una muestra puede no tener una moda, o poseer varias (bimodal, multimodal).
Grfico 1.8 Modas
1
E
o
C
c
Q
D
P
P
1
S
t
d
e
E
c
e
1
S
d
i
C
i
l
1.
E
o
C
co
Q
D
P
P
1.
S
tie
d
e
E
ce
e
1.
S
d
n
C
n
a
.1
Es
rd
Cu
o
Q
2
De
Pe
P
9
.1
Se
e
a
n
Es
e
s
.1
Se
e
nf
Ca
nc
a
1.
st
d
ua
om
2
ec
er
99
1.
e
en
at
n
s
en
sta
1.
e
e
fo
ab
co
s
.2
to
e
a
m
e
c
rc
.
.3
l
nd
o
c
im
nt
a
.3
d
n
or
b
o
se
2.
os
en
ar
mo
es
cil
c
3.
la
d
os
cie
m
tr
ad
3.
de
n
rm
be
on
e
.4
s
n
rt
o
s
le
e
.
a
e
s
e
mp
ra
d
.1
e
m
e
nv
r
4.
v
a
til
Q
i
es
en
m
en
y
er
p
al
s
1.
fi
m
ma
ve
ie
C
va
ad
le
Q
g
s
nt
M
ma
n
y
rto
po
e
st
R
in
me
ac
d
e
e
C
a
do
es
Q
1
gu
s:
ti
M
a
a
p
o
or
es
tic
R
ne
e
c
d
en
p
Cu
alo
o
s
1
,
ua
d
il
ME
a
a
pe
s
rt
s,
c
Ra
e
er
ci
e
ni
p
u
o
s
s:
a
d
e
E
d
e
e
s
ta
,
co
an
c
ro
ec
e
pu
a
or
s
d
Q
l
iv
es
ED
di
e
er
e
an
e
os
n
c
os
n
ci
en
ue
ar
re
p
d
Q
2
a
v
s
D
s
x
rm
ec
nt
es
s
ng
co
s.
n.
r
nt
ed
rt
es
po
div
2
a
id
:
DI
sp
xt
m
ct
te
s
d
go
om
.
s
te
d
til
s
or
v
y
l
de
d
ID
pe
e
it
to
e
p
de
o
m
E
se
es
de
le
t
r
vid
y
a
e
d
D
e
en
te
or
c
po
e
mo
Es
e,
s
e
es
tie
m
d
a
en
iv
A
rs
nd
e
r
c
o
n
o
s
,
s,
p
s,
e
m
e
Q
m
n
vi
AS
s
d
r
o
o
r
no
l
l
p
p
, D
n
ma
en
Q
3
m
la
id
S
i
e
re
o
on
e
o
a
la
p
p
ro
D
ne
ag
n
3
e
a
de
S D
er
et
r
no
e
m
a
a
po
u
o
De
e
g
l
q
ed
a
e
D
n
rs
tr
re
o
ll
m
d
m
o
ue
ov
ec
n
n
la
q
d
m
n
DE
n
se
ra
ec
c
o
in
di
m
or
es
vo
ci
n
ni
a
u
ia
m
n
E
a
e
at
co
ce
o
na
ife
me
s
oc
il
c
tu
m
ue
an
u
la
E D
al
a
ta
o
er
q
a
e
e
e
c
le
co
u
m
e
n
ue
a
D
g
a
ar
r
r
qu
ad
er
d
o
e
a
es
om
d
mu
r
a
es
a
G
DI
g
lr
r
ri
s
ue
do
re
did
ot
el
ar
s y
m
d.
ue
re
a.
s
m
Gr
IS
r
re
la
id
si
e
o
en
d
tr
h
r
y
mo
e
e
tr
m
r
S
ra
ed
a
do
l
e
s
nc
da
a
he
u
y P
o
E
es
p
ra
mu
f
P
ad
d
a
o
lo
e
s
c
a
a
e
un
P
o
En
st
pr
a
ue
ic
PE
do
e
d
d
os
el
m
cia
d
ec
na
Pe
o
nt
tr
re
e
es
co
E
o
ed
dis
d
s
g
m
a
de
p
ch
a
er
ob
tr
ra
es
e
s
o
ER
o e
d
s
e
v
g
e
e
e
pa
ho
a
rc
bj
re
a
se
n
st
1
R
e
o
ta
e
v
ra
ed
e
e
a
o
d
ce
je
e
e
e
n
ra
.9
RS
en
or
a
la
a
a
di
en
d
ar
o
de
en
et
l
en
en
1
a
9
SI
n
r d
an
a
alo
ad
id
nt
dis
rte
d
ef
n
tiv
o
n
nt
0
I
q
d
nc
v
o
do
da
tr
s
e
de
fo
ti
v
os
ta
0
e
R
qu
de
ci
v
or
o
a
re
p
,
e
o
il
vo
s
c
an
p
en
Re
N
u
el
ia
va
re
d
s
e
pe
q
rm
le
o
p
cu
n
pa
n
ep
N
e
l
a
ar
es
d
s
lo
e
q
q
m
es
d
pr
ua
a
a
1
p
e
v
d
ria
s
e
d
o
rs
q
u
ma
s
di
ri
at
a
ar
1
re
lo
va
de
a
e
e
de
s
s
qu
ue
a
iv
n
tr
al
rte
0
es
o
al
e
ab
e
d
e
s
i
ue
e
ac
vi
nc
ro
p
e
00
se
os
o
e
bl
n
di
d
d
e
n
ci
d
ci
o
p
s
0
e
s
or
lo
e
n
s
di
do
n
no
di
ip
p
pr
s
p
n
d
r
o
e.
g
sp
is
os
n
o
n
r
pa
p
im
ig
p
ta
di
m
s
ge
pe
sp
s
m
e
o
n
e
a
a
m
g
a
ac
fe
m
s v
en
e
p
v
m
es
in
d
e
le
ar
me
u
ar
ci
e
me
v
n
rs
e
v
st
n
d
n
es
rt
e
ua
rte
i
er
ed
va
e
s
er
a
s
ta
fl
e
n
s
e
ro
al
e
n
re
d
al
er
i
rs
alo
s
a
lu
e
p
s t
es
o
le
es
n
en
io
o
ra
si
o
s
uy
l
pa
te
s
o,
es
s
d
nt
o
or
al
n
or
se
ya
a
a
e
i
s
s
i
de
te
u
re
l
n
n
re
e
m
a
a
rt
n
g
s
,
g
e
es
u
es
e
s
n.
es
n
m
an
r
te
ne
gu
e
s
gu
lo
s
ti
s
es
se
.
s
nc
e
n
re
e
em
ua
eg
se
ua
os
s v
il
o
st
e
e
ci
ed
m
ea
s
m
a
gu
e
a
s
v
iz
o
t
m
ex
ill
di
m
a
s
mo
ale
u
i
ale
c
va
za
o
n
m
x
la
id
m
li
ig
o
e
n
n
e
cu
al
a
la
n
mi
xtr
a
da
s
d
g
s
s
nd
nd
s
ua
o
d
a
c
d
re
y
a
s
da
u
s:
s.
do
d
s,
ar
or
do
c
c
de
e
y
d
ad
ua
o
ic
s
rt
re
o
co
ce
e
m
l
d
d
al
E
o
ca
s
ile
es
d
o
er
p
m
a
p
de
.
le
Es
y
a
se
e
s
d
on
rc
po
o
a
pr
e
A
es
st
y
n
e
s
n
e
nc
ca
o
os
q
re
d
A
s
to
t
n
d
n
en
ce
a
or
s
qu
es
do
Al
u
os
te
c
de
u
nt
e
o
r m
q
ue
s
o
u
s
er
co
e
um
tr
en
o
m
qu
e
e
os
m
n
rc
on
en
m
ro
nt
a
me
u
e
en
s
m
n
v
ce
n
no
m
o
tr
a
e
e
p
nt
v
is
c
va
e
D
ot
r
d
ra
ale
ed
e
pr
ta
va
sm
co
al
r
D
ta
ri
de
ac
e
di
to
ro
a
al
m
o
o
c
D
1
a
ic
e
ci
eja
o
o
op
lo
mo
n
or
cu
1
,
n
co
i
a
o
om
p
u
or
o
nj
re
u
n
os
u
n
d
d
m
o
u
re
o
u
es
ua
D
p
s
un
n
do
de
ma
or
un
e
ti
un
s
ar
D
2
po
d
n
d
os
e
a
rc
na
s
ie
nt
s
rt
2
,
o
d
c
d
s
i
u
ci
a
s
em
to
s
til
,
r
de
co
e
d
in
un
o
d
m
o
e
le
P
e
o
e
d
nd
n
on
de
mp
d
e
es
,
P
lo
n
lo
de
d
n
na
s
el
p
d
d
s
,
P
1
o
nj
o
e
ic
c
a
se
l
po
e
de
,
D
,
os
u
os
v
ca
co
a
er
to
o
e
e
d
D
9
s
un
s
va
a
on
m
ri
o
p
d
en
do
9
P
d
nt
d
a
ad
nj
m
e
ota
pu
da
no
o
.
P
2
da
to
da
lo
do
ju
e
e
a
u
a
ot
on
2
,
a
o
a
o
o
u
en
al
e
to
ta
nd
to
d
to
re
re
n
no
d
d
ed
o
a
d
o
d
o
e
e
nt
o
d
d
d
7
s
n
e
,
s
e
s
s
s
o
s
e
e
e
7
s
n
e
,
s
e
s
s
s
o
s
e
e
e
8
verse afectada por la presencia de ciertos valores extremos que son poco
representativos.
1.1.3.2. Desviacin media
La desviacin media viene a indicar el grado de concentracin o de dispersin de
los valores de la variable. Se suele centrar en la medida de la desviacin con
respecto a la media. Si es muy alta, indica gran dispersin; si es muy baja refleja
un buen agrupamiento y que los valores son parecidos entre s.
La desviacin media se puede utilizar como medida de dispersin en todas
aquellas distribuciones en las que la medida de tendencia central ms
significativas haya sido la media.
Puede definirse como la media aritmtica de las desviaciones de cada uno de los
valores con respecto a la media aritmtica de la distribucin, y se indica as:
Ecuacin 1.2
La desviacin media en el caso de datos agrupados en intervalos viene dado
como:
Ecuacin 1.3
Para valores de X
1
, X
2
,, X
K
que ocurren con frecuencias f
1
, f
2,
, f
K
respectivamente, donde .
En la frmula anterior las desviaciones van multiplicadas por las frecuencias de
clase de los intervalos correspondientes. Las desviaciones son de cada centro o
marca de clase representado por X
j
respecto a la media aritmtica.
1.1.3.3. Desviacin estndar
m
er
p
nc
4
s
ag
te
e
al
ag
to
b
ta
te
l
mp
rp
pa
ci
4.
h
g
e
p
l
g
os
le
a
es
is
po
pr
ac
il
3
hi
ra
t
p
e
gr
s
e
a
s
s
o
re
c
la
3.
is
a
ti
pu
es
ra
s
al
is
is
rt
e
cid
a
1
st
am
p
ue
s
am
d
(2
tu
s
s
ta
ta
d
s
1.
to
m
po
ed
p
m
di
2
u
s:
s:
a
a
da
so
og
ma
o
d
pr
ma
ia
ur
P
m
c
ad
o
g
a
de
ro
a
ag
v
ra
P
m
ci
d
ob
ra
d
d
e
o
a
g
va
a
Pe
P
ie
d
br
a
d
de
s
p
d
ra
ar
e
er
P
e
n
d
re
am
e
e
se
po
de
a
ri
es
rm
Pe
n
n
de
e
T
m
e
d
e
or
e
am
a
s
m
er
nt
e
e
s
Tip
ma
b
d
r
rc
b
m
ab
p
mi
rm
o
en
e
si
ip
as
ba
ia
a
ci
b
ma
b
pr
it
m
o
n
C
it
po
s
a
a
a
io
a
as
le
ro
ir
mi
y
u
C
u
os
s
r
g
ab
on
ar
s
es
o
r
te
y
u
o
ua
s
se
rr
gr
bs
n
rr
s
p
re
e
y
n
om
ac
d
e
a
ra
so
a
ra
p
)
po
e
e
p
na
m
c
de
e d
as
am
o
al
as
pe
.
or
es
p
a
mu
io
e
d
s
m
olu
a
s
e
L
rc
su
e
a
t
u
on
H
div
s
ma
u
a
c
rm
L
ci
um
e
au
ta
un
n
H
v
si
a
ta
l
c
m
a
io
G
m
el
ut
ab
ni
ne
His
id
im
a
la
G
co
mi
a
on
Gr
mi
ta
b
ic
es
st
d
m
re
a
G
om
it
a
n
r
ir
as
la
ca
s
to
e
mp
e
o
f
r
m
te
al
a
f
r g
a
s
a
a
c
og
en
p
ep
o
fre
f
m
en
lt
al
fic
g
an
s
n
ac
co
gr
n
ple
pr
r
e
fic
p
n
tu
a
co
gr
n
d
n
ci
o
ra
e
e
re
e
ec
co
pu
ur
a
o
ra
d
u
i
om
a
en
es
es
ela
cu
o
ue
re
ra
l
1
an
l
e
um
n
m
am
n
s
s
a
ue
1
e
e
a
la
1.
nd
is
e
m
n
mp
ma
:
se
at
e
1.
es
ep
d
a
1
d
s
m
n:
pl
a
en
iv
en
.1
st
pr
d
f
2
de
is
v
r
e
as
nt
va
nc
11
ta
re
e
fr
2
es
s
va
ri
P
ej
s
ta
a
c
1
a
es
e
e
H
s
ar
ic
Pe
a
a
a s
ia
H
s
l
ec
His
c
ri
ca
e
as
s
a
Hi
e
a
cu
s
ca
d
a
a
r
s.
la
se
d
s
en
a
u
to
a
de
ac
.
m
.
a
e
de
sto
nt
b
e
og
an
e
ci
m
r
e
og
ta
ba
en
gr
nt
i
it
in
re
el
g
a
a
nc
ra
tid
n
te
nf
ep
i
ra
r
ar
c
am
d
l
n
e
fo
p
n
am
rra
ia
m
a
lo
c
o
re
nt
m
la
a
a
ma
ad
os
q
co
rm
e
te
ma
a
a
d
as
de
s
q
o
m
es
er
a
r
de
s
e
u
om
ma
se
rv
d
in
re
e
b
es
ue
m
a
en
va
de
nf
ep
e
ba
s
d
e
mu
ac
n
a
e
fo
pr
c
ar
d
da
un
ci
ta
lo
b
o
re
ca
rra
de
a
t
n
a
o
ba
r
e
ad
a
e
ato
ie
ic
n
a
d
ar
m
s
d
s
d
o
en
ca
n
m
d
rra
ma
se
a
c
d
os
n
a
d
m
e
a
a
en
a
co
a
s
ne
ar
d
e
e
s
ac
n
u
om
at
en
r
e
ed
c
s
ci
ta
un
m
to
n
in
e
di
cla
si
a
na
mp
os
m
nf
u
ia
a
m
n
a
pu
s.
m
u
fo
u
an
as
mp
n
la
a d
ue
.
mo
u
o
n
n
se
p
a
d
es
os
n
rm
na
te
e
le
d
de
st
st
na
m
a
e
c
es
de
fr
e
ta
tr
a
ma
v
e
co
s
e
re
e
as
ra
a
v
la
o
e
el
s
an
g
ac
a
a
r
u
c
lla
n
gr
ci
ar
a
re
un
cu
a
d
ra
ria
a
e
na
ue
as
do
an
n
a
alt
es
a
e
s.
o
n
n
b
tu
sp
a
n
n
d
bl
ur
po
t
nc
c
d
e
ra
o
ta
ci
e
c
e
e.
a
on
ab
a
es
o
e
d
nd
bl
a
s
om
f
L
d
d
la
d
sq
m
fo
La
e
ie
a
de
qu
mp
or
a
e
en
e
ue
pl
rm
f
la
n
d
e
e
le
m
fr
a
nte
de
la
em
ej
ma
re
a
e
e
a
m
jid
a
ec
b
e.
a
ma
d
c
c
ba
e
c
as
da
c
u
a
en
cl
s
ad
la
ue
rr
nt
a
d
a
en
ra
tr
as
ra
n
a
ra
se
d
d
a
c
,
ad
e
1
d
d
ci
l
d
2
e
e
y
a
a
a
y
2
e
e
y
a
a
a
y
13
Diagramas de barra agrupada
Esta es utilizada para representar la informacin de una tabla de doble entrada o
ms, es decir, a partir de dos variables. La representacin se la hace mediante un
conjunto de barras correspondientes a cada clase o categora que se clasifican
respecto a las diferentes variables.
Grfico 1.13 Histogramas barras Agrupadas
Polgono de frecuencias
Este es un grfico de lneas de las frecuencias de clase de una distribucin, en el
cual la altura del punto asociado a una clase es proporcional a la frecuencia de
esta. Se lo obtiene uniendo los puntos medios de la parte superior de los bloques
o rectngulos del histograma.
Grfico 1.14 Polgono de Frecuencias
Ojiva Porcentual o Polgono de Frecuencias Relativas Acumuladas
Es un grfico que recoge las frecuencias relativas acumuladas para cada
intervalo de clase (frecuencia acumulada dividida entre la frecuencia total). Es
muy til cuando se requiere representar un rango porcentual de cada clase en
una distribucin de frecuencias.
14
Grfico 1.15 Ojiva Porcentual
1.2. ESTADSTICA INFERENCIAL
Es una parte de la estadstica que comprenden mtodos y procedimientos,
mediante los cuales se deducen (infieren) propiedades o caractersticas de una
poblacin a partir de una muestra significativa.
Una aplicacin avanzada de la Estadstica Inferencial es la obtencin de
expresiones matemticas para las series de tiempo, con curvas de tendencia con
el objetivo de realizar estimacin o prediccin.
1.2.1. SERIES DE TIEMPO
Una serie de tiempo es un conjunto de datos ordenados provenientes de
observaciones realizadas a lo largo del tiempo, en momentos especficos y
generalmente con intervalos de igual duracin.
Matemticamente una serie de tiempo se define como el conjunto de valores de
una variable dependiente Y correspondiente a los tiempos t
1
, t
2
,..., es decir, Y es
una funcin de t, denotado por Y=F(t).
En el presente proyecto se utilizarn las series de tiempo solo en su
representacin grfica, a partir de los datos recopilados en la captura de paquetes
de trfico de Internet, lo que arroja informacin suficiente para la toma de
decisiones de un administrador de red.
1
L
c
E
1.
L
ca
E
.2
a
a
Es
2.
as
ar
st
.1
s
ra
to
1
2
3
4
1.
s
ac
os
1.
2.
3.
4.
.1
s
ct
s
.
.
.
.
1.
e
te
m
C
er
er
m
M
s
q
p
M
o
E
M
p
in
e
M
s
v
p
C
rie
r
mo
M
se
qu
po
M
os
Es
M
pa
nf
ex
M
su
va
po
Co
e
s
ov
o
ec
ue
or
o
sc
st
o
at
fe
xt
o
uc
ar
or
om
s
st
v
ov
c
e
r
ov
c
to
ov
tr
e
te
ov
ce
ri
r
m
s
tic
vim
v
u
e
u
v
il
o
v
ro
ri
en
v
e
a
s
mp
d
c
m
im
ula
la
un
im
a
s
im
on
io
n
im
ed
ac
su
p
de
o
mi
m
a
a
n
m
ac
s
m
n
or
d
m
de
ci
u
po
e
os
ie
m
ar
g
a
m
ci
c
m
e
re
de
m
e
o
m
on
e
s
en
ie
r o
g
a
ie
o
cic
ie
es
e
er
ie
n
on
m
ne
t
o
n
e
o
r
c
e
on
cl
e
s
s
rs
e
n
n
ma
e
ie
o
to
n
o
cu
n
ne
lo
n
s
se
n
e
a
n
e
v
o
nt
te
f
ur
nt
e
os
nt
re
a
e
nt
p
es
g
nt
m
va
os
to
e
fic
rv
to
es
s
to
e
a
e
to
po
s
gn
te
m
a
s
os
en
ca
va
os
s
s s
os
ec
p
os
o
d
ni
es
p
ri
c
s
nd
a
a
s
o
s
s
cu
u
pa
s
r
d
it
s d
po
ia
ca
s
de
s
a d
s
o
o
s
ur
un
ar
s
e
tu
d
o
ac
ar
a
e
s
d
on
e
rr
n
ra
i
c
e
ud
de
c
ra
a
en
sig
de
c
m
n
es
re
a
ir
ca
c
d
e l
p
io
ac
nc
g
e
c
m
n
st
e
a
u
rr
a
co
r
la
pu
on
c
l
ci
u
t
c
o
no
ta
n
a
u
re
au
o
re
as
ue
n
cte
a
ia
ue
te
c
ov
o
a
nt
o
n
eg
us
rt
es
s
e
ne
e
ar
a
e
en
li
vi
o
ac
e
o
n
g
sa
ta
s
S
d
es
er
rg
s
e
nd
ic
im
p
ci
es
o.
p
u
a
a
u
Se
de
s
G
rs
g
se
e
d
co
m
pe
io
s
pe
ul
as
ult
e
en
,
G
st
o
e
n
de
o
mi
er
on
c
D
er
la
s
d
te
r
n
p
Gr
ti
o
ec
n
en
os
e
ri
n
c
D
r
ar
du
e
ie
pr
c
cu
u
n
s
en
na
ca
e
o
re
a
ur
n
es
a
re
fi
co
p
ul
un
c
nt
d
al
as
ep
od
e
al
ra
n
s
ab
es
c
os
pl
la
n
cia
o
to
di
le
si
pe
d
s
le
a
e
d
b
s
co
s
a
ar
i
a
o
os
ic
es
i
e
o
s
ea
c
en
de
s
e
o
p
az
r.
in
o
o
s
co
s
i
en
o
o
a
ci
n
e
st
en
1
p
zo
.
nt
o
o
d
nd
d
o
to
m
T
ra
nt
.1
u
o
E
te
ob
v
re
s
o
d
d
de
o
o
n
m
T
a
te
16
ue
o
Es
er
bt
v
e
s,
o
ie
et
a
or
n.
mo
Tie
ae
es
6
ed
o
s
rv
te
va
es
e
v
n
en
te
a
ia
.
ov
e
er
s
S
d
o
te
va
en
ar
sp
e
v
nt
n
e
le
as
S
v
m
rs
e
Se
de
o
e
a
n
ri
pe
s
a
ic
nd
rm
e
s
S
vim
m
se
e
e
en
s
alo
id
a
e
s d
ar
co
do
m
ea
s,
in
m
p
e
en
ri
n
s
m
o
da
ac
ec
d
ri
o
o
m
at
n
mi
po
n
e
c
e
m
g
a
c
ct
de
a
os
in
to
c
ie
o
c
d
es
c
ec
o
g
a
io
to
ec
ac
s,
d
na
or
c
e
en
co
di
s d
la
cu
ov
gr
p
o
o
c
ci
de
a
ri
u
em
n
om
s
d
as
u
vi
ra
po
n
d
ir
io
q
e
ad
io
uy
m
to
m
st
e
s
ul
m
an
or
ne
d
r,
o
qu
l
do
o
yo
mb
o
mo
tin
e T
if
a
m
nd
r
e
e
p
n
u
t
o
s
o
ba
s
o
n
T
fic
ar
mie
d
d
s
e
p
ne
ue
ti
c
s.
a
s
o
to
ie
c
re
e
de
di
s
u
u
es
e
p
co
e
ar
c
u
o
em
ca
es
n
e
s
u
ue
s
o
po
o
S
e
rg
c
un
s
m
ar
s
nt
d
st
c
n
ed
s
o
o
om
S
efe
go
c
n
s
mp
rs
.
to
de
tin
c
na
d
e
oc
m
o
e
o
cli
g
po
se
o
e
n
c
a
e
es
cu
d
mo
on
ec
p
ic
c
gr
o.
e
L
d
e t
to
c
r
en
s
u
de
o
n
ct
p
co
co
ra
.
e
Ll
de
ti
o
cli
re
n
ta
rr
e
d
to
pu
os
on
ad
e
a
e
ie
s
ic
e
o
a
re
d
m
o
ue
s
n
d
n
am
es
em
s
ca
c
o
ac
e
d
a
m
e
s o
ju
o
n
m
sc
m
m
a
cta
n
ci
n
da
as
mo
s
d
o
u
os
c
ma
cr
mp
m
as
a
n
io
n
at
s
ov
su
de
o d
n
s.
cu
ad
ri
p
s.
a
o
o
e
to
,
v
u
e
d
nt
.
ua
d
b
o
t
.
o
o
n
e
os
h
im
e
d
de
to
a
do
be
o.
to
o
s
na
n
s
ho
m
ele
d
e
o
tr
os
e
S
od
S
c
se
al
n
s
o
mi
e
a
o
d
ro
s
l
S
do
S
c
eg
le
p
d
or
e
e
ar
ot
d
o
a
Su
o
Se
cu
g
es
p
di
ra
en
rs
tr
e
t
t
a
u
os
e
ur
u
s
pe
is
as
nt
o
se
ro
e
ti
a
d
e
s.
rv
ui
s.
er
sp
s,
to
ob
e
o
d
p
am
di
ele
va
r
r
p
,
os
bs
t
d
po
m
ir
e
re
a
p
S
o
o
s
s
s
e
ip
e
os
mb
re
e
e
p
Se
od
on
se
se
el
po
e
s
bi
ec
re
fi
d
a
e
do
ni
em
f
er
o
m
p
i
cc
e
ie
de
at
o
ib
m
fo
rv
c
o.
m
p
n
c
ep
er
e
ro
re
os
bl
ma
or
va
ca
mo
ri
n
i
pr
re
t
o
e
s
e
a
rt
a
as
ov
in
n
re
e
te
on
fi
i
es
n
u
rs
so
v
nc
v
n
es
n
e
ne
ie
ig
s
na
uit
s
o
vim
c
va
n
s
n
n
e
er
gu
as
to
e
o
m
ip
a
g
e
nd
s
re
u
p
s
o
e
d
mi
pa
ri
ge
en
a
de
s.
e
a
pu
.
s
de
ie
a
ria
en
nt
a
e
a
al
ue
s,
c
e
en
ale
ac
n
ta
n
a
e
e
co
e
n
e
c
e
a
nc
a
es
ed
q
o
q
to
es
ci
er
rs
la
ci
lo
s
de
qu
m
qu
1
o
s.
ra
s
a
ia
o
e
u
m
u
5
s
n
al
e
s
a.
s
o
n
e
o
e
5
s
n
l
e
s
.
s
o
n
e
o
e
16
1.2.1.2. Anlisis de Series de Tiempo
Se refiere a la descripcin matemtica de los movimientos componentes
presentes en una serie de tiempo.
Vista de esta forma una serie de tiempo representada por Y puede describirse
como un producto de las variables T, C, S e I, responsables de los movimientos
de tendencia, cclicos, estacionales e irregulares, respectivamente.
Y = TxCxSxI=TCSI
Ecuacin 1.6
Por lo tanto, el anlisis de series de tiempo consiste en buscar cada uno de estos
factores, es decir, la descomposicin de series de tiempo en sus componentes
bsicos.
La serie de tiempo Y tambin puede considerarse como la suma de sus
componentes bsicos. Esto depende de las preferencias de los estadsticos.
1.3. PROTOCOLOS DEL MODELO DE REFERENCIA TCP/IP
El modelo de referencia TCP/IP, nace del resultado de una investigacin realizada
en una red experimental de conmutacin de paquetes ARPANET, financiada por
la Agencia de Proyectos de Investigacin Avanzada para la Defensa (DARPA).
Este modelo de referencia consiste en una extensa coleccin de protocolos que
han surgido como estndares de Internet, siendo as la arquitectura ms adoptada
para la interconexin de sistemas.
La estructura fundamental de la red TCP/IP es la de un sistemas de conmutacin
de paquetes.
TCP/IP no posee un modelo oficial de referencia, sino que se ha basado en los
protocolos estndares y tareas involucradas para la comunicacin, que han
permitido formar una organizacin de 4 capas relativamente independientes.
Capa Aplicacin.
Capa Transporte.
Capa Internet.
Capa de Acceso a la Red.
17
4
Fuente: W. Stallings - Comunicaciones y Redes de Computadores (6 Edicin)
19
Direccin de origen (32 bits): Especifica la direccin origen de donde proviene
el datagrama IP.
Direccin de destino (32 bits): Especfica la direccin destino a de donde se
dirige el datagrama IP.
Opciones (variable): Contiene las opciones solicitadas por el usuario que enva
los datos.
Relleno (variable): Se usa para asegurar que la cabecera del datagrama tenga
una longitud mltiplo de 32 bits.
Datos (variable): El campo de datos debe tener una longitud mltiplo de 8 bits.
La longitud mxima de todo el datagrama con cabecera podra llegar hasta 65535
octetos.
1.3.1.2.1. Clases de direcciones IP
La direccin IP, permite una asignacin variable de bits, para especificar la red y
el computador. Adems permite flexibilidad para asignar direcciones a los
computadores correspondientes a redes con diferentes tamaos y se subdividen
en 5 clases.
Clase A: Pocas redes, cada una con muchos hosts.
Clase B: Un nmero medio de redes, cada una con un nmero medio de hosts.
Clase C: Muchas redes, cada una con pocos hosts.
Grfico 1.18 Clases de direcciones IP
20
La tabla 1.2 resume todas las direcciones IP con sus rangos vlidos.
Clase
deRed
Ndebits
subred/Host
DireccionesdeSubred
(Recordarqueelrangoque
abarcalasubreddepende
delMS)
NMquinaspor
subredqueson
numerables
RangodedireccionesIP
Rangovlido(RV)
A 8/24255.0.0.0 0.0.0.0127.0.0.0 (2^24)2=16777214 RV1.0.0.1127.255.255.254
B 16/16255.255.0.0 128.0.0.0191.255.0.0 (2^16)2=65534 RV128.0.0.1191.255.255.254
C 24/8255.255.255.0 192.0.0.0223.255.255.0 (2^8)2=254 RV192.0.0.1223.255.255.254
D 32/0255.255.255.255 Multicast,FutResev 224.0.0.0239.255.255.255
E 32/0255.255.255.256 Multicast,FutResev 240.0.0.0255.255.255.255
Tabla 1.2 Direcciones IP.
1.3.1.2.2. Direcciones reservadas para intranet
Por la amplia demanda de direcciones IP para la salida a Internet (direcciones
pblicas), se ha determinado un grupo de direcciones IPv4 como direcciones
reservadas para Intranet (direcciones privadas), para de esta manera poder
optimizar el uso de direcciones IP. Este tipo de direcciones se las usa en cada red
privada sin causar conflicto al momento de salir a Internet.
Existen varios rangos de direcciones reservadas para cada clase de direcciones
IP.
Clase de Red Rango de direcciones IP
Desde Hasta
Clase A 10.0.0.0 10.255.255.255
Clase B 172.16.0.0 172.31.255.255
Clase C 192.168.0.0 192.168.255.255
Tabla 1.3 Direcciones IP Privadas.
1.3.2. PROTOCOLOS DE CAPA TRANSPORTE
Los protocolos de capa transporte tienen como finalidad la comunicacin extremo-
a-extremo entre dos entidades distintas. Estos protocolos hacen transparente el
proceso de transferencia de datos a todas las capas superiores, es decir, que no
necesitan conocer detalles de la red o redes en los que se desarrolla la
comunicacin.
Los protocolos de capa transporte dentro de la arquitectura de protocolos TCP/IP
se ubican sobre la capa de red y debajo de la capa de aplicaciones. Estos
proporcionan servicios a los protocolos de capa aplicacin (FTP, SMTP, POP3,
etc.) y hacen uso de los servicios de algn protocolo de la capa inferior para
establecer una comunicacin entre la entidad local y la remota.
21
Existen dos tipos de servicio de transporte: orientado a la conexin y no orientado
a la conexin.
TCP/IP consta de dos protocolos de capa transporte: Transmission Control
Protocol (TCP) o protocolo de control de transmisin y el User Datagram Protocol
(UDP) o protocolo de datagrama de usuario. El primero es orientado a la conexin
y el segundo no orientado a la conexin.
1.3.2.1. Protocolo TCP
5
Tomado de: STALLINGS, William; Comunicaciones y Redes de Computadores (6 Edicin) ; Cap. 17 ; pg. 566
22
Nmero de puerto origen (16 bits): puerto TCP origen.
Nmero de puerto destino (16 bits): puerto TCP destino.
Nmero de secuencia (32 bits): nmero de secuencia del primer octeto del
campo de datos en este segmento.
Nmero de asentimiento o confirmacin (32 bits): es un nmero llamado
tambin acuse de recibo. Este valor contiene el nmero de secuencia del
siguiente octeto de datos que la entidad TCP destino espera recibir.
Longitud de la cabecera (4 bits): indica el nmero de palabras de 32 bits
contenidos en la cabecera.
Reservados (6 bits): campo de bits reservados para uso futuro.
Indicadores: grupo de 6 bits con significado independiente.
URG: cuando tiene un valor igual a 1, indica que el campo puntero de datos
urgentes es vlido.
ACK: cuando es igual a 1, indica que el campo de confirmacin o acuse de recibo
es vlido.
PSH: indica la funcin de carga de TCP, es decir, se transmiten los datos sin que
se hayan acumulado los suficientes para formar un segmento.
RST: cierre abrupto de la conexin por parte de un usuario TCP.
SYN: utilizado para sincronizar los nmeros de secuencia cuando se establecen
las conexiones.
FIN: es usado para el cierre ordenado de la conexin y es enviado en el
segmento que contiene los ltimos datos.
Tamao de la ventana (16 bits): Contiene el nmero de bytes que el que enva
est en capacidad de aceptar.
Checksum o suma de verificacin (16 bits): es el complemento a 1 de la suma
modulo 2
16
-1 de todas las palabras de 16 bits presentes.
23
La suma de verificacin se realiza sobre todo el segmento TCP ms una seudo-
cabecera, con la finalidad de inspeccionar errores en la trasmisin de los datos y
asegurar que el segmento TCP lleg a su destino correspondiente. Esta seudo-
cabecera est compuesta por los siguientes campos de la cabecera IP: direccin
IP de origen y destino, el protocolo ms un campo de longitud de segmento TCP.
Grfico 1.20 Seudo-cabecera TCP
Puntero de datos urgentes (16 bits): seala la posicin del byte siguiente,
correspondiente a los datos urgentes.
Opciones (Variable): permite especificar el tamao mximo del segmento que
podr ser aceptado, en caso de que sea necesario.
1.3.2.2. Protocolo UDP
6
Fuente: W. Stallings - Comunicaciones y Redes de Computadores (6 Edicin)
7
Internet Assigned Numbers Authority
25
A continuacin se listarn algunos de los ms importantes:
Keyword Decimal Description
echo 7/tcp Echo
echo 7/udp Echo
ftp-data 20/tcp File Transfer [Default Data]
ftp-data 20/udp File Transfer [Default Data]
ftp 21/tcp File Transfer [Control]
ftp 21/udp File Transfer [Control]
telnet 23/tcp Telnet
telnet 23/udp Telnet
smtp 25/tcp Simple Mail Transfer
smtp 25/udp Simple Mail Transfer
tftp 69/tcp Trivial File Transfer
tftp 69/udp Trivial File Transfer
www-http 80/tcp World Wide Web HTTP
www-http 80/udp World Wide Web HTTP
nntp 119/tcp Network News Transfer Protocol
nntp 119/udp Network News Transfer Protocol
1.3.3. PROTOCOLOS DE CAPA APLICACIN
El conjunto de protocolos TCP/IP tiene como objetivo el de brindar soporte a las
distintas aplicaciones de usuario. Cada una de ellas es manejada por un mdulo
bien diferenciado.
Existen distintos tipos de aplicaciones, entre las ms comunes se podran citar las
siguientes:
Transferencia de archivos:
FTP (File Transfer Protocol)
TFTP (Trivial File Transfer Protocol)
Correo electrnico:
SMTP (Simple Mail Transfer Protocol)
MIME (Multipurpose Internet Mail Extensions)
Acceso remoto:
TELNET (TELecommunication NETwork)
RLOGIN (Remote Login)
26
Gestin de red:
SNMP (Simple Network Management Protocol)
Resolucin de nombres de dominio:
DNS (Domain Name System)
Aplicaciones cliente-servidor que supongan la utilizacin de hipertexto
8
:
HTTP (HyperText Transfer Protocol)
Los protocolos de capa aplicacin hacen uso de los protocolos TCP y UDP de la
capa transporte, para la comunicacin extremo a extremo entre los hosts
involucrados. Por ello estos protocolos tienen asociado un nmero de puerto
correspondiente segn la asignacin de la IANA en el RFC 1700.
1.4. API DE PROGRAMACIN ORIENTADO A CAPTURA DE
PAQUETES Y ANLISIS DE RED
Con el actual desarrollo de las redes de comunicaciones se ha vuelto una
necesidad la creacin de aplicaciones personalizadas que permitan el acceso a la
red para su administracin. Tambin existen protocolos estandarizados que
recogen informacin a travs de la red y la envan a un nodo central para su
interpretacin, como es el caso de SNMP. Sin embargo esta informacin recogida
se encuentra limitada a las distintas MIBs
9
habilitadas, no pudiendo profundizar en
el contenido mismo del flujo de datos.
En respuesta a esta necesidad se han desarrollado APIs
10
, algunos gratuitos y
otros comerciales, con sus respectivas ventajas y limitaciones.
Tomando en cuenta la gran difusin de sistemas operativos Win32
11
, se ha
elegido para el presente proyecto de titulacin a WinPcap y jNetPcap. A
continuacin ser explicado el objetivo y funcionalidad de los mismos.
8
El hipertexto es una tecnologa que organiza una base de informacin en bloques distintos de contenidos, conectados a
travs de una serie de enlaces cuya activacin o seleccin provoca la recuperacin de informacin.
Referencia: http://www.ldc.usb.ve/~abianc/hipertexto.html.
9
MIB (Management Information Base) es una base de datos que contiene informacin jerrquica, estructurada en forma de
rbol, de todos los dispositivos gestionados en una red de comunicaciones.
10
API (Application Programming Interface).
27
1.4.1. WINPCAP
[12] [13]
Winpcap es una biblioteca de cdigo abierto para captura de paquetes y anlisis
de red para sistemas operativos que utilizan la plataforma Win32.
Winpcap propone una arquitectura que aade varias caractersticas propias de
sistemas Unix a la plataforma Win32. Unix provee de un conjunto de llamadas al
sistema que permiten a las aplicaciones interactuar con la red directamente. Estas
primitivas pueden ser usadas en aplicaciones de captura de paquetes, con el cual
se toma el flujo de datos a travs de la red sin ningn procesamiento de
protocolos por parte del sistema operativo, es decir, lo que se conoce como raw
packets.
Winpcap incluye en sus capacidades las siguientes facilidades:
Captura de raw packets, tanto los destinados al host donde se encuentra
instalada la aplicacin como los intercambiados por otros hosts.
Filtrado de paquetes de acuerdo a reglas especificadas por el usuario antes
de ser enviados a la aplicacin.
Transmisin o inyeccin de raw packets en la red.
Obtencin de informacin estadstica del trfico de red.
La potencialidad de Winpcap puede ser aprovechada en varios tipos de
herramientas de red que pueden ser de anlisis, resolucin de problemas,
seguridad y monitorizacin. Ms especficamente podran ser:
Analizadores de red y protocolos.
Loggers
14
de trfico.
Generadores de trfico.
Bridges y routers de nivel de usuario.
Sistemas de deteccin de intrusos (NIDS
15
).
Escneres de red.
Herramientas de seguridad.
11
Win32 es un conjunto de funciones residentes en bibliotecas generalmente dinmicas, tambin llamadas DLLs, que
permiten ejecutar aplicaciones en un sistema operativo Windows de 32 bits.
12
Referencia: http://www.winpcap.org/
13
Fuente: An Architecture for High Performance Network Analysis - RISSO, Fulvio; DEGIOANNI, Loris.
14
El Logger es un registro oficial de eventos durante un rango de tiempo en particular.
15
Network Intrusion Detection Systems
28
Sin embargo WinPcap tiene limitaciones, es decir, no posee la capacidad de
bloquear, filtrar o manipular el trfico generado por otros programas en la misma
mquina. Por esta razn no puede ser usado en aplicaciones como limitadores de
trfico, planificadores de QoS
16
y firewalls personales.
1.4.1.1. Mdulos WinPcap
El conjunto de caractersticas se las obtiene por medio de un driver de dispositivo,
el cual es instalado dentro del mdulo de networking del ncleo de Win32, ms un
par de DLLs
17
en el nivel de usuario.
En el grfico puede observarse la estructura bsica de WinPcap:
Grfico 1.22. WinPcap y NPF.
18
El primer mdulo es parte del nivel de kernel denominado Netgroup Packet Filter
(NPF) que filtra los paquetes, los entrega intactos al nivel usuario.
El segundo mdulo est contenido en packet.dll, se encarga de proveer una
interfaz comn al driver de paquetes perteneciente a las plataformas Win32 sin
necesidad de ser recompilada para cada versin de Windows, es decir, ofrece un
API independiente del sistema. Incluye funciones de bajo nivel para obtener los
16
Quality of Service
17
Dynamic Link Libraries
18
Fuente: Profiling and Optimization of Software-Based Network-Analysis Applications - DEGIOANNI, Loris; BALDI, Mario;
RISSO, Fulvio; y VARENNI, Gianluca
29
nombres de los adaptadores de red del sistema, carga dinmica del driver, acceso
a informacin como la mscara de red y algunos contadores de hardware
(nmero de colisiones en Ethernet, etc.).
El tercer mdulo es WPcap.dll, contiene funciones alto nivel como generacin de
filtros, buffering
19
de nivel de usuario adems de funcionalidades avanzadas como
estadsticas e inyeccin de paquetes.
En este tercer mdulo los programadores pueden acceder a dos tipos de API:
Las funciones contenidas en packet.dll, las cuales son mapeadas
directamente a las llamadas en el nivel de kernel.
El conjunto de funciones de ms alto nivel provistas por WPcap.dll las
cuales ms amigables al usuario y ms poderosas. Una llamada a una
funcin en este mdulo puede traducirse como un conjunto de funciones en
el nivel NPF.
1.4.2. JNETPCAP
19
Buffering es un trmino relativo al buffer de datos, en donde se almacenan datos para evitar que el programa o recurso
que los requiere, ya sea hardware o software, se quede en algn momento sin datos.
20
Software Development Kit
21
El trmino original en ingls es java wrapper
22
Biblioteca propia de sistemas Unix utilizada para captura de paquetes de red
30
un fichero .so. Esta biblioteca compartida provee de una interfaz JNI bridge
23
entre Java, la plataforma nativa de software y la biblioteca libpcap propiamente
dicha.
Este paquete de desarrollo no contiene a libpcap y requiere de una instalacin por
separado, tanto para sistemas Unix y Win32. La versin de libpcap para Windows
es WinPcap.
1.4.2.1. Estructura de jNetPcap
23
Java Native Interface (JNI) es un framework de programacin que permite que un programa escrito en Java pueda
interactuar con programas escritos en otros lenguajes.
24
Referencia: http://www.jnetpcap.org/node/135
31
org
+-> jnetpcap este es el paquete principal del libpcap wrapper. Este contiene
+ todo el API para el acceso a las funcionalidades de libpcap.
| Estas clases y mtodos son pequeos y simplemente envan las
| peticiones (requests) sobre la librera libpcap nativa, el cual se encarga
| de realizar las acciones requeridas.
|
+-> winpcap es una extensin para el libpcap wrapper que provee las
| funciones WinPcap. Este paquete es dependiente del sistema operativo
| y se debe ejecutar la llamada WinPcap.isSupported() antes de usar
| cualquiera de las clases o mtodos de este paquete.
|
+-> nio son las clases pertenecientes al paquete nativo de E/S y memoria.
| Este paquete define las clases de administracin de memoria que son
| asignadas a la memoria nativa, es decir, que las funciones y estructuras
| nativas tienen su par en clases de java. Aqu se encuentra la clase
| JBuffer, una muy importante.
|
+-> util varias clases de utilidades. En este paquete se pueden encontrar
| clases para administracin de configuraciones de jNetPcap, resolucin
| de nombres, entre otros.
|
+-> packet - packet decoding framework. Este paquete define importantes
| componentes del decodificador. JScanner, PcapPacket, y las
| importantes clase base JHeader. JScanner decodifica los paquetes
| y almacena la informacin del estado del paquete en estructuras
| nativas. La clase PcapPacket lee esta informacin de estado y puede
| emparejar objetos header (referencia a memoria nativa).
| Todas las clases header (cabecera) son subclase de JHeader.
|
+-> header es una biblioteca de los CORE protocol headers soportados
| Ncleo de Cabeceras de Protocolo). Aqu se encuentran las
| definiciones los headers Ip4, Tcp, Udp, Ethernet, entre otros, listos y
| accesibles para su utilizacin.
|
+-> format formateo de paquetes. Estos arrojan el contenido del paquete
| decodificado en forma textual. Se puede hacer uso del TextFormatter
| o el XmlFormatter.
|
+-> structure este paquete es utilizado por los protocol builder
| (constructores de protocolos).
|
+-> annotate son interfaces utilizadas en la escritura de protocol headers
(cabeceras de protocolo). Sin embargo en la escritura de la
definicin de un nuevo protocol header no se necesita acceder a
ninguna de estas, simplemente est all para marcar mtodos con
una connotacin especial y proveer de algunos parmetros
exactos.
32
1.5. PLATAFORMA DE DESARROLLO DE SOFTWARE
Una plataforma de desarrollo constituye el entorno de software comnmente
ligado a un sistema operativo, a un lenguaje de programacin o a un API. Sobre la
cual es posible llevar a cabo todos los procesos necesarios para la creacin de
una aplicacin.
1.5.1. JAVA
[25]
25
Referencia: http://java.sun.com/javase/downloads/index.jsp (javadoc JDK 6)
26
Significa que varios threads se ejecutan simultneamente en un espacio de direcciones compartido.
33
J
D
K
Java Language Java Language
Tools &
Tool APIs
java javac javadoc apt jar javap JPDA jconsole
Security Int'l RMI IDL Deploy Monitoring Troubleshoot Scripting
JVM
TI
J
R
E
Deployment
Technologies
Deployment Java Web Start Java Plug-in
User Interface
Toolkits
AWT Swing Java 2D
J
a
v
a
S
E
A
P
I
Accessibility Drag n Drop Input Methods Image I/O Print Service Sound
Integration
Libraries
IDL JDBC
TM
JNDI
TM
RMI RMI-IIOP Scripting
Other Base
Libraries
Beans Intl Support I/O JMX JNI Math
Networking
Override
Mechanism
Security Serialization
Extension
Mechanism
XML JAXP
lang and util
Base Libraries
lang and
til
Collections
Concurrency
Utilities
JAR Logging Management
Preferences
API
Ref Objects Reflection
Regular
Expressions
Versioning Zip Instrument
Java Virtual
Machine
Java Hotspot
TM
Client VM Java Hotspot
TM
Server VM
Platforms Solaris
TM
Linux Windows Other
Grfico 1.23 Arquitectura de Java
1.5.1.1. JAVARUNTIME ENVIROMENT (JRE)
[27]
Es un conjunto de utilidades que permite la ejecucin de programas java. Incluye
todos los mdulos de ejecucin necesarios, incluyendo la Mquina Virtual Java
(JVM)
28
, para ejecutar aplicaciones hechas con Java.
Adems contiene las clases principales de Java (clases core), y ficheros de
soporte. JRE es el componente de ejecucin del Java Developer Kit (JDK) de
Sun. Tambin incluye el Java Plug-in.
El Java Plug-in posee la posibilidad de usar la ultimsima implementacin Java de
Sun en los navegadores Internet Explorer, Netscape Navigator, Mozilla y Firefox,
en lugar de usar la mquina virtual de Java (JVM) que el navegador trae por
defecto. Incluye un soporte total del JDK: permitiendo a los desarrolladores de
empresas hacer applets
29
Java, usando todas las funciones del JDK (ejemplo:
RMI
30
, JavaBeansTM, etc.).
27
Referencia: http://www.java.com/es/about/
28
(JVM)Programa ejecutable en una plataforma especfica, capaz de interpretar e ejecutar instrucciones expresadas en
cdigo binario, generadas por un compilador de lenguaje java.
29
Componente de una aplicacin que se ejecuta en el contexto de otro programa (navegador web).
30
(RMI) es un mecanismo ofrecido por Java para invocar un mtodo de manera remota.
34
1.5.1.2. NETBEANS
[31]
31
Referencia: http://www.netbeans.org/
32
(IDE) entorno de desarrollo integrado.
35
Entre las caractersticas de la plataforma estn:
Administracin de las interfaces de usuario (mens y barras de herramientas).
Administracin de las configuraciones del usuario
Administracin del almacenamiento (guardando y cargando cualquier tipo de
dato).
Administracin de ventanas
Framework basado en asistentes (dilogo paso a paso).
1.5.1.3. JSC 1.0
[33]
JSC se lo puede considerar ms que una biblioteca de componentes, ya que esta
permite proporcionar la herramienta para el desarrollo de aplicaciones
estadsticas como: plataforma de cdigo abierto independiente de los paquetes
estadsticos generales, paquetes especializados para anlisis no tradicionales
como Bayesiano
34
, muestreo, estadstica multivariante, grficas, simulaciones,
animaciones, etc.
JSC es una biblioteca de componentes reutilizables y extensibles para la creacin
de software estadstico. Las bibliotecas estndar de Java ofrecen muchas clases
que podran ser tiles en aplicaciones estadsticas. Estas cubren reas como
funciones matemticas, estructura de datos tablas, manejo de archivos, grficos,
y componentes de interfaz. Sin embargo algunas de estas bibliotecas
relacionadas con grficos y componentes de interfaz son muy complejos para
principiantes. Por ello JSC contiene algoritmos que van ms all de funciones
bsicas matemticas, y de generacin de nmeros aleatorios.
Pocos algoritmos estadsticos y numricos se han publicado en Java, la mayora
de estos han publicado en FORTRAN, un lenguaje difcil de traducir a este
lenguaje.
JSC ha permitido proporcionar una herramienta de desarrollo de software para
aplicaciones estadsticas ms avanzadas especficamente para Java.
33
Referencia: http://www.jsc.nildram.co.uk/
34
Un tipo de probabilidades subjetivas usadas como filtros para correo basura (spam).
36
Esta biblioteca proporcionar:
Todos los grficos de alto nivel que se puede esperar, como histogramas,
diagramas de dispersin y boxplots
35
y grfica de bajo nivel que le permiten
construir fcilmente su propia muestra grfica representando en un sistema de
coordenadas naturales.
Versiones simplificadas de los componentes de interfaz de Java, tales como
mens, barras de desplazamiento, cajas de dilogo, y componentes de alto
nivel, tales como ventanas de datos similares a los encontrados en los
paquetes estadsticos.
Las funciones y operaciones bsicas tiles para la estadstica tales como la
ordenacin, ranking, funciones para distribuciones de probabilidad y
procedimientos para la evaluacin y diferenciacin de funciones matemticas
de entrada ingresadas por el usuario.
Algoritmos estadsticos que abarcan muchos aspectos de las estadsticas: en
particular, descriptivo, tradicional, las estadsticas no paramtricas; ajuste de
curvas y regresin; distribucin y la generacin de nmeros aleatorios.
De esta manera JSC se convierte en una biblioteca pilar para los desarrolladores
de software con aplicaciones estadsticas.
1.5.2. MYSQL
[36]
35
Es un grfico basado en cuartiles llamado comnmente diagrama de caja.
36
Referencia: http://dev.mysql.com/, http://dev.mysql.com/doc/refman/5.0/es/introduction.html
37
El servidor puede ser utilizado en sus dos modalidades: autnomo para
aplicaciones cliente/servidor en un entorno de red y en forma de biblioteca para
ser embebido en aplicaciones individuales o donde no existe una red disponible.
En cuanto a seguridad posee un sistema de privilegios y contraseas muy seguro
con verificacin basada en el host. Usa encriptacin para el transporte de
contraseas para asegurar la conexin con el servidor.
MySQL soporta a grandes bases de datos que pueden contener 50 millones de
registros. Existen usuarios que usan MySQL Server con 60.000 tablas y cerca de
5.000.000.000.000 de registros.
Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en
cualquier plataforma. Tambin existe soporte para la implementacin de
programas cliente que usen ODBC
37
tanto en Windows como Unix y JDBC
38
para
los desarrolladores de aplicaciones en Java.
MySQL es una solucin real para grandes cargas transaccionales y de datos.
Para mayor informacin se recomienda leer la documentacin existente en su
pgina web.
1.5.3. JFREECHART
[39]
37
Open Database Connectivity
38
Java Database Connectivity
39
Referencia: http://www.jfree.org/jfreechart/
40
Es un componente o subprograma que ofrece informacin grfica, interaccin con el usuario y tiene privilegios de
seguridad restringidos que se ejecuta por otro programa como por ejemplo un navegador web.
41
Es un programa que se ejecuta en un servidor principalmente para la generacin de pginas web dinmicas a partir de
las peticiones enviadas desde un navegador web.
42
Es una tecnologa de Java similar a un servlet en cuanto a resultados finales pero de manera ms simplificada.
38
magnitud (dial, comps y termmetro), diagramas de smbolos, diagramas
combinados y ms.
Tambin ofrece otras caractersticas como zoom interactivo, exportacin de
imgenes en formato PNG y JPG, manejo de eventos de mouse, informacin del
grfico mediante texto emergente (tooltips), generacin de mapas de imgenes
HTML entre los principales.
1.5.4. NATIVE SWING
[43]
43
Referencia: http://djproject.sourceforge.net/ns/
44
Biblioteca grfica de Java con elementos para la implementacin de la interfaz grfica de usuario.
45
Standard Widget Toolkit, es un conjunto de componentes desarrollados por Eclipse para construir interfaces grficas en
Java, utiliza componentes nativos para hacerla consistente con el sistema operativo actual.
46
Referencia: http://www.toedter.com/
47
En Java un objeto Locale representa una regin geogrfica especfica, poltica o cultural.
2
L
f
e
p
s
E
r
C
p
d
d
r
1
2
2
L
fo
e
p
su
E
re
C
p
d
d
re
1
S
2
A
2.
a
or
s
ro
u
El
eq
Co
ro
e
e
eq
S
A
a
rm
st
o
ug
q
om
o
el
es
q
O
ne
r
m
oy
ge
e
u
m
op
sc
u
OM
ex
re
ma
n
ye
e
e
ue
mo
p
p
cr
ue
MM
xo
ed
a
nd
ec
ri
es
e
o
s
pr
ri
e
M
o
R
da
li
d
c
id
st
ri
o
s
ro
ip
ri
E
F
R
a
d
a
to
da
t
im
s
sit
oy
pc
im
ER
-
R
ac
da
ar
o
a
n
m
se
to
ye
ci
m
RV
P
RE
cc
ad
r
p
nd
mie
e
o,
e
i
mie
VI
PL
E
ci
d
m
d
p
d
e
m
,
ec
n
e
LL
LA
EQ
i
m
de
po
da
en
m
a
ct
n
en
LE
AN
Q
n
p
m
e
or
ar
nt
mu
a
to
nt
E,
N
Q
n
pu
s
t
r
r
to
ue
lc
o
to
, I
D
U
d
u
s
ti
e
os
T
e
ca
d
g
os
Ia
DE
U
d
e
a
it
es
I
s
Ta
es
a
de
ge
s
an
EL
UE
de
es
a
u
st
IE
c
ab
st
n
e
en
e
;
L
E
e
s
am
ula
te
E
co
bl
tr
nc
e
n
e
In
P
ER
u
e
m
a
e
E
o
la
a
ce
t
ne
s
ng
R
R
u
e
mp
ac
e
EE
on
a 2
a
e
it
er
sp
ge
RO
R
n
es
pl
ci
es
E
nt
2
e
tu
ra
pe
en
OY
RI
n
s
ia
s
E/A
te
.1
en
y
ul
al
e
ie
YE
IM
d
l
a
n
t
A
en
1
n
y
a
l
c
er
EC
M
do
la
m
n
AN
n
E
l
r
ac
cf
a
CT
M
o
a
m
e
n
N
id
Es
la
re
ci
d
fi
a d
T
MI
c
d
e
e
nd
NS
d
sp
a
ef
i
de
ic
de
O
IE
cu
d
en
el
da
S
o
pe
t
fe
n
e
co
el
O D
E
um
e
nt
d
a
I
os
e
ta
er
n
l
os
S
D
EN
m
ec
te
d
ar
s
c
ab
re
s
So
E
N
me
cl
e
o
r.
1
8
e
cif
bl
e
m
p
d
oft
T
N
e
la
d
oc
1
8
en
fic
la
n
m
p
d
tw
TIT
NT
n
ar
d
cu
83
n
ca
a
nc
o
ro
e
wa
T
T
nt
ra
div
u
30
3
ac
2
ci
os
o
el
ar
U
TO
to
ac
v
m
0-
3
ci
2
a
st
od
s
re
L
O
o
c
u
m
-1
3 s
io
.1
as
tr
du
s
; E
A
C
O
d
ci
ul
me
1
s
on
1
s.
ra
u
o
E
AC
C
S
de
g
en
9
e
ne
s
.
ad
c
of
di
CI
CA
S
e
n
ga
n
99
ec
es
s
E
d
cto
ftw
ito
A
n
ad
to
98
cc
s
e
E
a
o
w
or
N
AP
re
o
d
o
8
c
d
ec
s
a
o,
wa
ria
N.
P
e
o
o
8
io
de
cc
st
e
a
al
P
eq
fi
o
d
o
e
ci
ta
en
a
re
P
qu
ic
e
de
s
n
R
i
as
n
a
e
Pe
T
u
ci
es
e
su
ne
Re
n
s
as
,
ea
T
e
a
s
u
es
eq
n
m
e
s
l
ars
TU
er
al
e
re
g
s
q
m
el
o
so
U
rim
e
e
gie
.
u
1
mi
os
on
UL
m
d
el
eq
e
e
is
a
c
s
n;
L
mi
de
I
qu
er
er
s
sm
an
co
c
S
LO
ie
e
IE
ue
re
im
su
m
ne
om
cu
S
O
en
l
E
e
e
m
ug
ma
e
m
u
p
O
n
s
E
er
ie
g
a
ex
mo
a
pti
O
to
so
EE
rim
l
en
ie
s
xo
o
ale
im
2
o
o
E
m
a
nt
e
s
o
o
e
ma
2
os
oft
E/
mi
a
to
re
e
es
a
s
tw
/A
ie
os
e
es
F
e
s
E
d
w
AN
en
t
s
e
s
F.
en
s
d
de
wa
N
n
ta
d
u
t
n
se
ic
e
ar
NS
to
ab
de
un
E
e
ci
re
S
o
b
e
na
n
En
d
n
s
e
SI
s
la
S
a
n
n
la
de
n
so
8
s
a
So
d
n
a
e
of
q
8
s
of
in
de
la
et
ftw
qu
83
se
ftw
nt
e
a
s
a
w
ue
30
e
2
w
tr
es
a
s
al
wa
e
0-
2.
wa
ro
sc
s
e
la
a
e
-
b
1
ar
od
cr
se
ec
ar
r
s
1
ba
re
d
ri
ec
cc
r
e
se
9
as
e (
u
ta
c
c
e
e
99
s
q
(E
uc
a
c
i
n
d
98
a
q
E
cc
as
ci
n
n
de
im
8
a
u
R
c
s
n
a
e
m
8.
e
ue
RS
i
e
n
a
b
m
e
e
S)
e
n
c
be
p
E
n
).
n
n
2
3
co
e
ple
En
n
d
2
n
n
2
3
on
s
e
n
la
d
q
la
n
se
em
e
a
e
qu
a
s
i
ti
e
m
e
a
es
ue
a
su
n
in
eg
me
el
e
sc
e
p
ug
nc
nu
gu
en
p
es
c
e
pr
g
cl
u
u
n
p
st
ri
c
ro
ie
lu
a
ir
ta
re
tr
ib
co
o
e
uy
ac
r
a
e
ru
be
on
p
re
ye
ci
c
r
es
uc
e
nt
pu
e
e
i
ci
se
c
ti
ue
e
e
n
e
.
e
ctu
ie
e
u
n
3
er
n
u
lo
en
s
un
lo
.
3
rt
E
nt
r
o
n
st
n
o
9
a
El
e
a
s
e
a
a
s
9
a
l
e
a
s
e
a
a
s
40
2.1. Descripcin general
2.1.1. Perspectiva del Producto
En la actualidad el compartir recursos informticos virtualmente ha sido un pilar
fundamental para el desarrollo de las diferentes tecnologas. El Internet siendo
uno de los principales caminos para el intercambio de informacin, se ha
convertido en un recurso muy valioso que se lo debe administrar cuidadosamente,
por ello ha existido la necesidad de crear herramientas que permitan administrar
de mejor manera este recurso.
El presente proyecto est dirigido a personas con un nivel intermedio de
conocimiento en redes informticas, con el fin de que aprovechen todas las
funcionalidades del software a desarrollar.
La mayora de herramientas de monitorizacin de ancho de banda, muestran
limitaciones en cuanto a su capacidad de tratamiento de datos. Por ello surge la
necesidad de proveer una herramienta capaz de profundizar el anlisis de estos
datos. En base a los resultados obtenidos del anlisis el usuario podr tomar
decisiones que aporten al uso ptimo del servicio de Internet.
45
2.2.2. Requerimientos del Producto
En los diferentes requerimientos del presente software se menciona:
Portabilidad.- El software deber ejecutarse sobre la mquina virtual de java
(JVM), esto permitir que el programa a desarrollarse se ejecute en
Windows(Windows XP SP2, Windows 2003 server, Windows Vista, Windows
7) y Linux (CentOS 5.2, Ubuntu 8.02), haciendo uso de bibliotecas
especializadas, proporcionando mayor robustez y eficiencia.
Robustez.- El programa deber ser robusto en cuanto a captura de paquetes y
almacenamiento de datos, ya que para el anlisis de los mismos se requiere
que las diferentes muestras sean fiables, independientemente si fueron
capturadas en tiempo real o almacenadas en una base de datos.
Fiabilidad.- Los datos almacenados debern estar disponibles en cualquier
momento que el usuario requiera, para el tratamiento de los mismos. En lo
posible el programa no deber tener ningn tipo de fallos, ya que la
inoperatividad del mismo introducir errores al momento de evaluar los
resultados del anlisis del uso del servicio de Internet.
Facilidad de uso.- Para el usuario final con las caractersticas descritas
anteriormente, las herramientas a desarrollarse debern ser intuitivas para su
manejo, adems el software deber incluir recomendaciones que orienten de
mejor manera en la toma de decisiones. Debe poseer un tutorial de video y
animaciones que expliquen el funcionamiento del mismo.
Recursos de hardware.- El software deber en lo posible utilizar los mnimos
recursos del sistema, tratando de no alterar el rendimiento total del mismo.
Debe ser capaz de ejecutarse sin ningn inconveniente en una PC Pentium 4
1.6 GHz/ AMD Atlon 1.2 GHz y 1GB de RAM.
Rapidez.- El software a desarrollar deber mostrar los diferentes datos y
peticiones realizadas por el usuario en forma concisa. Se debe buscar la forma
de tener el menor retardo posible en la actualizacin de pantallas y procesos
internos realizados durante los diferentes clculos matemticos.
46
CAPTULO 3
3. DESARROLLO DEL SOFTWARE
Una vez alcanzada esta etapa es oportuno preguntar Cul es el lenguaje de
programacin elegido para el desarrollo de la solucin?, Qu metodologa de
diseo se utilizar?.
En respuesta a la primera pregunta, se opt por un lenguaje de programacin
orientado a objetos que cumpla con el requisito fundamental de la gratuidad para
disminuir el costo del proyecto, otros factores importantes que se tomaron en
cuenta fueron los conocimientos previos, que sea capaz de entenderse de
manera intuitiva, la familiaridad con el lenguaje, la disponibilidad bibliotecas
especializadas y herramientas de desarrollo.
Para la segunda interrogante es obvio que la metodologa de diseo debe ser
compatible con el lenguaje de programacin, suficientemente descriptiva,
ampliamente aceptada y con bibliografa disponible para consulta.
De acuerdo a estos antecedentes y requerimientos de portabilidad para el
presente proyecto de titulacin se eligi a Java como el lenguaje apropiado para
el desarrollo del software y como metodologa de diseo a UML.
3.1. DIAGRAMA DE CASOS DE USO
De acuerdo a los requerimientos del usuario, se describe el comportamiento del
sistema en un diagrama fcil de comprender, incluso de forma intuitiva, como es
el diagrama de casos de uso mostrado a continuacin.
El desarrollo de cada caso de uso se detallar en la seccin 3.7.
47
Grfico 3.1 Diagrama de Casos de Uso para los requerimientos del usuario
3.2. DESCRIPCIN GENERAL DEL SISTEMA
Luego de un anlisis exhaustivo de los requerimientos, se ha planteado la
solucin del problema como dos subproyectos diferenciados por su funcionalidad
principal:
TrafficStatistics: subproyecto grfico exclusivo de todos los casos de uso
que requieren captura de trfico de Internet.
QueryStatistics: subproyecto grfico dedicado al anlisis estadstico y
resmenes informativos de los datos almacenados por el subproyecto
anterior.
3.3. BASE DE DATOS COMO SOLUCIN PARA
ALMACENAMIENTO DE INFORMACIN DE TRFICO DE
INTERNET EN DISCO
El presente proyecto de titulacin tiene como principal objetivo la generacin de
resmenes estadsticos. Por naturaleza este tipo anlisis requieren realizarse
sobre datos recopilados a lo largo del tiempo, por lo tanto es necesario
almacenarlos de forma permanente para acceder a ellos en cualquier momento.
48
Los requerimientos incluyen la diferenciacin de trfico como algo fundamental en
este proyecto, es decir, recuperar informacin de acuerdo a parmetros como
estaciones de trabajo, protocolos y puertos.
Una solucin que rena las condiciones antes expuestas, es sin lugar a dudas
una base de datos. Uno de los objetivos del proyecto de titulacin es hacer que el
uso de la aplicacin sea lo ms simple posible, en consecuencia se convierte en
una necesidad embeber la base de datos en la aplicacin y que su
funcionamiento sea transparente para el usuario.
El gestor de base de datos elegido por poseer estos atributos es MySQL,
especficamente MySQL Connector/MXJ 5.0 el cual es un paquete Java para
desarrollo y administracin de una base de datos, que puede ser embebida dentro
una aplicacin Java existente. Para la inicializacin de la base de datos se emplea
parmetros en el url de conexin JDBC, esto implica que la base de datos se
inicializar al realizarse la primera conexin sin que el usuario final tenga
complicaciones de instalacin.
MySQL Connector/MXJ hace que la base de datos parezca ser un objeto basado
en Java. El procedimiento que el conector realiza para que esto sea posible es el
siguiente: determinando la plataforma nativa, seleccionando el archivo binario
apropiado y lanzando el ejecutable.
3.3.1. DISEO DE LA BASE DE DATOS
Siguiendo el diseo de una base de datos relacional, tomando en cuenta todos los
valores y variables necesarios para identificar y diferenciar el trfico de Internet
para cada estacin de trabajo, se lleg al siguiente modelo mostrado en el
siguiente grfico.
3
T
A
s
a
T
I
e
s
t
T
L
c
a
n
3.
T
A
si
a
T
Id
e
sa
tr
T
L
ca
a
n
.3
Ta
As
ie
lm
Ta
de
n
a
r
Ta
is
a
s
o
3.
ab
si
en
m
ab
e
nt
ali
f
ab
st
ab
sig
om
.1
b
g
n
ma
b
n
ra
ie
fic
b
ta
be
g
m
1.
la
gn
d
a
la
nt
a
en
c
la
a
e
n
mb
.1
a
na
do
c
a
tif
an
n
o
a
c
na
br
1.
H
a
o
ce
T
fic
nt
te
o.
I
c
ce
ad
re
D
H
a
en
T
c
te
e
IP
ca
er
d
e
D
Ho
u
in
n
Tr
ca
e
e c
P
ad
ra
do
c
De
o
un
ng
a
ra
a
y
c
_
d
a
os
co
es
s
n
g
ad
af
l
y
co
_P
da
s
o
sc
st
i
r
do
ff
lo
e
on
P
a
d
om
cr
t
d
re
o
fi
os
e
n
r
de
d
m
ri
de
es
s
c
s
l
e
ro
u
e
de
mp
ip
e
sa
s
cT
t
e
ot
un
el
e
pl
pc
n
a
e
Ty
t
r
l
to
no
le
c
nt
d
en
y
ip
1
o
o
p
a
et
i
if
da
n
yp
po
fi
1.
c
o
pa
ac
to
fic
a
u
pe
o
ic
.
co
d
a
cu
o.
n
c
e
un
e
os
co
L
ol
d
aq
u
.
n
a
e
n
s
o
Lo
lN
e
qu
ue
d
ad
n
n v
d
s
os
N
e
u
er
G
de
do
n
v
d
s
s
Nu
t
e
rd
Gr
el
o
l
va
de
a
o
um
to
et
do
r
l m
or
a
al
e
al
o
m
od
te
o
f
m
e
a
o
t
ie
tr
m
d
e
o
fic
mo
e
t
or
tr
en
ro
b
do
a
co
o
en
a
r
r
n
o
be
os
I
al
o
d
nt
ab
e
f
nte
s
e
s
P
l
3
de
te
bl
en
fi
e
s c
r
P
R
3.
el
er
la
nt
c
e.
c
lo
R
2
lo
ro
a.
te
co
E
ca
o
q
RF
2
o
o
.
er
o
E
am
os
qu
F
M
a
E
ro
El
m
s
u
C
Mo
a
E
o
e
t
mp
p
e
C
od
u
l
e
ex
tr
p
p
e
de
ut
h
e
xi
r
o
po
1
e
to
h
q
s
f
os
os
id
7
lo
oi
o
qu
st
fic
s
si
d
70
o
n
os
ui
te
c
d
ib
e
0
re
nc
st
iv
en
co
de
bl
en
00
e
cr
t
va
nt
o
e
le
nt
0,
la
re
e
a
te
e
l
es
tif
,
ac
e
es
le
es
en
la
s
fi
s
ci
m
s
e
s
n
a
ic
se
io
m
d
n
s
tr
t
v
ca
e
on
e
d
nt
e
ra
ta
va
an
e
na
en
if
e
en
a
ab
a
n
i
al
nt
fe
e
n
n
b
lo
n
n
d
ta
er
a
n
nt
la
o
nc
de
al
re
a
u
e
a
re
lo
cl
e
l
e
s
u
e
d
e
os
lu
l
a
n
su
n
e
de
s
s
uy
a
a
nc
u
na
es
e
s
ye
a b
c
ci
r
a
s
es
d
p
e
ba
ca
a
re
i
sc
d
p
en
a
a
ad
ep
c
d
cr
e
pr
n
s
d
do
p
co
de
ri
el
ro
e
da
o
re
on
e
b
ot
lo
e d
a
o
e
n
n
be
c
to
os
de
e
p
es
e
nt
e
ca
oc
s
e
e
po
se
ex
if
n
a
co
d
s
o
en
xi
fic
n
m
o
c
da
sta
r
n
c
b
m
lo
ca
at
a
s
nta
n
a
br
p
o
a
to
ac
s
a
n
ad
re
po
s
m
os
ci
u
ac
do
ev
o
s
m
s
u
ci
a
o
ve
d
p
n
M
a
o c
e
p
d
po
n
M
n
c
em
pr
de
os
d
MA
n
In
co
m
ro
el
s
d
A
e
n
on
me
ot
l
e
AC
e
te
n
en
to
s
d
e
C
n
e
e
n
o
s
de
t
y
n
r
e
te
c
sig
e
ra
y
o
n
l
e
co
g
a
y
oc
ne
e
c
ol
u
s
ab
d
ct
et
en
c
o
ui
su
ba
di
te
t,
n
a
o
e
u
aj
re
et
te
ad
en
s
jo
e
to
e
e
da
d
nt
s
o
ec
os
el
er
a
de
te
s
q
cc
s
l
ro
a t
en
e
si
q
ci
.
t
o
ti
n
ig
u
i
tr
0
p
tr
n
gl
ue
n
r
0
po
ro
n
a
e
n
f
y
o
o
iv
as
4
v
fic
y
d
ve
s
4
v
IP
c
e
d
l
e
9
a
P
o
el
e
a
l,
y
9
a
P
o
l
e
a
,
y
50
Tabla WellKnownPortNumber
Lista todos los puertos en el rango de 1 a 1024 denominados puertos bien
conocidos, con sus siglas y descripcin de acuerdo al RFC 1700. Estos valores
son usados por los protocolos de transporte TCP y UDP para identificar una
conexin.
Tabla DataTraffic
Tabla principal donde se aadirn los registros con la informacin recopilada en la
captura de trfico de Internet. Cada registro indica una conexin de una estacin
de trabajo de la red monitoreada con el exterior. Dada la importancia de esta tabla
se describirn cada uno de sus campos:
TRAFFICTYPEID: clave externa para identificar el tipo de trfico (entrante o
saliente).
KEYNUMBER: clave externa que identifica la estacin de trabajo a la que
pertenece el registro.
IP_PROTOCOLID: clave externa para identificar el protocolo de capa superior en
la cabecera del paquete IP.
SOURCE_PORTID: entero que indica el puerto origen en caso de que este exista.
Este campo puede ser nulo en comunicaciones donde no se utilicen protocolos de
capa transporte como ICMP.
DESTINATION_PORTID: entero que indica el puerto destino en caso de que este
exista. Este campo puede ser nulo en comunicaciones donde no se utilicen
protocolos de capa transporte como ICMP.
VALUEFIRSTTIMESTAMP: entero que almacena el valor del timestamp del
primer paquete capturado de esta conexin.
VALUELASTTIMESTAMP: entero que almacena el valor del timestamp del
momento inmediatamente anterior al ingreso del registro.
51
SUMIPPACKETLENGTH: entero que indica la cantidad total en bytes de los
paquetes IP capturados incluidos las cabeceras, para esta conexin, en el lapso
de tiempo comprendido desde el primer timestamp hasta el ltimo.
IPSOURCE: direccin IP origen representada en su valor entero correspondiente.
Puede ser privada o pblica si el trfico es saliente o entrante respectivamente.
IPDESTINATION: direccin IP destino representada en su valor entero
correspondiente. Puede ser pblica o privada si el trfico es saliente o entrante
respectivamente.
Nota: El valor del timestamp corresponde a la diferencia, medida en
milisegundos, entre la hora actual y la medianoche del 1ero de Enero de 1970.
3.3.1.2. Procedimientos almacenados
Los procedimientos almacenados permiten realizar rutinas de actualizacin y
consultas a los registros de la base de datos. Esto se vuelve til principalmente
cuando se lo hace con mucha frecuencia y se quiere evitar el tener que escribir
todo el conjunto de procedimientos necesarios, para llevar a cabo una operacin
sobre la base de datos.
Dos operaciones son bastante repetitivas en el presente caso:
Aadir un nuevo host.
create procedure SP_INSERTHOST (IN HOSTMACID_IN bigint(8), IN IPDIRECTION_IN bigint(8))
BEGIN
INSERT INTO HOST ( HOSTMACID, IPDIRECTION) VALUES(HOSTMACID_IN, IPDIRECTION_IN);
END;
Aadir un nuevo registro de trfico.
create procedure SP_DATATRAFFIC (IN TRAFFICTYPEID_IN int(2), IN KEYNUMBER_IN bigint(8), IN
IP_PROTOCOLID_IN int(2),IN SOURCE_PORTID_IN int(2),IN DESTINATION_PORTID_IN int(2), IN
VALUEFIRSTTIMESTAMP_IN bigint(8), IN VALUELASTTIMESTAMP_IN bigint(8),IN SUMIPPACKETLENGTH_IN
bigint(8), IN IPSOURCE_IN bigint(8), IN IPDESTINATION_IN bigint(8))
BEGIN
INSERT INTO DATATRAFFIC ( TRAFFICTYPEID, KEYNUMBER, IP_PROTOCOLID, SOURCE_PORTID,
DESTINATION_PORTID,VALUEFIRSTTIMESTAMP,VALUELASTTIMESTAMP, SUMIPPACKETLENGTH, IPSOURCE,
IPDESTINATION) VALUES( TRAFFICTYPEID_IN, KEYNUMBER_IN, IP_PROTOCOLID_IN, SOURCE_PORTID_IN,
DESTINATION_PORTID_IN, VALUEFIRSTTIMESTAMP_IN,VALUELASTTIMESTAMP_IN, SUMIPPACKETLENGTH_IN,
IPSOURCE_IN, IPDESTINATION_IN );
END;
52
3.4. DESCRIPCIN DE LA BIBLIOTECA PRINCIPAL DE CLASES
La programacin orientada a objetos permite desarrollar sistemas de software de
manera modular, basada en los conceptos de clases y objetos. Bajo esta premisa
se dise y desarroll un conjunto de clases organizadas en paquetes, de
acuerdo a su funcionalidad y objetivo, para ser usadas luego como una biblioteca
en las aplicaciones grficas de interfaz de usuario.
3.4.1. PAQUETES DE CLASES Y SU RELACIN CON EL DIAGRAMA DE
CASOS DE USO
En la etapa de diseo se busc cumplir con todos los requerimientos incluidos
como casos uso en el grfico 3.1 del captulo.
Cada caso de uso a su vez puede ser desglosado como un gran conjunto de
secciones de menor tamao, que trabajando conjuntamente cumplen con el
objetivo propuesto.
Tomando esto como base, a continuacin se listan los paquetes de clases afines
a cada caso de uso:
Casos de Uso Paquetes de Clases
-Almacenar y recuperar de disco -application.database
-application.databaseScripts
-application.dataquery
-application.importexportdatabase
-Capturar trfico de Internet -application.datacapture
-application.dinamicstructures
-Desplegar un sniffer y guardar contenido
-Graficar trfico en tiempo real por host
-Diferenciar trfico (host, protocolos, puertos)
-application.sniffer
-application.realtimegraphs
-application.save
-application.newhostdetected
-Graficar trfico total en tiempo real -application.realtimegraphs
-Mostrar y guardar grfico de anlisis estadstico
-Diferenciar trfico (host, protocolos, puertos)
-application.graphicsDialogs
-application.statisticalgraphics
-application.save
-application.descriptive
-application.reversednsresolver
*Complementos de ayuda y mejoramiento visual
(*) Mejoras adicionales que no forman parte de
los casos de uso.
-application.lookandfeel
-application.flashVideo
-application.flashVideo.resources
-application.minibrowser
-application.sugerencia
-application.urlsSugerencias
Tabla 3.1 Relacin de casos de uso con paquetes de clases
53
3.4.2. DESCRIPCIN DE LOS PAQUETES DE CLASES
3
Temas visuales para personalizar la interfaz grfica.
ImportFileChooser
chooser:JFileChooser
filter:FileNameExtensionFilter
archivo:File
fileName:String=""
eleccionBooleanT:int
IO_DIR:String
<<constructor>> ImportFileChooser(in parent:Component)
mostrarDialogImport(in parent:Component):void
getFileName():String
getSelected():int
pkg importexportdatabase
ExportFileChooser
chooser:JFileChooser
archivoZipSalida:File
archivoDatabase:File
fileName:String=""
eleccionBooleanT:int
IO_DIR:String
<<constructor>> ExportFileChooser(in parent:Component)
mostrarDialogSave(in parent:Component):void
getFileName():String
getSelected():int
pkg importexportdatabase
87
Grfico 3.67 Clase LookAndFeelSelector
3.4.3.9.2. Clase SubstanceSkinComboSelector
La clase SubstanceSkinComboSelector carga todos los temas disponibles en un
objeto JComboBox para que el usuario escoja uno de ellos y mostrarlo en la
interfaz grfica del programa.
Grfico 3.68 Clase SubstanceSkinComboSelector
3.4.3.9.3. Clase LoadLookAndFeel
La clase LoadLookAndFeel permite guardar en un archivo de texto el nombre de
la plantilla visual actual, para que cuando se reinicie el programa contine con el
mismo tema de interfaz grfica.
Grfico 3.69 Clase LoadLookAndFeel
LookAndFeelSelector
selectLookAndFeel(in root:Component):void
setSkin(in skin:String):void
pkg lookandfeel
SubstanceSkinComboSelector
<<constructor>> SubstanceSkinComboSelector()
JComboBox
(from Root::Java JDK 6 (types only)::javax::swing)
pkg lookandfeel
LoadLookAndFeel
loadLastLookAndFeel():void
pkg lookandfeel
88
3.4.3.10. Clases del paquete minibrowser
3.4.3.10.1. Clase Browser
La clase Browser permite utilizar un navegador sea internet explorer o mozilla del
sistema operativo nativo y tiene una casilla de activacin que permite ocultar la
barra de tareas del navegador.
Grfico 3.70 Clase Browser
3.4.3.11. Clases del paquete newhostdetected
3.4.3.11.1. Clase NewHostParameters
La clase NewHostParameters recupera las referencias de los diferentes
parmetros necesarios para la construccin del rbol de estaciones de trabajo
que se obtiene durante el monitoreo del trfico de Internet.
Grfico 3.71 Clase NewHostParameters
Browser
<<constructor>> Browser(in Url:String)
JPanel
(from Root::Java JDK 6 (types only)::javax::swing)
pkg minibrowser
NewHostParameters
hostFeaturesPanel:JPanel
tree:JTree
rootvector:Vector
IPMACString:ArrayList<E->Vector>
<<constructor>> NewHostParameters(in tree:JTree, in rootvector:Vector, in IPMACString:ArrayList<E->Vector>, in hostFeaturesPanel:JPanel)
getIPMACString():ArrayList<E->Vector>
getRootvector():Vector
getTree():JTree
getHostFeaturesPanel():JPanel
pkg newhostdetected
89
3.4.3.11.2. Clase NewHost
La clase NewHost realiza los cambios necesarios para la creacin de una
estacin de trabajo en un nodo del componente rbol, a la llegada de un paquete
proveniente de una direccin IP nueva.
Grfico 3.72 Clase NewHost
3.4.3.11.3. Clase NamedVectorHost
La clase NamedVectorHost crea un vector y le asigna un nombre para
identificarlo, este vector se aadir al rbol con un hijo y los objetos que contiene
el vector sern las hojas del mismo.
Grfico 3.73 Clase NamedVectorHost
NewHost
param:NewHostParameters
tree:JTree
rootvector:Vector
IPMACString:ArrayList<E->Vector>
hostFeaturesPanel:JPanel
scroll:JScrollPane
<<constructor>> NewHost(in param:NewHostParameters)
capturarEventNewHostArrived(in host:HostInfo):void
pkg newhostdetected
NamedVectorHost
name:String
<<constructor>> NamedVectorHost()
<<constructor>> NamedVectorHost(in name:String)
getName():String
returnThis():Vector
setNameVectorHost(in name:String, in elements:Object[*]):void
newVectorHostString(in elements:Object[*]):void
setName(in name:String):void
<<annotations>> toString():String
E
Vector
(from Root::Java JDK 6 (types only)::java::util)
pkg newhostdetected
90
3.4.3.11.4. Clase CheckBoxNodeRenderer
La clase CheckBoxNodeRenderer indexa un objeto del tipo JCheckBox, como una
hoja dentro de un objeto JTree, permitiendo seleccionar hosts para implementar el
filtro del sniffer.
Grfico 3.74 Clase CheckBoxNodeRenderer
3.4.3.11.5. Clase CheckBoxNodeHost
La clase CheckBoxNodeHost representa un host con su direccin IP, MAC y una
bandera de seleccin que permite indicar al filtro si el host ha sido seleccionado.
Grfico 3.75 Clase CheckBoxNodeHost
CheckBoxNodeRenderer
leafRenderer:JCheckBox=new JCheckBox()
nodoSelect:CheckBoxNodeHost
nonLeafRenderer:DefaultTreeCellRenderer=new DefaultTreeCellRenderer()
selectionBorderColor:Color
selectionForeground:Color
selectionBackground:Color
textForeground:Color
textBackground:Color
getLeafRenderer():JCheckBox
getLeafRendererHostNode():CheckBoxNodeHost
<<constructor>> CheckBoxNodeRenderer()
getTreeCellRendererComponent(in tree:JTree, in value:Object, in selected:boolean, in expanded:boolean, in leaf:boolean, in row:int, in hasFocus:boolean):Component
pkg newhostdetected
CheckBoxNodeHost
text:String
selected:boolean
host:HostInfo
<<constructor>> CheckBoxNodeHost(in text:String, in selected:boolean)
isSelected():boolean
setSelected(in newValue:boolean):void
getText():String
setText(in newValue:String):void
getHost():HostInfo
setHost(in host:HostInfo):void
<<annotations>> toString():String
pkg newhostdetected
91
3.4.3.11.6. Clase CheckBoxNodeEditor
La clase CheckBoxNodeEditor edita los objetos que contiene el rbol en tiempo
real, cuando se realiza una accin sobre el mismo, ya sea desplegar, contraer o
sealar, dependiendo de las acciones del usuario.
Grfico 3.76 Clase CheckBoxNodeEditor
3.4.3.12. Clases del paquete realtimegraphs
3.4.3.12.1. Clase CustomizedPolyline
La clase CustomizedPolyline sobrescribe el mtodo lineTo necesario para que
con cada punto nuevo se forme un nuevo polgono cerrado aadiendo otro en la
coordenada (x, 0).
Grfico 3.77 Clase CustomizedPolyline
CheckBoxNodeEditor
renderer:CheckBoxNodeRenderer
IPMacStringCopy:ArrayList<E->Vector>
tree:JTree
<<constructor>> CheckBoxNodeEditor(in tree:JTree, in IPMacStringCopy:ArrayList<E->Vector>)
getCellEditorValue():Object
<<annotations>> isCellEditable(in event:EventObject):boolean
getTreeCellEditorComponent(in tree:JTree, in value:Object, in selected:boolean, in expanded:boolean, in leaf:boolean, in row:int):Component
AbstractCellEditor
(from Root::Java JDK 6 (types only)::javax::swing)
pkg newhostdetected
CustomizedPolyline
path:Path
<<constructor>> CustomizedPolyline(in arg0:VPoint, in arg1:int)
<<constructor>> CustomizedPolyline(in arg0:VPoint[*], in arg1:int)
<<constructor>> CustomizedPolyline(in arg0:Vector)
<<constructor>> CustomizedPolyline(in arg0:VPoint[*])
<<annotations>> lineTo(in point:VPoint):void
Polyline
(from Root::Unknown Externals)
pkg realtimegraphs
92
3.4.3.12.2. Clase RealTimeBitrate
La clase RealTimeBitrate instancia e inicializa los objetos necesarios para la
graficacin de la tasa de transferencia en tiempo real, as como los atributos que
permiten describir de mejor manera la representacin del grfico en un panel, por
ejemplo, gradiente de color para identificar cualitativamente y a simple vista la
actividad de la red, alarma de sonido cuando el lmite ingresado por el usuario ha
sido sobrepasado, etiquetas con el bitrate instantneo y promedio de los ltimos
15 segundos. Adems incluye mecanismos para mostrar la graficacin en tiempo
real en el rea de notificacin.
Grfico 3.78 Clase RealTimeBitrate
RealTimeBitrate
trayMonitor:SystemTrayMonitor
trayIcon:boolean
plotShape:PlotShape
axes:AxesPlot
formato:MaxWidthFormat
ejexTiempo:LinearAxisModel
ejeyBitrate:LinearAxisModel
polyline:CustomizedPolyline
title:String
color:Color
tiempoAcumulativo:double
panel:JPanel
layout:LayoutManager
scheduler:ScheduledExecutorService=Executors.newScheduledThreadPool(1)
beeperHandle:ScheduledFuture<V->?>
lastTimeStamp:long=0L
delay:double=-1D
<<final>> ipPacketLenght:ArrayList<E->Integer>=new ArrayList<Integer>()
listaPromedio:LinkedList<E->Double>=new LinkedList<Double>()
promedio:MeanVar
byteRateInstantaneo:PlotText
byteRatePico:PlotText
byteRatePromedio:PlotText
byteRateAV:PlotText
top:double
relativetop:double
valorMaximoAlarma:double
p:LinearGradientPaint
start:Point
end:Point
<<constructor>> RealTimeBitrate(in panelView:JPanel, in title:String, in col:Color, in valorMaximoAlarma:double, in trayIcon:boolean)
initGraphicElements():void
createPlot():AxesPlot
addListeners():void
createColorGradient():void
addShapeToAxes():void
updatePanel():void
addPacketSize(in IPPacketLength:int):void
doBitrate():void
linkedListToArray(in listaPromedio:LinkedList<E->Double>):double[*]
updateGraph(in average:double):void
setValorMaximoAlarma(in valorMaximoAlarma:double):void
getImage():BufferedImage
reset():void
cancel():void
pkg realtimegraphs
93
La actualizacin del grfico se lleva a cabo cada segundo y para que esto sea
posible debe existir un objeto o mtodo que pueda ser ejecutado de esta forma.
En este caso se implementa el mtodo run () de un objeto Runnable que cumple
con las actividades detalladas en el diagrama de actividad del grfico 3.79.
Grfico 3.79 Diagrama de actividad del mtodo run() del hilo de ejecucin independiente de
actualizacin del grfico en tiempo real de la clase RealTimeBitrate
3.4.3.12.3. Clase SystemTrayMonitor
La clase SystemTrayMonitor permite aadir la representacin del trfico de
Internet en tiempo real, como un cono en el rea de notificacin del sistema
operativo nativo, si este lo soporta.
Actualiza el grfico con el nuevo
valor de bitrate calculado. Incluye
los mecanismos de
reescalamiento automtico cuando
los valores sobrepasen los lmites
del grfico, etiquetas de bitrate
instantneo y promedio, gradiente
de color y la alarma sonora.
Se almacena en una lista enlazada
los valores de bitrate de los
ltimos 15 segundos. Se actualiza
con cada nuevo valor de bitrate
instantneo, eliminando la cabeza
y agregando este ltimo valor a la
Este retraso ser casi siempre de
1 segundo, salvo excepciones
donde el programa no pueda
realizar la actualizacin del grfico
en el momento preciso.
Consiste en sumar todos los
tamao de paquete de una lista
dinmica. Finalizado este
procedimiento se limpia la lista.
calcular retraso entre la
ltima actualizacin del
grfico y el momento
actual
Se calcula el bitrate dividiendo los
bytes recibidos para el retraso y se
lo transforma a KBps.
obtener el total de bytes
recibidos
calcular el bitrate instantneo
calcular el bitrate promedio
actualizar grfico
94
Grfico 3.80 Clase SystemTrayMonitor
3.4.3.13. Clases del paquete reversednsresolver
3.4.3.13.1. Clase IPTraficInfo
La clase IPTraficInfo contiene informacin del tipo de protocolo, puerto, cantidad
de bytes y lista de direcciones para una posterior resolucin de nombres. Adems
implementa una funcin de comparacin de objetos que servir para ordenarlos
descendentemente segn el valor de bytes enviados o recibidos y sobrescribe el
mtodo toString() para que retorne la representacin en una cadena de caracteres
del contenido de los atributos de la clase.
Grfico 3.81 Clase IPTraficInfo
3.4.3.13.2. Clase ReverseDNSComparableEntry
La clase ReverseDNSComparableEntry es un objeto que asocia una direccin IP
con un objeto IPTraficInfo e implementa la funcionalidad de comparacin, para
poder ordenarlos en una lista dinmica posteriormente.
SystemTrayMonitor
(from RealTimeBitrate)
tray:SystemTray
iconoSystemTrayGraph:TrayIcon
<<constructor>> SystemTrayMonitor(in trayTitle:String)
<<synchronized>> updateSystemTrayMonitor():void
loadIcon():void
remove():void
pkg realtimegraphs
IPTraficInfo
IPtype:Integer
UDP_TCP_port:Integer
FQDN:String[*]
down_or_up_bytesSize:Long
<<constructor>> IPTraficInfo(in IPtype:Integer, in UDP_TCP_port:Integer, in FQDN:String[*], in down_or_up_bytesSize:Long)
getFQDN():String[*]
setFQDN(in FQDN:String[*]):void
getIPtype():Integer
setIPtype(in IPtype:Integer):void
getUDP_TCP_port():Integer
getIPtypeString():String
setUDP_TCP_port(in UDP_TCP_port:Integer):void
getDown_or_up_bytesSize():Long
updateDown_or_up_bytesSize(in down_or_up_bytesSize:Long):void
compareTo(in o:Object):int
<<annotations>> toString():String
pkg reversednsresolver
95
Grfico 3.82 Clase ReverseDNSComparableEntry
3.4.3.13.3. Clase ReverseIPListResolution
La clase ReverseIPListResolution realiza la resolucin de nombres de dominio
para las diferentes direcciones IPs contenidas dentro de una lista con su
respectiva descripcin.
Grfico 3.83 Clase ReverseIPListResolution
3.4.3.14. Clases del paquete save
3.4.3.14.1. Clase AutoSaveOptionPane
La clase AutoSaveOptionPane crea una ventana que muestra opciones, para que
el usuario guarde una cadena de caracteres del rea de texto en la cual se
despliega los paquetes decodificados de la captura, en caso de no elegir una de
las opciones presentadas en el cuadro de dilogo, la ventana se cerrar
automticamente despus de 5 segundos.
K,V
ReverseDNSComparableEntry
<<constructor>> ReverseDNSComparableEntry(in entry:Entry)
<<constructor>> ReverseDNSComparableEntry(in key:K, in value:V)
compareTo(in o:Object):int
<<annotations>> getValue():IPTraficInfo
<<annotations>> getKey():Long
K,V
<<static>>
SimpleEntry
(from Root::Java JDK 6 (types only)::java::util::AbstractMap)
pkg reversednsresolver
ReverseIPListResolution
listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>
DNSservers:String[*]
<<constructor>> ReverseIPListResolution(in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>)
<<constructor>> ReverseIPListResolution(in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>, in DNSservers:String[*])
executeReverseDNSLookup():void
loadDNSlist():String
getDNSservers():String[*]
setDNSservers(in DNSservers:String[*]):void
getListaIPs():ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>
setListaIPs(in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>):void
pkg reversednsresolver
96
Grfico 3.84 Clase AutoSaveOptionPane
3.4.3.14.2. Clase TimerDisplayDialog
La clase TimerDisplayDialog es una etiqueta un contador regresivo que lanza un
evento para cerrar el cuadro de dilogo.
Grfico 3.85 Clase TimerDisplayDialog
3.4.3.14.3. Clase FileUtils
La clase FileUtils contiene mtodos para escribir o borrar los datos obtenidos de
un rea de texto o guardar una imagen en un archivo y de esta manera respaldar
la informacin del usuario.
AutoSaveOptionPane
parent:Component
texto:String
label:TimerDisplayDialog
dialog:JDialog
opciones:Object[*]
<<constructor>> AutoSaveOptionPane(in parentComponent:Component, in areaTexto:String, in options:Object[*])
crearDialogo(in title:String):void
tratarEvento():void
JOptionPane
(from Root::Java JDK 6 (types only)::javax::swing)
pkg save
TimerDisplayDialog
initValue:int=5
parent:JDialog
t:Timer
<<constructor>> TimerDisplayDialog(in parent:JDialog)
iniciar():void
detener():void
actionPerformed(in e:ActionEvent):void
JLabel
(from Root::Java JDK 6 (types only)::javax::swing)
pkg save
97
Grfico 3.86 Clase FileUtils
3.4.3.14.4. Clase AutoSave
La clase AutoSave implementa la funcionalidad de auto-guardado de un archivo
de texto que contiene una cadena de caracteres de los paquetes capturados y
mostrados en un rea de texto.
Grfico 3.87 Clase AutoSave
3.4.3.14.5. Clase SaveTextFileChooser
La clase SaveTextFileChooser permite guardar un archivo con extensin .txt de
los datos obtenidos de un rea de texto, con este objetivo se despliega un cuadro
de dilogo para elegir el directorio y nombre del archivo.
Grfico 3.88 Clase SaveTextFileChooser
FileUtils
createTextFile(in object:Object, in archivo:File):void
createImageFile(in im:BufferedImage, in archivo:File, in format:String):void
borrarArchivo(in archivo:File):void
pkg save
AutoSave
autoSaveFileName:String
checkAutosave:int
<<constructor>> AutoSave()
<<constructor>> AutoSave(in autoSaveFileName:String, in checkAutosave:int)
inputMethodTextChanged(in event:InputMethodEvent):void
caretPositionChanged(in event:InputMethodEvent):void
isCheckAutosave():int
setCheckAutosave(in checkAutosave:int):void
setAutoSaveFileName(in autoSaveFileName:String):void
getAutoSaveFileName():String
pkg save
SaveTextFileChooser
chooser:JFileChooser
filter:FileNameExtensionFilter
archivo:File
fileName:String=""
eleccionBooleanT:int
<<constructor>> SaveTextFileChooser(in parent:Component, in areaTexto:Object)
mostrarDialogSave(in parent:Component, in areaTexto:Object):void
getFileName():String
getSelected():int
pkg save
98
3.4.3.14.6. Clase SaveImageFileChooser
La clase SaveImageFileChooser permite guardar un archivo de imagen (con
extensin *.jpeg,*.png o *.bmp) de los datos obtenidos de un panel con el grfico
en tiempo real del trfico monitoreado, del histograma de frecuencias y el
polgono de frecuencias acumuladas en el anlisis estadstico. Para ello se
despliega un cuadro de dilogo de seleccin de directorio y nombre del archivo.
Grfico 3.89 Clase SaveImageFileChooser
3.4.3.15. Clases del paquete sniffer
3.4.3.15.1. Clase SnifferParameters
La clase SnifferParameters contiene un conjunto de atributos, que identifican las
opciones seleccionadas por el usuario a manera de filtro, para la funcionalidad del
sniffer y la graficacin en tiempo real del trfico de Internet para las estaciones de
trabajo seleccionadas.
Grfico 3.90 Clase SnifferParameters
SaveImageFileChooser
chooser:JFileChooser
filter:FileNameExtensionFilter
archivo:File
<<constructor>> SaveImageFileChooser(in parent:Component, in im:BufferedImage)
creatingFile(in parent:Component, in im:BufferedImage, in fileName:String, in format:String):void
pkg save
SnifferParameters
snifferHosts:ArrayList<E->HostInfo>
transportLayer:String
portNumber:int
textArea:Object
realTimeIncomingHost:RealTimeBitrate
realTimeOutgoingHost:RealTimeBitrate
rawOrNoRaw:boolean
<<constructor>> SnifferParameters(in snifferHosts:ArrayList<E->HostInfo>, in transportLayer:String, in portNumber:int, in textArea:Object, in realTimeIncomingHost:RealTimeBitrate, in realTimeOutgoing
getTextArea():Object
setTextArea(in textArea:Object):void
getPortNumber():int
setPortNumber(in portNumber:int):void
getSnifferHosts():ArrayList<E->HostInfo>
setSnifferHosts(in snifferHosts:ArrayList<E->HostInfo>):void
getTransportLayer():String
setTransportLayer(in transportLayer:String):void
getRealTimeIncomingHost():RealTimeBitrate
getRealTimeOutgoingHost():RealTimeBitrate
getRawOrNoRaw():boolean
setRawOrNoRaw(in rawOrNoRaw:boolean):void
pkg sniffer
99
3.4.3.15.2. Clase FilterAction
La clase FilterAction incluye un mtodo para recuperar de la interfaz grfica las
opciones elegidas por el usuario, retornando un objeto SnifferParameters.
Grfico 3.91 Clase FilterAction
F
i
l
t
e
r
A
c
t
i
o
n
s
e
t
S
n
i
f
f
e
r
P
a
r
a
m
e
t
e
r
s
(
i
n
f
i
l
t
e
r
T
C
P
_
U
D
P
_
I
C
M
P
:
J
C
o
m
b
o
B
o
x
,
i
n
p
o
r
t
N
u
m
b
e
r
:
J
T
e
x
t
F
i
e
l
d
,
i
n
t
e
x
t
A
r
e
a
:
O
b
j
e
c
t
,
i
n
I
P
M
A
C
S
t
r
i
n
g
:
A
r
r
a
y
L
i
s
t
<
E
-
>
V
e
c
t
o
r
>
,
i
n
r
e
a
l
T
i
m
e
I
n
c
o
m
i
n
g
H
o
s
t
:
R
e
a
l
T
i
m
e
B
i
t
r
a
t
e
,
i
n
r
e
a
l
T
i
m
e
O
v
e
r
i
f
i
c
a
r
N
u
m
e
r
o
(
i
n
p
o
r
t
N
u
m
b
e
r
:
J
T
e
x
t
F
i
e
l
d
)
:
i
n
t
p
k
g
s
n
i
f
f
e
r
100
3.4.3.15.3. Clase SnifferRunnable
La clase SnifferRunnable implementa el mtodo run() que ser ejecutado por un
hilo independiente. Usa las opciones de filtrado seleccionadas por el usuario y
genera una cadena de caracteres que representa el paquete decodificado
(decodificacin total o solo de cabeceras de los protocolos), esto es visualizado
en un rea de texto de la interfaz visual. La informacin de los paquetes filtrados
tambin es utilizada para la graficacin en tiempo real de la tasa de transferencia
de trfico entrante y saliente, segn las opciones del filtro.
Grfico 3.92 Clase SnifferRunnable
SnifferRunnable
realTimeIncomingHost:RealTimeBitrate
realTimeOutgoingHost:RealTimeBitrate
textoPaquete:JTextArea
param:SnifferParameters
flagsDecoder:Object[*]
packetValues:Object[*]
rawPacket:String
rawData:boolean
timeStamp:Long=null
sourceMAC:Long=null
destinationMAC:Long=null
IPType:Integer=null
IPSource:Long=null
IPDestination:Long=null
IPPacketLength:Integer=null
tcpFlags:Integer=null
sourcePort:Integer=null
destinationPort:Integer=null
payloadLength:Integer=null
tipoICMP:Integer=null
codigoICMP:Integer=null
cheksumICMP:Integer=null
<<constructor>> SnifferRunnable(in param:SnifferParameters)
sendPacketInfo(in flagsDecoder:Object[*], in packetValues:Object[*], in rawPacket:String):void
isRawData():boolean
run():void
displayText():void
makeString(in filterTCP_UDP_ICMP:String, in portNumber:int, in transporte:int, in icmpFlag:int, in rawOrNoRaw:boolean):Object[*]
filterTCP(in portNumber:int, in transporte:int, in rawOrNoRaw:boolean):String
filterUDP(in portNumber:int, in transporte:int, in rawOrNoRaw:boolean):String
filterICMP(in icmpFlag:int, in rawOrNoRaw:boolean):String
drawIncominOutgoingHost(in IPSource:long, in IPDestination:long):void
pkg sniffer
101
El grfico 3.93 se detalla el flujo de actividades que SnifferRunnable realiza
cuando se ejecuta el mtodo run() implementado.
Grfico 3.93 Diagrama de actividad del mtodo run() de la clase SnifferRunnable
3.4.3.15.4. Clase SnifferThread
La clase SnifferThread crea un hilo que permite ejecutar el mtodo run() de la
clase SnifferRunnable. El mtodo antes citado se debe ejecutar cada vez que se
capture un nuevo paquete en el dispositivo de red.
Estas opciones son:
TCP, UDP, ICMP u
ALL(todos los
anteriores), el nmero del
puerto (-1 significa todos
los puertos) y la
decodificacin raw packet
( t l t )
recuperar campos de las
cabeceras de protocolo del
ltimo paquete recibido.
crear cadena de texto de
paquete decodificado
Se refiere al rea de texto
donde se despliega los
paquetes filtrados y
decodificados en formato de
Los grficos corresponden al
trfico de entrada y salida
para los host seleccionados
y el filtro elegido.
actualizar grficos en tiempo real
de entrada y salida
verificar el origen y
destino del paquete
actualizar rea de
texto de la interfz
grfica
obtener lista de host
seleccionados
Se verifica si el paquete
pertenece a algn host de
la lista.
obtener opciones de
filtrado
filtrar paquete
[no pertenece]
[lista vaca]
[lista no vaca]
[si pertenece]
102
Grfico 3.94 Clase SnifferThread
3.4.3.16. Clases del paquete statisticalgraphics
Todas las clases de este paquete que heredan de JDialog incluyen la
caracterstica de auto dimensionamiento de acuerdo al tamao del monitor de la
PC.
Estas clases generan los grficos y resmenes informativos del trfico de Internet,
en trabajo conjunto con las clases del paquete graphicsDialogs (recuperan datos y
los organizan de acuerdo a las opciones ingresadas por el usuario del programa).
Cada una de ellas contiene un botn que abre una ventana para mostrar el
contenido de ayuda e interpretacin de resultados.
Cada grfico generado proporciona una ventana emergente, que aparece al
realizar un clic derecho sobre la imagen. Incluye opciones para copiar la imagen
al portapapeles, grabar la imagen en formato png, herramientas de zoom,
autoescala y personalizacin de las propiedades del grfico como modificar el
ttulo, las etiquetas de los ejes, color de bordes, entre otros.
3.4.3.16.1. Clase HistogramaAndCumulativeFrequencyPolygon
Una instancia de esta clase genera un histograma de frecuencias y su
representacin tabulada, el correspondiente polgono de frecuencias acumuladas
y una tabla con un resumen bsico de Estadstica Descriptiva.
Todos estos clculos se los hace a partir de un array de valores de tasa de
transferencia (la clase OpcionesHistogramaTraficoInternet provee de estos datos)
que deben ser ingresados como argumento. Incluye acceso a una ventana de
ayuda y sugerencias, opciones para redibujar los diagramas y recalcular los
SnifferThread
sr:SnifferRunnable
snifferThread:Thread
<<constructor>> SnifferThread(in sr:SnifferRunnable)
run(in flags:Object[*], in packetValues:Object[*], in rawPacket:String):void
isRawData():boolean
pkg sniffer
103
valores variando el nmero de intervalos del rango de tasa de transferencia de
datos, segn se requiera.
La implementacin de los grficos y las tablas se hacen de forma modular
instanciando las clases Histograma, CumulativeFrequencyPolygon,
TablaDeFrecuenciasPanel y TablaDeEstadisticaDescriptiva.
Grfico 3.95 Clase HistogramaAndCumulativeFrequencyPolygon
3.4.3.16.2. Clase Histograma
La clase Histograma implementa un conjunto de mtodos para devolver un
componente grfico que contiene un histograma de frecuencias, generado a partir
de un objeto FrequencyTable
4
ingresado como parmetro.
4
La clase FrequencyTable del paquete estadstico JSC 1.0 representa una tabla de frecuencias y provee de mtodos que
retornan todos los parmetros necesarios para reconstruirla grficamente.
HistogramaAndCumulativeFrequencyPolygon
panelGraphics:JPanel=new JPanel()
panelTables:JPanel=new JPanel()
histograma:Histograma
cumPolygon:CumulativeFrequencyPolygon
panelEstadisticaDescriptiva:TablaDeEstadisticaDescriptiva
freqPanel:TablaDeFrecuenciasPanel
dataValues:double[*]
panelSelector:JPanel
selectorBins:JSpinField
botonSelector:JButton
hist:PdfPlot
cummPlot:AxesPlot
layoutGraphics:GroupLayout
hGroupGraphics:SequentialGroup
vGroupGraphics:SequentialGroup
layoutTables:GroupLayout
hGroupTables:SequentialGroup
vGroupTables:SequentialGroup
buttonPanel:JPanel
graphicsAndTables:JSplitPane
dialogAyuda:SugerenciaAyuda
<<constructor>> HistogramaAndCumulativeFrequencyPolygon(in owner:Dialog, in title:String, in modal:boolean)
draw(in dataValues:double[*]):void
createPlots():void
setSizeSettings():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
104
Un histograma es una grfica que permite observar, en que regiones de un rango
de valores, existe una mayor concentracin de datos y en donde su presencia es
menor. De esta forma se puede tener una idea general del comportamiento de la
red con respecto a la tasa de transferencia. Como complemento se incluye en el
diagrama el polgono de frecuencias correspondiente.
Para mejorar la apariencia visual del grfico se han personalizado todos los
elementos posibles, por ejemplo, el tipo, el tamao, el color y el formato de
palabras, ejes de referencia y lneas. Para utilizar la funcionalidad de un men
emergente de guardado e impresin de la imagen utiliza la clase
CustomizedPdfPlot.
Grfico 3.96 Clase Histograma
3.4.3.16.3. Clase CustomizedPdfPlot
La clase CustomizedPdfPlot representa un grfico de las funciones de densidad
de probabilidad creado a partir de una tabla de frecuencias. Se implementa un
constructor muy completo para personalizar todos los elementos del grfico.
Tambin se aade un men emergente para guardar e imprimir la imagen, que se
activa al hacer clic derecho sobre esta.
Histograma
tablaFrecuencias:FrequencyTable
plot:CustomizedPdfPlot
horizontalAxisModel:LinearAxisModel
verticalAxisModel:LinearAxisModel
color:Color
<<constructor>> Histograma(in tablaFrec:FrequencyTable)
drawHistograma(in title:String):CustomizedPdfPlot
drawFrecuencyPolygon():void
addVerticalLines():void
pkg statisticalgraphics
105
Grfico 3.97 Clase CustomizedPdfPlot
3.4.3.16.4. Clase MousePopupListener de CustomizedPdfPlot
La clase interna MousePopupListener permite atender los eventos generados por
el mouse dentro del rea que contiene el grfico. Solo muestra el men
emergente cuando se ha producido el evento clic derecho. No puede ser
implementada externamente como una clase independiente porque solo maneja
el objeto JPopupMenu de su clase contenedora.
C
u
s
t
o
m
i
z
e
d
P
d
f
P
l
o
t
p
o
p
u
p
M
e
n
u
:
J
P
o
p
u
p
M
e
n
u
<
<
c
o
n
s
t
r
u
c
t
o
r
>
>
C
u
s
t
o
m
i
z
e
d
P
d
f
P
l
o
t
(
i
n
h
o
r
i
z
o
n
t
a
l
A
x
i
s
M
o
d
e
l
:
A
x
i
s
M
o
d
e
l
,
i
n
v
e
r
t
i
c
a
l
A
x
i
s
M
o
d
e
l
:
A
x
i
s
M
o
d
e
l
,
i
n
x
:
d
o
u
b
l
e
,
i
n
y
:
d
o
u
b
l
e
,
i
n
a
x
i
s
C
o
l
o
u
r
:
C
o
l
o
r
,
i
n
a
x
i
s
S
t
r
o
k
e
:
S
t
r
o
k
e
,
i
n
t
i
c
k
S
i
z
e
:
i
n
t
,
i
n
t
i
c
k
S
t
r
o
k
e
:
S
t
r
o
i
n
i
c
i
a
l
i
z
a
r
P
o
p
u
p
M
e
n
u
(
)
:
v
o
i
d
p
r
i
n
t
(
i
n
g
r
a
p
h
i
c
s
:
G
r
a
p
h
i
c
s
,
i
n
p
a
g
e
F
o
r
m
a
t
:
P
a
g
e
F
o
r
m
a
t
,
i
n
p
a
g
e
I
n
d
e
x
:
i
n
t
)
:
i
n
t
P
d
f
P
l
o
t
(
f
r
o
m
R
o
o
t
:
:
U
n
k
n
o
w
n
E
x
t
e
r
n
a
l
s
)
p
k
g
s
t
a
t
i
s
t
i
c
a
l
g
r
a
p
h
i
c
s
106
Grfico 3.98 Clase MousePopupListener de CustomizedPdfPlot
3.4.3.16.5. Clase CumulativeFrequencyPolygon
La clase CumulativeFrequencyPolygon representa un polgono de frecuencias
acumuladas en porcentajes, generado a partir de los datos de un objeto
FrequencyTable.
Esta implementacin personaliza las caractersticas de color, tamao y formato de
ejes de referencia, nmeros y etiquetas de ttulo. Adems incluye la funcionalidad
de guardado e impresin de la imagen mediante un men emergente de la clase
interna CustomizedAxesPlot.
Grfico 3.99 Clase CumulativeFrequencyPolygon
3.4.3.16.6. Clase CustomizedAxesPlot
La clase interna CustomizedAxesPlot crea un componente grfico bidimensional
que consiste de un ttulo y dos ejes, de uso exclusivo de
CumulativeFrequencyPolygon. Tiene la particularidad de mostrar un men
emergente al recibir un evento de clic derecho, para guardar e imprimir todos los
objetos grficos que hayan sido dibujados en un objeto de esta clase como base.
MousePopupListener
(from CustomizedPdfPlot)
<<annotations>> mousePressed(in e:MouseEvent):void
<<annotations>> mouseClicked(in e:MouseEvent):void
<<annotations>> mouseReleased(in e:MouseEvent):void
checkPopup(in e:MouseEvent):void
MouseAdapter
(from Root::Java JDK 6 (types only)::java::awt::event)
pkg statisticalgraphics
CumulativeFrequencyPolygon
tablaFrecuencias:FrequencyTable
polygon:AxesPlot
horizontalAxisModel:LinearAxisModel
verticalAxisModel:LinearAxisModel
color:Color
<<constructor>> CumulativeFrequencyPolygon(in tablaFrec:FrequencyTable)
drawPolygon(in title:String):AxesPlot
pkg statisticalgraphics
107
Grfico 3.100 Clase CustomizedAxesPlot
3.4.3.16.7. Clase MousePopupListener de CustomizedAxesPlot
Implementa la misma funcionalidad de la clase MousePopupListener de
CustomizedPdfPlot, pero para una clase contenedora distinta.
Grfico 3.101 Clase MousePopupListener de CustomizedAxesPlot
3.4.3.16.8. Clase TablaDeFrecuenciasPanel
La clase TablaDeFrecuenciasPanel representa una representacin grfica
tabulada de una tabla de frecuencias con la informacin procedente de un objeto
FrequencyTable. El contenido puede ser copiado al portapapeles seleccionado los
campos y filas y presionando la tecla de la letra "C".
La tabla de frecuencias contiene la misma informacin mostrada en el grfico del
histograma, pero en forma tabulada, para acceder a los valores cuantitativos y
obtener una apreciacin ms detallada.
CustomizedAxesPlot
(from CumulativeFrequencyPolygon)
popupMenu:JPopupMenu
<<constructor>> CustomizedAxesPlot(in arg0:String)
<<constructor>> CustomizedAxesPlot(in arg0:AxisModel, in arg1:AxisModel, in arg2:double, in arg3:double, in arg4:Color, in arg5:Stroke, in arg6:int, in arg7:Stroke, in arg8:Color, in arg9:Font, in arg10:Co
<<constructor>> CustomizedAxesPlot(in arg0:AxisModel, in arg1:AxisModel, in arg2:Color, in arg3:Stroke, in arg4:int, in arg5:Stroke, in arg6:Color, in arg7:Font, in arg8:Color, in arg9:Font, in arg10:String
<<constructor>> CustomizedAxesPlot(in arg0:HorizontalAxis, in arg1:VerticalAxis, in arg2:String, in arg3:Color, in arg4:Font)
<<constructor>> CustomizedAxesPlot(in arg0:HorizontalAxis, in arg1:VerticalAxis, in arg2:String)
<<constructor>> CustomizedAxesPlot(in arg0:AxisModel, in arg1:AxisModel, in arg2:double, in arg3:double, in arg4:String)
<<constructor>> CustomizedAxesPlot(in arg0:AxisModel, in arg1:AxisModel, in arg2:String)
inicializarPopupMenu():void
print(in graphics:Graphics, in pageFormat:PageFormat, in pageIndex:int):int
AxesPlot
(from Root::Unknown Externals)
pkg statisticalgraphics
MousePopupListener
(from CumulativeFrequencyPolygon::CustomizedAxesPlot)
<<annotations>> mousePressed(in e:MouseEvent):void
<<annotations>> mouseClicked(in e:MouseEvent):void
<<annotations>> mouseReleased(in e:MouseEvent):void
checkPopup(in e:MouseEvent):void
MouseAdapter
(from Root::Java JDK 6 (types only)::java::awt::event)
pkg statisticalgraphics
108
La tabla contiene los siguientes campos:
Intervalos de Clase [KBps]: Representa los rangos de separacin uniforme
para los distintos valores de bitrate.
Frecuencia: El nmero de datos que existe en cada Intervalo de Clase
Frecuencia Relativa: La proporcin obtenida de dividir el valor de frecuencia
para el total de datos de la muestra.
Frecuencia Relativa Acumulada: Corresponde a la suma de las frecuencias
relativas anteriores.
Densidad: Representa la frecuencia relativa dividida entre el ancho de clase.
Este clculo es especialmente til cuando se tienen intervalos de clase no
uniformes, pues las clases anchas tienden a contener ms datos que las
clases ms angostas. Se la calcula para corregir el efecto de la tendencia y
que el ancho de la clase no influya en la apreciacin de real de la
concentracin de datos, en un determinado rango o intervalo e clase.
Grfico 3.102 Clase TablaDeFrecuenciasPanel
3.4.3.16.9. Clase TablaDeEstadisticaDescriptiva
La clase TablaDeEstadisticaDescriptiva permite crear dos tablas que contendrn
valores estadsticos de la media, valores mximos, mnimos, cuartiles, mediana,
la media recortada y error estndar de la media, obtenidos a partir de un array de
bitrates y aadidos a un panel con los histogramas correspondientes.
TablaDeFrecuenciasPanel
table:DataTable
<<constructor>> TablaDeFrecuenciasPanel(in freq:FrequencyTable)
fillTable(in freq:FrequencyTable):void
JPanel
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
109
A continuacin se explica brevemente cada columna:
Variable: Nombre de la variable, en este caso 'Bitrate'.
N: Tamao de la muestra, representa el nmero de valores de bitrate
utilizados en el clculo.
Media: Valor de la media muestral.
Error estndar de la media
Media recortada al 5%: Valor de la media sin tomar en cuenta el 5% de los
datos ms bajos y el 5% de los datos ms altos.
Desviacin Estndar: es una cantidad que mide el grado de dispersin de una
muestra.
Valor Mnimo: El valor ms pequeo de la muestra.
Los cuartiles son valores que dividen al conjunto de datos en cuatro partes
iguales.
Q1: Primer cuartil.
Mediana: representa una medida de tendencia central de los datos obtenidos
en una muestra. Coincide con el segundo cuartil Q2.
Q3: Tercer cuartil.
Valor Mximo: El mayor valor de la muestra
Los campos ms importantes que el usuario debe tomar en cuenta son sin duda,
la media y la desviacin estndar. El primero indica el valor promedio de bitrate en
el rango de tiempo seleccionado y el segundo representa el grado de dispersin
de los valores de bitrate, este ltimo mientras ms cercano a cero sea su valor,
menor ser la desviacin con respecto a la media, es decir, que el trfico se
mantuvo casi constante a lo largo del tiempo, caso contrario si el valor de bitrate
cambi con el tiempo, implica un aumento en el valor de la desviacin estndar.
110
Los valores Q1, mediana, Q2 y la media recortada son tiles pues no estn muy
afectados por valores mucho ms grandes (representados por el valor mximo) o
pequeos (representados por el valor mnimo) que el resto, estos datos
considerados atpicos podran tratarse de valores picos de la conexin y no
corresponden al valores reales de trfico de Internet.
Grfico 3.103 Clase TablaDeEstadisticaDescriptiva
3.4.3.16.10. Clase IPRankingList
Con los mtodos de esta clase (usando los resultados de la consulta a la base de
datos de la clase OpcionesDNSReverse) se genera un diagrama de barras para
observar con facilidad, cules son las direcciones IP donde las estaciones de
trabajo seleccionadas han realizado una mayor cantidad de conexiones, con el
nmero de bytes enviados o recibidos, segn sea el caso. Para conexiones
TCP/UDP se muestra el nmero de puerto correspondiente. Tambin hace uso de
TablaDNSReverse, esta tabla muestra de mayor a menor cules son las
direcciones IP con ms actividad.
Para la resolucin inversa de nombres (usando la clase ReverseIPListResolution),
el usuario debe suministrar la direccin IP del servidor DNS de su red o el de su
preferencia dentro del cuadro de texto indicado con la etiqueta de texto 'Ingrese la
direccin IP de su servidor DNS'. En caso de que desee fijar uno por defecto,
debe editar el archivo DNS_List_File.txt como se indica localizado en el directorio
DNS_LIST_DIR dentro del directorio de instalacin de Java y usar la palabra
TablaDeEstadisticaDescriptiva
tabla1:DataTable
tabla2:DataTable
estadisticaDescriptiva:MeanVarExtendedAndOrderStatistics
<<constructor>> TablaDeEstadisticaDescriptiva(in data:double[*])
fillTable():void
JPanel
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
111
default en el campo de texto destinado al servidor de nombres. La lista debe
editarse como se muestra en el siguiente ejemplo: 192.188.57.242;195.5.64.6
El proceso de resolucin de nombres realizar una consulta al servidor DNS en
busca del nombre asociado a la direccin IP listada, en caso de no encontrarse el
registro con el nombre correspondiente el valor retornado ser 'No se resolvi la
direccin IP'.
Incluye un botn para instanciar un objeto Browser y navegar con las direcciones
IP resueltas.
Grfico 3.104 Clase IPRankingList
3.4.3.16.11. Clase TablaDNSReverse
La clase TablaDNSReverse permite crear una tabla grfica con los diferentes
valores de la lista de direcciones IPs para la resolucin de nombres de dominio.
IPRankingList
panelPrincipalDNS:JPanel
chart:JFreeChart
tablaDNS:TablaDNSReverse
reversePanelDNS:JPanel
DNSserverIP:JTextField
botonSelector:JButton
listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>
reverseDNS:ReverseIPListResolution
DNSservers:String[*]
dialogAyuda:SugerenciaAyuda
TextAreaBrowser:JTextField
buttonBrowser:JButton
<<constructor>> IPRankingList(in owner:Dialog, in title:String, in modal:boolean)
draw(in dataset:CategoryDataset, in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>):void
redraw():void
createChart(in dataset:CategoryDataset):JFreeChart
isValidTextFieldIP():boolean
isValidIP(in IP:String):boolean
loadDNSlistFromFile():void
existDNS_LIST_FILE(in ourAppDir:File, in path:String):boolean
readDNS_List_File(in DNS_File:File):String[*]
isReachable(in DNS_list:String[*]):boolean
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
112
La tabla incluye los siguientes campos:
Direccin IP: La representacin estndar de la IP.
IPType: Valor del campo "Protocolo" de la cabecera IP que identifica el
protocolo del siguiente nivel.
Puerto TCP/UDP: Nmero entre 1 - 65535 que identifica el puerto usado por la
direccin IP pblica para establecer la conexin.
Bytes UP/DOWN: Cantidad en bytes de datos enviados o recibidos (depende
de la opcin elegida en la consulta a la base de datos).
DNS Reverso: Nombre asociado a la direccin IP pblica. Aqu se ubicarn los
resultados de la resolucin de nombres.
Grfico 3.105 Clase TablaDNSReverse
3.4.3.16.12. Clase PromedioBitrateHostSeleccionados
Usando los resultados de la consulta a la base de datos (generada con las
opciones de la clase OpcionesGraficoBitratePromedio), se genera un grfico que
muestra la tasa de transferencia o bitrate promedio para cada una de las
estaciones de trabajo seleccionadas, por cada protocolo y/o puerto.
Para calcular estos valores se lo hace sumando la cantidad de bytes recibidos o
enviados, segn sea el caso, para el lapso de tiempo seleccionado en la ventana
de opciones.
Esto permite establecer fcilmente quien registra la mayor tasa de transferencia y
la magnitud del valor promedio. La ventana contiene una barra de desplazamiento
TablaDNSReverse
table:DataTable
<<constructor>> TablaDNSReverse(in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>)
fillTable(in listaIPs:ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>):void
updateData():void
JPanel
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
113
que permite mover la imagen en caso de que exceda el tamao predefinido para
una sola estacin de trabajo.
Adjunto a esto se tiene una lista en formato de texto, ordenado de mayor a menor
tasa de transferencia, con la misma informacin del grfico que puede ser copiado
al portapapeles seleccionando el texto requerido y usando Ctrl+C.
Grfico 3.106 Clase PromedioBitrateHostSeleccionados
3.4.3.16.13. Clase PortAverageEntry
La clase PortAverageEntry permite instanciar un objeto que asocia el valor de un
puerto TCP/UDP con la cantidad de bytes enviados o recibidos. Una lista de
objetos de esta clase describira el trfico de una estacin de trabajo. Al
implementar un mtodo de comparacin la lista puede ser ordenada.
Grfico 3.107 Clase PortAverageEntry
PromedioBitrateHostSeleccionados
datasetG:CategoryDataset
chart:JFreeChart
contentChart:JPanel
buttonPanel:JPanel
textDataset:JTextArea
dialogAyuda:SugerenciaAyuda
<<constructor>> PromedioBitrateHostSeleccionados(in owner:Dialog, in title:String, in modal:boolean)
draw(in dataset:CategoryDataset):void
createChart(in dataset:CategoryDataset):JFreeChart
fillTextArea():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
K,V
PortAverageEntry
<<constructor>> PortAverageEntry(in entry:Entry)
<<constructor>> PortAverageEntry(in key:K, in value:V)
<<constructor>> PortAverageEntry(in rowKey:Comparable, in doubleValue:double)
compareTo(in o:Object):int
K,V
<<static>>
SimpleEntry
(from Root::Java JDK 6 (types only)::java::util::AbstractMap)
pkg statisticalgraphics
114
3.4.3.16.14. Clase BitratevsTiempoGraphLineas
Aqu se recibe el resultado de la consulta a la base de datos, construida con la
clase OpcionesBitratevsTiempoProtocolo y se genera el grfico de reconstruccin
del trfico capturado.
Una ventaja de poseer una base de datos de datos donde se almacenan
peridicamente valores de trfico de Internet, es que se puede reconstruir en
cualquier momento un grfico que muestre los valores de tasa de transferencia
para las estaciones de trabajo seleccionadas diferenciando protocolos y/o puertos
mediante lneas de diferente color y etiquetas de identificacin. El eje horizontal
representa el tiempo como la diferencia, medida en milisegundos, entre el tiempo
actual y la medianoche de Enero 1 de 1970 UTC.
El usuario del programa puede observar en que momentos del da se registra un
mayor uso de la conexin a Internet y si se lo hace de manera adecuada, de
acuerdo a las polticas internas de la empresa o institucin.
Cada lnea de distinto color representa a un protocolo o trfico asociado a un
puerto, y cuando la cantidad de etiquetas de identificacin sea mayor a 20 el
grfico se muestra sin ellas. En este caso, el usuario debe mover el mouse sobre
los picos de las lneas y aparecer un tooltip o texto emergente con la informacin
necesaria para identificar cada una de ellas.
Grfico 3.108 Clase BitratevsTiempoGraphLineas
BitratevsTiempoGraphLineas
chartBvsT:JFreeChart
contentChartBvsT:JPanel
buttonPanel:JPanel
dialogAyuda:SugerenciaAyuda
<<constructor>> BitratevsTiempoGraphLineas(in owner:Dialog, in title:String, in modal:boolean)
draw(in collection:XYSeriesCollection):void
createChart(in collection:XYSeriesCollection):JFreeChart
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
115
3.4.3.16.15. Clase BitratevsTiempoGraphPasos
Implementa un grfico similar al de BitratevsTiempoGraphLineas, la diferencia
consiste en utilizar lneas horizontales en lugar de lneas, para cada valor de tasa
de transferencia recuperado de la base de datos.
La altura de cada paso representa el valor promedio de tasa de transferencia y su
longitud la duracin de tiempo. En el eje horizontal la escala de tiempo usa el
formato hh:mm (horas y minutos) para un da de 24 horas.
Grfico 3.109 Clase BitratevsTiempoGraphPasos
3.4.3.16.16. Clase PercentagePieGraph2D
Esta clase recibe de OpcionesPorcentajeGraficoPastel2D los datos tras la
consulta a la base de datos con las opciones seleccionadas por el usuario del
programa. Usando estos datos se genera un pastel 2D para visualizar esta
informacin.
En este grfico pueden observarse con facilidad, de manera porcentual, los
protocolos y puertos ms utilizados en el acceso a Internet, de acuerdo a la
cantidad de bytes enviados o recibidos, segn sea el caso, para los hosts
seleccionados.
El usuario del programa debe asegurarse que los protocolos y/o puertos que
aparezcan en la grfica, pertenezcan a trfico permitido de acuerdo a las polticas
de uso adecuado de la conexin a Internet de la empresa o institucin.
BitratevsTiempoGraphPasos
chartBvsT:JFreeChart
contentChartBvsT:JPanel
buttonPanel:JPanel
dialogAyuda:SugerenciaAyuda
<<constructor>> BitratevsTiempoGraphPasos(in owner:Dialog, in title:String, in modal:boolean)
draw(in collection:TimePeriodValuesCollection):void
createChart(in collection:TimePeriodValuesCollection):JFreeChart
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
116
Para facilitar la observacin de las etiquetas con los porcentajes de cada seccin
del pastel, se ha incluido dos botones para rotar la imagen y obtener una mejor
visibilidad.
Grfico 3.110 Clase PercentagePieGraph2D
3.4.3.16.17. Clase PercentagePieGraph3D
Es idntica a la clase anterior con la diferencia de que se genera un pastel de
porcentajes 3D, para visualizar esta informacin de manera ms elegante y
sofisticada que un grfico 2D.
Grfico 3.111 Clase PercentagePieGraph3D
PercentagePieGraph2D
chart:JFreeChart
contentChart:JPanel
buttonPanel:JPanel
pieChart:JFreeChart
textDataset:JTextArea
datasetG:DefaultPieDataset
angle:int=90
dialogAyuda:SugerenciaAyuda
<<constructor>> PercentagePieGraph2D(in owner:Dialog, in title:String, in modal:boolean)
draw(in dataset:DefaultPieDataset):void
createChart(in dataset:DefaultPieDataset):JFreeChart
girarPie(in girar:boolean):void
fillTextArea():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
PercentagePieGraph3D
chart:JFreeChart
contentChart:JPanel
buttonPanel:JPanel
pieChart:JFreeChart
textDataset:JTextArea
datasetG:DefaultPieDataset
angle:int=90
dialogAyuda:SugerenciaAyuda
<<constructor>> PercentagePieGraph3D(in owner:Dialog, in title:String, in modal:boolean)
draw(in dataset:DefaultPieDataset):void
createChart(in dataset:DefaultPieDataset):JFreeChart
girarPie(in girar:boolean):void
fillTextArea():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
117
3.4.3.16.18. Clase SerieDeTiempoGraficoLineas
Una serie de tiempo recopila de manera ordenada un conjunto de observaciones
realizadas en momentos especficos y en intervalos de tiempo regulares o de
igual duracin, que pueden ser minutos, horas, das, meses y aos. En el
presente caso cada observacin corresponde al valor promedio de tasa de
transferencia para cada intervalo regular de tiempo.
El dilogo OpcionesSeriesTiempoProtocolos genera una consulta a la base de
datos y organiza el resultado en una coleccin de series de tiempo. Cada serie de
tiempo tiene un color especfico y representa a un protocolo o puerto de una
estacin de trabajo, segn sea el caso.
El usuario del software puede observar estos promedios grficamente y
determinar, por simple observacin, dnde y en qu momento se registra la mayor
cantidad de trfico de Internet. Este tipo de grfico tiene mayor relevancia a
mediano y largo plazo, porque se dispone de mayor cantidad de datos,
hacindose ms fiable contra valores de trfico pico.
Cada serie de tiempo tiene una etiqueta identificadora. El lmite de etiquetas
identificadoras es de 20, si se sobrepasa este valor, no se las mostrar, con esto
se evita que el espacio destinado para el grfico disminuya demasiado. La utilidad
de tooltip o texto emergente, evita que se imposibilite conocer a quien
corresponde una serie de tiempo especfica, si las etiquetas estn ocultas.
Grfico 3.112 Clase SerieDeTiempoGraficoLineas
SerieDeTiempoGraficoLineas
chartBvsT:JFreeChart
contentChartBvsT:JPanel
buttonPanel:JPanel
dialogAyuda:SugerenciaAyuda
<<constructor>> SerieDeTiempoGraficoLineas(in owner:Dialog, in title:String, in modal:boolean)
draw(in collection:TimeSeriesCollection):void
createChart(in dataset:TimeSeriesCollection):JFreeChart
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
118
3.4.3.16.19. Clase SerieDeTiempoGraficoPasos
A diferencia de una serie de tiempo convencional, la graficacin de pasos indica
visualmente el valor promedio en cada intervalo regular, por medio de una lnea
horizontal. Trabaja conjuntamente con OpcionesPasosPromedioProtocolos para
la consulta a la base de datos.
Grfico 3.113 Clase SeriesDeTiempoGraficoPasos
Una serie de tiempo que usa lneas horizontales ayuda a evitar confusiones. Por
ejemplo, el intervalo de tiempo regular es de horas; en un grfico normal se unen
con lneas los valores de los promedios de tasa de transferencia para cada
intervalo, como se muestra en el grfico 3.114.
Grfico 3.114 Fragmento de una serie de tiempo convencional.
A simple vista parecera, que al inicio de la hora, el bitrate tuvo un valor fijo y que
luego aument o disminuy, dependiendo del siguiente valor para el intervalo
siguiente. En el grfico 3.115 que utiliza pasos, las cosas son ms claras; cada
lnea horizontal indica que en ese lapso de tiempo se tuvo ese valor promedio de
bitrate.
SerieDeTiempoGraficoPasos
chartBvsT:JFreeChart
contentChartBvsT:JPanel
buttonPanel:JPanel
dialogAyuda:SugerenciaAyuda
<<constructor>> SerieDeTiempoGraficoPasos(in owner:Dialog, in title:String, in modal:boolean)
draw(in collection:TimeSeriesCollection):void
createChart(in dataset:TimeSeriesCollection):JFreeChart
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg statisticalgraphics
119
Grfico 3.115 Fragmento de una serie de tiempo dibujada en pasos.
3.4.3.17. Clases del paquete sugerencia
3.4.3.17.1. Clase HTMLResources
La clase HTMLResources contiene un conjunto de mtodos que retornan un
objeto URL correspondiente a cada uno de los archivos html de ayuda y
sugerencias, para los diferentes diagramas estadsticos y resmenes de datos.
Grfico 3.116 Clase HTMLResources
3.4.3.17.2. Clase SugerenciaAyuda
La clase SugerenciaAyuda instancia un cuadro de dilogo y un editor de
contenido para mostrar la informacin de un archivo html guardado en el paquete
de la aplicacin, que proporciona una ayuda de uso e interpretacin del programa
para el usuario. Trabaja en conjunto con HTMLResources.
HTMLResources
getHelpPromedios():URL
getHelpPie2D():URL
getHelpPie3D():URL
getHelpHistogramas():URL
getHelpHistorialLineas():URL
getHelpHistorialPasos():URL
getHelpSeriesTiempo():URL
getHelpSeriesTiempoPasos():URL
getHelpDNSReverso():URL
pkg sugerencia
120
Grfico 3.117 Clase SugerenciaAyuda
3.5. DESCRIPCIN DE LA INTERFAZ GRFICA DE CAPTURA DE
PAQUETES
El desarrollo de una interfaz grfica permite que el usuario interacte de manera
intuitiva con el programa, sin embargo esta puede ser bastante compleja para ser
escrita a partir de cero. Para disminuir esta complejidad en el presente proyecto
se opt por utilizar el NetBeans IDE 6.5 con la plantilla inicial bsica de una
aplicacin de escritorio Java.
3.5.1. DESCRIPCIN DE LOS PAQUETES DE CLASES
La aplicacin contiene un paquete principal denominado trafficstatistics que
abarca todo el conjunto de clases necesarias para la implementacin de la
interfaz grfica de captura de paquetes:
Grfico 3.118 Paquete trafficstatistics
SugerenciaAyuda
pane:JEditorPane
<<constructor>> SugerenciaAyuda(in owner:Dialog, in title:String)
abrirUrl(in url:Object):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg sugerencia
TrafficStatisticsAboutBox
TrafficStatisticsView
TrafficStatisticsApp
pkg trafficstatistics
121
3.5.2. DESCRIPCIN DE CLASES
3.5.2.1. Clase TrafficStatisticsAboutBox
Dilogo con la informacin para la opcin Acerca de.
Grfico 3.119 Vista previa de ventana Acerca de.
Grfico 3.120 Clase TrafficStatisticsAboutBox
3.5.2.2. Clase TrafficStatisticsApp
Clase principal de la aplicacin. Cuando se ejecuta el mtodo principal crea una
instancia de la clase de la interfaz grfica TrafficStatisticsView.
Grfico 3.121 Clase TrafficStatisticsApp
TrafficStatisticsAboutBox
closeButton:JButton
<<constructor>> TrafficStatisticsAboutBox(in parent:Frame)
<<annotations>> closeAboutBox():void
initComponents():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg trafficstatistics
TrafficStatisticsApp
<<annotations>> startup():void
<<annotations>> configureWindow(in root:Window):void
getApplication():TrafficStatisticsApp
main(in args:String[*]):void
SingleFrameApplication
(from Root::Unknown Externals)
pkg trafficstatistics
122
3.5.2.3. Clase TrafficStatisticsView
La clase TrafficStatisticsView permite inicializar todos los objetos que componen
toda la interfaz grfica, tanto para la captura, graficacin y almacenamiento de
datos, al monitorear el trfico de Internet de una intranet.
Dada la extensin de la clase de la interfaz grfica TrafficStatisticsView se ha
omitido su diagrama de clase, sin embargo en el siguiente punto se describe la
funcionalidad que tiene cada uno de sus elementos.
3.5.3. DISEO E IMPLEMENTACIN DE LA INTERFAZ GRFICA
UTILIZANDO EL NETBEANS IDE 6.5
A continuacin se muestra la interfaz desarrollada utilizando la herramienta
grfica de diseo del IDE. Cada grfico contiene varios crculos con un nmero
para identificar y explicar los distintos componentes grficos utilizados.
Grfico 3.122 Vista previa 1 de TrafficStatisticsView
123
Identificador Componente Descripcin
0 JMenuBar Barra de men con los siguientes elementos:
-Archivo: Incluye
+ Importar Base de Datos desde un archivo zip creado por este
programa o una copia del mismo.
+ Exportar Base de Datos a un archivo zip.
+ Salir Finaliza la aplicacin.
-Edicin: Incluye
+ Copiar Ctrl+C copia el texto de la salida del sniffer.
-Ver: Incluye
+ Look & Feel despliega un cuadro de dilogo con una lista
desplegable de distintos temas de apariencia para la aplicacin.
-Herramientas: Incluye
+ Informacin de Interfaz de Red muestra informacin de la tarjeta
de red seleccionada.
+ Seleccin de valor mximo de bitrate total asigna el valor mximo
de bitrate para los grficos del trfico de entrada y salida totales a
partir del cual una se activar un sonido del sistema para alertar que
se ha sobrepasado el lmite permitido y los grficos en tiempo real del
trfico modificarn su gradiente de color para este nuevo valor.
+ Seleccin de valor mximo de bitrate por hosts seleccionados la
misma funcionalidad de la opcin anterior pero para los grficos de
entrada y salida de los hosts seleccionados en el sniffer.
-Ayuda: Incluye
+ Acerca de informacin sobre la aplicacin.
1 JToolBar Barra de herramientas con los siguientes botones, de izquierda a
derecha respectivamente:
- Exportar Base de Datos a un archivo zip.
-Importar Base de Datos desde un archivo zip creado por este
programa o una copia del mismo.
-Seleccin de dispositivo de red permite elegir el dispositivo
deseado de una lista desplegable.
-Iniciar la captura de paquetes Abre una conexin con la base de
datos donde se almacenarn los valores de bitrate, inicia la graficacin
del bitrate en tiempo real y la captura de paquetes para el clculo de
estos valores.
-Detener la captura de paquetes finaliza todas acciones iniciadas por
el botn anterior.
-Seleccionar todos los hosts detectados selecciona todas las
estaciones de trabajo detectadas durante el proceso de captura de
paquetes.
124
-Quitar seleccin de todos los hosts detectados no selecciona
ninguna estacin de trabajo.
2 JScrollPane Panel de desplazamiento donde se incluir un rbol con las distintas
estaciones de trabajo detectadas ms una casilla de activacin, que
servir como distintivo para saber si el host fue seleccionado o no en
el momento de ejecucin del sniffer.
3 JPanel Panel que contendr un navegador web embebido en la aplicacin.
Trfico en
tiempo real
TOTAL
Primera pestaa de un componente JTabbedPane o panel con
pestaas. Los componentes 4, 5 y 6 estn contenidos dentro de la
primera pestaa.
4 JToolBar Barra de herramientas con los siguientes botones, de izquierda a
derecha respectivamente:
-Reiniciar grficos de trfico de Internet en tiempo real globales.
-Guardar imagen de trfico entrante total abre un cuadro de dilogo
para seleccionar el directorio y el nombre del archivo donde se
guardar la imagen en el formato deseado.
-Guardar imagen de trfico saliente total igual al anterior.
5 JPanel Panel que contendr el grfico de trfico de Internet entrante en
tiempo real global, es decir, de todo las estaciones de trabajo activas.
6 JPanel Igual al anterior pero para trfico saliente.
Tabla 3.3 Descripcin de la vista previa 1 de TrafficStatisticsView
Grfico 3.123 Vista previa 2 de TrafficStatisticsView
125
Identificador Componente Descripcin
Modo Sniffer Segunda pestaa de un componente JTabbedPane o panel con
pestaas. Los componentes 7 y 8 estn contenidos dentro de la primera
pestaa.
7 JToolBar Barra de herramientas con los siguientes componentes, de izquierda a
derecha respectivamente:
-Opciones de protocolos lista desplegable detallada a continuacin:
ALL-->Todos los Paquetes
TCP-->Paquetes que usan el Transmission Control Protocol como
protocolo de transporte
UDP-->Paquetes que usan el User Datagram Protocol como protocolo de
transporte
ICMP-->Paquetes provenientes del Internet Control Message Protocol
-Puerto campo de texto para el ingreso de un valor entre 1 y 65535 que
representa los valores de puertos para los protocolos de transporte TCP
y UDP. En el caso de ICMP el contenido de este campo es ignorado.
-RAW casilla de activacin, si est seleccionada el paquete ser
decodificado completamente, caso contrario se mostrarn decodificadas
solo las cabeceras de los protocolos.
-Iniciar o continuar la ejecucin del sniffer inicia la funcionalidad del
sniffer con los parmetros seleccionados, conjuntamente inician los
grficos para el trfico de los hosts seleccionados que utilizan los mismos
parmetros.
-Detener el sniffer detiene la ejecucin del sniffer y finaliza la
graficacin para el trfico de los hosts seleccionados.
-Pausar el sniffer pausa la ejecucin del sniffer.
-Borrar contenido borra el contenido de los paquetes decodificados del
rea de texto.
-Guardar captura automticamente abre un cuadro de dilogo para
seleccionar el directorio y el nombre del archivo donde se guardar la
captura de paquetes decodificados en formato de texto.
-No guardar captura automticamente el contenido del sniffer no se
guardar automticamente y se reiniciar cada 15000 lneas.
-Guardar texto actual abre una ventana de dilogo para guardar el
contenido del rea de texto del sniffer.
8 JTextArea rea de texto donde se despliega el contenido decodificado de los
paquetes capturados.
Tabla 3.4 Descripcin de la vista previa 2 de TrafficStatisticsView
126
Grfico 3.124 Vista previa 3 de TrafficStatisticsView
Identificador Componente Descripcin
Trfico en tiempo real por
HOSTS
SELECCIONADOS
Segunda pestaa de un componente JTabbedPane o
panel con pestaas. Los componentes 9,10 y 11 estn
contenidos dentro de la primera pestaa.
9 JToolBar Barra de herramientas con los siguientes botones, de
izquierda a derecha respectivamente:
-Reiniciar grficos de trfico de Internet en tiempo real de
hosts seleccionados.
-Sincronizar grficos globales y de hosts seleccionados
ambos tipos de grficos inician nuevamente al mismo
tiempo.
-Guardar imagen de trfico entrante de los hosts
seleccionados - abre un cuadro de dilogo para
seleccionar el directorio y el nombre del archivo donde se
guardar la imagen en el formato deseado.
-Guardar imagen de trfico saliente total de los hosts
seleccionados igual al anterior.
10 JPanel Panel que contendr el grfico de trfico de Internet
entrante en tiempo real de los hosts seleccionados, es
decir, de todas las estaciones de trabajo activas
seleccionadas.
11 JPanel Igual al anterior pero para trfico saliente.
Tabla 3.5 Descripcin de la vista previa 3 de TrafficStatisticsView
127
3.6. DESCRIPCIN DE LA INTERFAZ GRFICA DE ANLISIS
ESTADSTICO
Al igual que en la captura de datos, en la interfaz grfica para la aplicacin de
escritorio de anlisis estadstico se utiliz el NetBeans IDE 6.5.
3.6.1. DESCRIPCIN DE LOS PAQUETES DE CLASES
La aplicacin contiene un paquete principal denominado querystatistics con el
conjunto de clases necesarias para la implementacin de la interfaz grfica de
anlisis estadstico:
Grfico 3.125 Paquete querystatistics
3.6.2. DESCRIPCIN DE CLASES
3.6.2.1. Clase QueryStatisticsAboutBox
Dilogo con la informacin para la opcin Acerca de.
QueryStatisticsAboutBox
StatisticsGraphicsTypesJList
QueryStatisticsView
QueryStatisticsApp
-graphicsList
pkg querystatistics
128
Grfico 3.127 Clase QueryStatisticsAboutBox
3.6.2.2. Clase QueryStatisticsApp
Clase principal de la aplicacin. Cuando se ejecuta el mtodo principal crea una
instancia de la clase de la interfaz grfica QueryStatisticsView.
Grfico 3.128 Clase QueryStatisticsApp
3.6.2.3. Clase StatisticsGraphicsTypesJList
La clase StatisticsGraphicsTypesJList es una lista visual que permite mostrar los
diferentes tipos de grficos y resmenes de datos que el programa puede
generar. Para acceder a una ventana de dilogo de cada uno de los diagramas,
incluye la implementacin de escucha para el evento doble clic, adems permite
cargar la informacin y animacin respectiva de la opcin elegida por el usuario.
QueryStatisticsAboutBox
closeButton:JButton
<<constructor>> QueryStatisticsAboutBox(in parent:Frame)
<<annotations>> closeAboutBox():void
initComponents():void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg querystatistics
QueryStatisticsApp
<<annotations>> startup():void
<<annotations>> configureWindow(in root:Window):void
getApplication():QueryStatisticsApp
main(in args:String[*]):void
SingleFrameApplication
(from Root::Unknown Externals)
pkg querystatistics
129
Grfico 3.129 Clase StatisticsGraphicsTypesJList
3.6.2.4. Clase QueryStatisticsView
La clase QueryStatisticsView permite inicializar todos los objetos que componen
toda la interfaz grfica, tanto para la representacin de los distintos diagramas
estadsticos y resmenes, para el establecimiento y finalizacin de la conexin a
la base de datos y la descripcin de cada uno de ellos con su respectiva
animacin informativa.
Al igual que la interfaz grfica para captura de datos, la de anlisis estadstico
QueryStatisticsView tambin es muy extensa. En consecuencia su diagrama de
clase ha sido omitido e igualmente se procede a describir cada uno de sus
elementos grficos.
3.6.3. DISEO E IMPLEMENTACIN DE LA INTERFAZ GRFICA
UTILIZANDO EL NETBEANS IDE 6.5
Siguiendo la modalidad para la interfaz grfica anterior, se mostrarn las capturas
de los diseos realizados con el IDE y su explicacin en forma tabulada.
StatisticsGraphicsTypesJList
objectHostJlist:Map<K->Integer,V->Long[]>
queryTotal:QueryGetter
framePrincipal:JFrame
AreaDescripcionjTextAreaJlist:JTextArea
GraficaDescriptivoJlistjPanel:JPanel
selectedItem:int=100
listData:Object[*]={"1.- Tasa de transferencia promedio de uso de Internet", "2.- Porcentajes de uso de trfico de Internet", "3.- Porcentajes de uso de trfico de Internet 3D", "4.- Histogramas y distribuc
<<constructor>> StatisticsGraphicsTypesJList(in framePrincipal:JFrame, in q:QueryGetter)
setObjectHostListData(in objectHostListData:Map<K->Integer,V->Long[]>, in AreaDescripcionjTextArea:JTextArea, in GraficaDescriptivojPanel:JPanel):void
addCustomizedListSelectionListener():void
addCustomizedMouseListener():void
selectedItemEvent(in index:int):void
doubleClick(in e:MouseEvent):void
JList
(from Root::Java JDK 6 (types only)::javax::swing)
pkg querystatistics
130
SI
NO
NO
Reconstruccindehistorial
delabasededatosusando
lneas
SI NO NO
Reconstruccindehistorial
delabasededatosusando
pasos
SI NO NO
Seriesdetiempo SI NO NO
Seriedetiempoenpasos SI NO NO
RankingparaIPsms
utilizadas
SI SI NO
DNSReverso SI SI NO
ReproductordeVideo
Paratutorial
SI NO NO
APARIENCIA(GUI)
Look&feel(Plantillasde
mejoramientovisual)
SI NO NO
AnimacionesFlashpara
descripcinde
herramientasdeanlisisde
datos.
SI NO NO
Tabla 4.2 Comparacin del Proyecto de titulacin con respecto a dos aplicaciones afines
4.3. PRUEBAS DE MONITOREO
Con la finalidad de comprobar formalmente si el proyecto cumple con los
objetivos planteados al inicio de este trabajo, se realizaron pruebas de
monitoreo en el Laboratorio de Software perteneciente a la Facultad Ingeniera
en Sistemas que da servicios a la ESFOT.
Este laboratorio cuenta con 20 mquinas para prestar servicio de Internet, y 4
mquinas adicionales para administrar la red, las direcciones IP son asignadas
por el servidor DHCP de la Escuela Politcnica Nacional.
Para poder monitorear el trfico de Internet se utilizaron los siguientes
equipos.
Laptop Sony Vaio con caractersticas de 2.2 GHz Dual Dore y 3 GB de
RAM, con una tarjeta de red Ethernet.
178
Un switch de 8 puertos D-Link no administrable.
Un hub de 8 puertos de 10 Mbps.
5 computadores de la Intranet.
La conexin de red requerida para el monitoreo de datos se la realiz
conectando 5 computadoras de la intranet a un switch no administrable D-link,
este a su vez se conecta a un puerto del hub.
Para que estas estaciones de trabajo puedan salir a Internet se conecta un
puerto del hub a un puerto del switch administrable de la Intranet.
La computadora porttil se conecta directamente al hub para monitorear todo
el trfico que genera las 5 estaciones de trabajo. El grfico 4.1 permite
describir la conexin necesaria para el monitoreo de los datos.
Grfico 4.1 Diagrama de conexin de red para monitoreo de datos.
Luego de haber implementado el esquema de conexin fsica anterior, se
procedi a monitorear el trfico de Internet los das designados por el
responsable del laboratorio de software que fueron el da jueves 27 y viernes
28 de mayo del 2010.
179
4.3.1. Captura de paquetes y almacenamiento en la base de datos
En los grficos 4.2 y 4.3 se muestra la captura de datos obtenida de un puerto del
hub en tiempo real, mostrando un rbol en la parte izquierda del grfico con todas
las estaciones de trabajo monitoreadas. Ambas capturas de pantalla muestran el
grfico de bitrate vs tiempo con una alarma a 100 KBps, mostrando en detalle la
tasa de transferencia instantnea y promedio del trfico entrante y saliente.
Grfico 4.2 Grfico bitrate vs tiempo incoming y outgoing de las pruebas de monitoreo
sobrepasando los 100KBps.
Grfico 4.3 Grfico bitrate vs tiempo incoming y outgoing de las pruebas de monitoreo en un
momentos diferente.
Cuando las estaciones de trabajo dejaban de transmitir y recibir datos el grfico
bitrate vs tiempo deja de representar valores como se muestra en el grfico 4.4.
Lmite de
100 KBps
para la
alarma
sonora y
de color
180
Grfico 4.4 Grfico bitrate vs tiempo incoming y outgoing cuando termina una descarga de datos.
Para analizar el trfico de un host especfico se procedi a sealar la casilla de
activacin sobre una estacin de trabajo y como se muestra en la siguiente
captura de pantalla del grfico 4.5, el programa muestra solo el trfico que
generaba la estacin seleccionada al utilizar la conexin a Internet.
Grfico 4.5 Grfico bitrate vs tiempo incoming y outgoing para un host seleccionado.
Para visualizar el flujo del trfico de varios hosts, se seal en varias casillas de
activacin en el rbol de estaciones de trabajo situado en la parte izquierda.
Luego de inicializar el sniffer el programa empez a graficar los valores de bitrate
181
como se muestra en la siguiente captura de pantalla representada por el grfico
4.6.
Grfico 4.6 Grfico bitrate vs tiempo incoming y outgoing para varios hosts seleccionados.
Cuando se inicializa en anlisis de datos por hosts seleccionados el sniffer
empieza a capturar paquetes y a representarlos en un rea de texto, como se
muestra en la siguiente captura de pantalla del grfico 4.7.
Grfico 4.7 Monitoreo de paquetes en Modo Sniffer.
rea de texto del sniffer con
los paquetes decodificados
182
Si al inicializar el sniffer no se ha asignado ningn tipo de opcin para
almacenar o para descartar los datos monitoreados despliega en pantalla una
opcin para guardar los datos monitoreados en un archivo de texto, como se
muestra en la siguiente captura de pantalla representada por el grfico 4.8.
Grfico 4.8 Cuadro de dilogo para respaldar datos monitoreados en Modo Sniffer.
Al presionar el botn aceptar del cuadro de dilogo anterior, aparece una
ventana para elegir un directorio y el nombre del archivo de texto que contendr
los paquetes decodificados del trfico de Internet.
Como se ha visto casi en todas las capturas se ha aadido un browser al
proyecto, para que el usuario pueda navegar en Internet y acceder a los
servidores de la intranet.
A continuacin se muestran los paquetes decodificados del archivo de texto que
gener el software al guardar la informacin de captura de trfico de Internet.
Deshabilitando la casilla en la barra de herramientas de la pestaa Sniffer se
consigue asignar el modo NO RAW (decodificacin de cabeceras de protocolo)
y al activar la misma casilla en la barra de herramientas se asigna el modo
RAW (decodificacin completa del paquete) para la captura de paquetes.
Guarda o descarta el contenido del
rea de texto del sniffer.
183
Grfico 4.9 Valores de campos de paquetes en modo de decodificacin No RAW.
Grfico 4.10 Valores de campos de paquetes en modo de decodificacin RAW.
El valor del timestamp corresponde a la diferencia, medida en milisegundos, entre la hora actual y la medianoche
del 1ero de Enero de 1970.
MAC origen y MAC destino de la trama Ethernet.
Direccin IP origen y destino del paquete IP.
Tamao del paquete IP incluida la cabecera.
Indicadores del segmento TCP.
Puerto origen, puerto destino y tamao total del
segmento TCP sin overhead.
Datos relativos a la captura de datos. Nmero de paquete, timestamp,
tamao del paquete en la red y tamao de la captura respectivamente.
Descripcin los campo de la trama Ethernet.
Descripcin de los campos del paquete IP.
Descripcin de los campos del protocolo TCP.
Protocolo de capa aplicacin Http.
184
4.3.2. Anlisis de resultados
Despus de haber monitoreado durante 2 das la intranet del Laboratorio de
Software se procedi a realizar el anlisis respectivo.
Para profundizar en la descripcin de cada tipo de grfico y resumen de datos de
trfico de Internet expuesto a continuacin, se recomienda leer el anexo D.
4.3.2.1. Tasa de transferencia promedio de uso de Internet
1
Con este diagrama se examin los datos monitoreados y se eligieron los hosts
con los datos transferidos ms significativos, para as comparar los diferentes
valores de tasa transferencia del trfico entrante de datos desde Internet.
Grfico 4.11 Tasa de transferencia promedio de uso de Internet de los datos monitoreados.
1
Ver anexo D, seccin D.1.7.1.1.
Los hosts que tienen un mayor valor de tasa de
transferencia promedio son los que poseen la IP
172.31.18.166 y la IP 172.31.18.58. Para ms detalle se
muestran los valores con mayor exactitud en el rea de texto.
185
Como se muestra en el grfico 4.11, se ve que ha existido una mayor cantidad de
trfico por el puerto 80, que corresponde al protocolo http, en menor magnitud
para el puerto 443 que corresponde al protocolo https y para los puertos no bien
conocidos 8080 y 1935.
4.3.2.2. Porcentajes de uso de trfico de Internet
2
Este diagrama permite representar la cantidad total de datos entrantes o salientes
para los protocolos TCP, UDP, ICMP o para un puerto especfico en un pastel de
porcentajes.
Como se muestra en la representacin grfica 4.12, el host con la IP
172.31.18.166 posee el 28% del total con la mayor cantidad de transferencia de
datos TCP del trfico monitoreado, seguido por el host con la IP 172.31.18.58 con
un porcentaje del 24%.
Grfico 4.12 Porcentajes de uso de trfico de Internet de los datos monitoreados.
2
Ver anexo D, seccin D.1.7.1.2
Para ms detalle se aadi un rea de texto con los valores
exactos para la representacin grfica.
186
4.3.2.3. Porcentaje de uso de trfico de Internet 3D
3
Este diagrama servir para mostrar con ms detalle los valores del trfico a
Internet para los hosts seleccionados. En este caso se muestra la minora del
trfico monitoreado en la siguiente captura representada por el grfico 4.13.
Grfico 4.13 Porcentajes de uso de trfico de Internet 3D de los datos monitoreados.
4.3.2.4. Histograma y distribucin de frecuencias acumuladas de protocolos de trfico
de Internet
4
Este diagrama realiza un anlisis con los valores de tasa de transferencia para
clasificarlos en rangos y obtener informacin sobre el comportamiento de la red.
3
Ver anexo D, seccin D.1.7.1.3
4
Ver anexo D, seccin D.1.7.1.4
Como se puede apreciar en rea de texto, los puertos no bien
conocidos 8080 y 1935 pertenecen a la minora con un valor de 0%
respecto al total de trfico monitoreado, situacin semejante sucede
con el puerto 443 que representa al protocolo https de los hosts
seleccionados.
187
Grfico 4.14 Histograma de protocolos y Distribucin de frecuencias relativas acumuladas de los
datos monitoreados.
En el grfico 4.14 representa una herramienta que permite mostrar que ha
existido una gran cantidad de transferencia de datos que oscilan entre 0 y 4 KBps,
esto significa que los usuarios han estado navegando y descargando archivos
pequeos.
Por otro lado las frecuencias a 10, 26 y 43 KBps muestran una descarga de
archivos. Por la magnitud de su frecuencia se concluye que este comportamiento
no fue constante.
La tabla de frecuencia indica los intervalos, la frecuencia relativa y la densidad de
los datos monitoreados, los cuales permiten mostrar con ms detalle los valores
representados en el histograma y el polgono de frecuencias acumuladas.
La frecuencia relativa acumulada indica que hay una gran cantidad de transferencia de datos en el intervalo de 0 a 4 KBps ya
que la pendiente de la recta inclinada es creciente y alcanza un 40% de los promedios de tasa de transferencia calculados del
trfico de Internet monitoreado, y las pendientes crecientes desde ese punto varan levemente lo que significa que no ha
existido una cantidad significativa de transferencia de datos para valores altos de bitrate. El resto de valores de bitrate
corresponden al 60% del total.
Se obtuvo una desviacin estndar del 23,72 KBps con respecto a la media, lo que significa que existe una gran cantidad de transferencia de datos a rfagas y eso se
puede confirmar con los valores de los cuartiles que van desde 0 KBps para el primer cuartil, 8.29 KBps para el segundo y 38.13 KBps en el tercer cuartil, es decir, los
valores de bitrate no se mantienen constantes y se distribuyen aleatoriamente en el rango comprendido por el valor mnimo 0 KBps y el mximo 69.52 KBps.
188
La tabla de estadstica descriptiva permite mostrar que las estaciones de trabajo
durante los dos das de monitoreo han tenido un promedio de descarga del 20.16
KBps; rechazando los datos atpicos al 5% se obtiene el mismo valor de
descarga del 20.16 KBps, esto significa que no han existido valores pico que
distorsionen el valor del promedio.
4.3.2.5. Reconstruccin de historial de la base de datos con lneas.
5
El diagrama permite representar los datos de bitrate cada 20 segundos que se
encuentran almacenados en la base de datos.
Esto permite ayudar a identificar el trfico que existi para las estaciones de
trabajo seleccionadas.
Grfico 4.15 Reconstruccin de historial de la base con lneas de los datos monitoreados.
4.3.2.6. Reconstruccin de historial de la base de datos en pasos
6
El diagrama es una gran herramienta para saber en qu horas del da un host o
varios hosts han utilizado la conexin a Internet y en qu medida.
5
Ver anexo D, seccin D.1.7.1.5
6
Ver anexo D, seccin D.1.7.1.6
Los hosts con IPs 172.31.18.155, 172.31.18.159, 172.31.18.155 y
172.31.18.166 han tenido una actividad alta de trfico en rfagas por el
puerto 80 con respecto a las dems estaciones de trabajo. Esto se sabe
por el color de las etiquetas de identificadoras de la parte inferior y por el
texto emergente que aparece cuando se pasa el mouse por la parte
superior de las lneas
189
Adems el grfico muestra que de 11:00 a 17:30 del da jueves y desde las 9:30
hasta las 13:50 del da viernes horas ha existido una gran cantidad de
transferencia de informacin desde Internet.
Grfico 4.16 Reconstruccin de historial de la base en pasos de los datos monitoreados.
4.3.2.7. Series de tiempo
7
El diagrama permite graficar el bitrate promedio calculado para intervalos de
tiempo regulares.
El anlisis de los datos obtenidos muestra que el host con direccin IP
172.31.18.159 y el host con la IP 172.31.18.161 han tenido una actividad alta por
el puerto 80 con respecto a los dems hosts.
7
Ver anexo D, seccin D.1.7.1.7
Este grfico incluye la escala de tiempo en el formato normal
para facilitar su interpretacin. Al igual que el grfico 4.15 cada
lnea de diferente color representa el trfico para un protocolo o
en este caso un puerto de una estacin de trabajo especfica.
190
Grfico 4.17 Series de tiempo de los datos monitoreados.
4.3.2.8. Series de tiempo en pasos
8
El diagrama permite graficar el bitrate promedio calculado en pasos para
intervalos de tiempo regulares.
El anlisis de los datos muestra que el host con direccin IP 172.31.18.159 y el
host con la IP 172.31.18.161 han tenido una actividad alta de transferencia de
datos por el puerto 80 con respecto a los dems hosts.
8
Ver anexo D, seccin D.1.7.1.8
Cada pico del grfico representa el valor
promedio del trfico para un protocolo o
puerto de un host especfico. En el
presente el valor promedio corresponde
a cada hora del da.
191
Grfico 4.18 Series de tiempo en pasos de los datos monitoreados.
4.3.2.9. DNS reverso y ranking para IPs ms utilizadas
9
El diagrama permite obtener informacin ordenada de la cantidad de bytes
transmitidos y recibidos por cada host que haya seleccionado el usuario, y de la
misma manera realizar la resolucin de nombres para las direcciones IPs ms
utilizadas.
Grfico 4.19 DNS reverso y ranking para IPs ms utilizadas de los datos monitoreados.
9
Ver anexo D, seccin D.1.7.1.9
Para evitar cualquier confusin de
la interpretacin de una serie de
tiempo normal, se decidi dibujar
la serie de tiempo usando pasos
para cada valor promedio que
corresponde a un intervalo regular
de tiempo. En este caso por cada
hora.
El texto emergente permite identificar la IP del
servidor externo y la cantidad de bytes enviados o
recibidos (en caso de haber seleccionado trfico
outgoing o incoming respectivamente), para cada
estacin de trabajo seleccionada.
Direccin IP externa Id del host en la base, MAC y su direccin IP. Tamao en Bytes
192
En el grfico 4.19 se puede apreciar que los hosts con direcciones IP
172.31.18.159 y 172.31.18.161 han generado una considerable descarga de
datos, estos a su vez se han conectado a varios servidores, siendo el de mayor
transferencia de bytes el que posee la direccin IP 199.7.71.190 como se muestra
en la parte superior de la tabla.
Adems el software permite realizar la resolucin inversa para todas las
direcciones externas monitoreadas y as dar a conocer su nombre de dominio con
las cuales tuvieron actividad de transferencia de datos. Para la direccin IP
199.7.71.190 su dominio es CRL.VERISIGN.NET.
4.4. ESCENARIOS DE DETECCIN DE ANOMALAS EN EL USO
DEL SERVICIO DE INTERNET
En esta seccin se presentarn varios escenarios los cuales permitirn mostrar la
utilidad del proyecto de titulacin como una herramienta para la deteccin de
anomalas en el uso del servicio de Internet.
4.4.1. Primer Escenario Deteccin de descargas no autorizadas.
Con los datos obtenidos del monitoreo de trfico de Internet se requiere saber si
existe algn comportamiento inusual como pueden ser descargas directas de una
o de varias estaciones de trabajo, las cuales ocasionan que el acceso a Internet
sea lento.
Para este tipo de anlisis se requiere utilizar la herramienta Histograma y
distribucin de frecuencias acumuladas de protocolos de trfico de Internet .
Se asigna la fecha y las horas en donde existi utilizacin de acceso a Internet
para todas las estaciones de trabajo.
Grfico 4.20 Cuadro para seleccin de hosts, puertos e intervalo de tiempo para la consulta a la
base de datos (Histograma y distribucin de frecuencias acumuladas de protocolos de trfico de
Internet).
193
Grfico 4.21 Histograma de protocolos de trfico de Internet para el escenario 1.
Como se muestra en el grfico 4.21 podemos determinar que ha existido una
considerable cantidad de transferencia de datos en el rango del 0 a 8 [KBps], lo
cual es normal porque es el valor correspondiente a las conexiones que se
realizan al navegar por Internet.
El valor de densidad de frecuencia en el rango de 16-24[KBps] es
aproximadamente la mitad del valor del rango de 0-8[KBps] y de la misma manera
corresponde a conexiones que se realizan al navegar por Internet.
Se observa que el valor en el rango de 40-48[KBps] es aproximadamente similar
al valor del rango de 0-8[KBps], adems se puede deducir que este valor de
densidad de frecuencia corresponde a descargas de datos pequeas o pginas
web que contengas videos, fotos de considerable tamao.
Un dato relevante son los valores de los rangos de 88-96[KBps], 112-120[KBps],
120-128[KBps], 128-136 [KBps], estos datos corresponden a rangos altos de tasa
de transferencia y tienen una considerable densidad de frecuencia por lo que se
puede concluir que pertenecen a descargas de archivos.
Para confirmar la deduccin anterior se visualiza el grfico 4.22; este muestra que
para el valor de del rango de 40-48[KBps] corresponde el 30% de los valores de
bitrate calculados del trfico de Internet, y el rango de 112-136[KBps] corresponde
el 30% del mismo trfico.
Grfico 4.22 Polgono de frecuencias relativas acumuladas de protocolos de trfico de Internet
para el escenario 1.
Valores mximos de densidad de frecuencia
30% de los valores
30% de los valores
Porcentajes
194
Estos valores determinan que el 60% del trfico total corresponden a descargas
de datos, esto significara una anomala, dependiendo de las polticas de la
empresa.
10
Spam: Correo electrnico no deseado.
11
Gusano informtico: Es un tipo de software que tiene como objetivo infiltrarse o daar una computadora sin el
consentimiento de su propietario.
195
Se asigna la fecha y las horas en donde existi utilizacin de acceso a Internet
para todas las estaciones de trabajo.
Grfico 4.25 Cuadro para seleccin de hosts, puertos e intervalo de tiempo para la consulta a la
base de datos incoming (Tasa de transferencia promedio de uso de Internet).
196
P
d
p
h
S
In
P
d
e
e
Se
nt
G
Po
e
er
er
e
te
Gr
or
e
rio
rr
a
er
r
r
ti
o
ra
a
rn
f
e
ie
d
am
as
ne
fic
el
em
do
m
si
e
co
llo
m
os
mi
g
et
o
o
mp
s
e
gn
p
4
o
p
en
na
p
4.
s
o
r
nt
a
a
3
se
o
re
ta
a
ar
32
e
d
eg
a
l
ra
2
a
du
g
a
a
C
a
u
u
S
a
la
Cu
n
ra
G
ul
S
f
a
ua
na
a
Gr
a
e
fe
a
ad
al
n
r
ar
er
ec
e
dr
liz
nt
f
re
rie
c
es
ro
z
te
fic
es
e
h
st
o
za
e
co
s
s
ha
ta
p
b
ar
lo
o
s
a
ac
pa
b
r
o
4
d
d
c
ar
a
os
4.
de
de
y
i
ra
as
l
s
3
e
e
y
n
a
se
a
d
33
el
t
l
n
s
e d
a
do
3 T
tie
a
d
e
d
t
os
T
d
e
as
d
ele
e
ta
s
Tr
d
m
s
de
ec
e d
as
d
f
a
m
e
cc
da
sa
d
fi
a.
p
h
t
ci
a
a
a
c
.
po
ho
ra
i
to
a
o
P
o
or
a
n
os
d
as
o S
P
e
ra
ab
n
s
de
s
S
Pa
e
as
ba
d
in
e
d
e
ar
n
s
aj
de
n
t
de
er
ra
n
s
jo
e
c
tr
e
ie
a
p
e
o
h
o
ra
m
es
pa
en
c
ho
om
an
m
s
e
as
n
co
os
m
ns
mo
d
es
s
n
o
sts
in
s
o
de
s
o
d
on
s
ng
sfe
n
e
te
os
do
n
,
g
e
ni
ti
e
s
o
d
p
(S
er
to
e
e
.
on
di
pu
S
re
o
em
t
nd
ir
ue
Se
en
re
m
V
ti
d
re
er
er
nc
e
p
Va
su
p
e
ec
rto
rie
c
eo
o
alor
ugie
po
e
cc
o
es
ia
o.
o e
res
ere
o
e
c
s
s
a
.
e
s p
en
e
i
e
d
d
n
pro
un
d
x
n
e
de
d
p
om
na
de
xis
n
in
e
de
pa
ed
de
e
s
nt
ti
e
a
dio
esc
ti
IP
te
ie
e
s
po
ca
a
i
P
er
em
es
o
or
rga
an
P
rv
m
s
os
ho
a d
n
1
va
p
ste
s p
ora
de
la
7
al
po
e
pa
a al
ar
l
a
72
o
o
e
a
lto
rch
is
2
o d
e
h
ra
s q
hiv
si
u
.3
de
en
ho
a
qu
os
is
ut
3
e
n p
os
e
e
s.
s
til
1
t
p
s
el
liz
1.
tie
a
t
e
s
z
1
em
as
e
es
se
za
18
m
so
e
sc
e
ac
8
mp
os
n
ce
ci
.1
po
s)
n
e
r
i
1
o
u
n
re
n
5
p
un
a
eq
n
59
pa
n
ar
qu
9.
ar
io
u
d
.
ra
g
o
ie
de
a
gr
4
e
e
la
r
4.
re
l
a
f
e
s
c
fic
e
s
co
c
u
se
on
o
u
er
ns
o
ti
rv
su
d
il
vi
ul
de
iz
c
lta
e
za
cio
a
a
o
a
s
2
r
o
a
se
20
d
la
er
0
l
d
a
ri
2
a
e
e
2
a
e
e
203
Como se mostr en el grfico 4.33 en el da jueves y viernes en el lapso
comprendido entre las 11h:00 y 14h:00 existe mayor actividad correspondiente al
puerto 80 de la estacin de trabajo del ejemplo. Esto demuestra que existe un
patrn de comportamiento comn en ambos das del monitoreo que resulta en
una actividad ilcita de descargas no autorizadas.
El administrador de red debe aplicar el reglamento interno de la institucin o
empresa para tomar las respectivas acciones correctivas.
4.5. ANLISIS DE COSTOS DE DESARROLLO
Aqu se detallarn los costos involucrados para el desarrollo del proyecto.
Para una mejor comprensin de los elementos involucrados se los ha subdivido
en los siguientes puntos:
Costos del diseo e implementacin.
Costo de equipos activos para pruebas.
Costo de software.
Costos indirectos.
4.5.1. Costos de diseo e implementacin
12
http://www.bumeran.com.ec/ 2010-06-03
204
A continuacin el clculo del costo monetario de los programadores:
Costo Programador = ((7.5 dlares americanos x 8 horas x 20 das al mes)) x 11
meses + (7.5 dlares americanos x 8 horas x 10 das).
Costo Programadores Total = 13800 dlares americanos x 2 programadores.
Costo Programadores Total (Desarrollo del software)= 26400 dlares americanos.
Costo de equipos activos para pruebas
En este tipo de costo se incluyen los equipos necesarios para la realizacin de
pruebas durante el desarrollo, con la finalidad de depurar errores y comprobar el
correcto funcionamiento del software.
tem Descripcin Valor (dlares americanos)
Computadora
escritorio
Procesador: 2.66 GHz Core2duo,
Memoria RAM: 3 GB
Disco Duro: 500 GB
Interfaces de Red: 2 dispositivos
$ 800
Laptop Sony
Vaio
Procesador: 2.3 GHz Core2duo,
Memoria RAM: 3 GB
Disco Duro: 250 GB
Interfaces de Red: 1 dispositivos
Sistema Operativo Windows 7
$ 950
Impresora Impresora Laser Monocromtica Hp Laserjet P2035n $419
Switch D-link Ethernet , No administrable, 8 puertos , 100 MBps. $ 20
Hub Ethernet ,8 Puertos , 10 MBps $ 25
Patch Cords 2 metros certificados, categora 6, marca Qpcom,
conectores rj45
$ 6 c/u x 10 unidades =
$60
Total $ 2274
Tabla 4.3 Costo de equipos activos para pruebas.
205
4.5.2. Costos de software
Para el desarrollo del proyecto se requiri los siguientes paquetes de software.
tem Descripcin Valor (dlares
americanos)
Sistema Operativo Licencia Windows XP SP3 Professional OEM
Original Espaol
$100
Netbeans 6.5 Software de desarrollo Gratuito
Adobe Flash Player
Active 10X
Software para necesario para usar aplicaciones Gratuito
Java SE Development
Kit 6 update 5
Necesario para el software de desarrollo y
aplicaciones
Gratuito
Microsoft Office Home
and Student 2007
Ofimtica $149
Bibliotecas para
desarrollo de software.
Mysql-Connector 5.1.7, Mysql-Connector MXJ 5.0.9,
Jsc1.0, Substance, Jfreechart 1.0.13, Native Swing.
Gratuito
Mozilla Firefox 3.0.19 Browser Gratuito
Total $249
Tabla 4.4 Costos de Software.
4.5.3. Costos Indirectos
A continuacin se detallan los servicios bsicos que fueron utilizados.
Servicio tem Valor(dlares americanos)
Electricidad Requerido para los equipos $22
Agua Servicio bsico $27
Telfono Requerido para la conexin a Internet $6.25 x 1.12
(pensin bsica residencial)
Internet Fast Boy (Banda Ancha)(512KBps) $25 x 1.12
Imprevistos Imprevistos $120
Total $204
Tabla 4.5 Costos Indirectos
4.5.4. Costo Total
El costo total resultante para la creacin del software es:
Costo Valor (dlares americanos)
Programadores $ 26400
Equipos Activos $ 2274
Software $ 249
Indirectos $ 204 x 11(meses)=$2244
Total $ 31167
Tabla 4.6 Costo total del software
206
Hay que aclarar que este es el costo de la implementacin, mas no es el precio de
venta al pblico. Para tener una referencia del precio de venta al pblico se
estiman una acogida similar al producto Colasoft Capsa 7.1 que posee ms 5000
clientes alrededor de 80 pases
13
. De acuerdo a este dato se calcular el precio
de produccin para el mnimo de clientes que adquirieron el software Colasoft
Capsa a un precio de $549 dlares americanos por licencia (una estacin de
trabajo)
14
.
Precio de venta al pblico referencial
PVP (Proyecto de Titulacin) = 31167 dlares americanos / 5000 clientes
potenciales.
Nota: Los clientes potenciales corresponden a la cantidad de clientes que la
empresa Colasoft citada anteriormente tiene a nivel mundial.
PVP (Proyecto de Titulacin) = 6.25 dlares americanos por licencia (una estacin
de trabajo)
Por lo tanto:
Producto Valor precio por licencia
(dlares americanos)
(Una estacin de trabajo)
Proyecto de titulacin $ 6.25
Colasoft Capsa 7.1 $ 549
Wireshark $ 0
Tabla 4.7 Precio de venta al pblico
Este sera el precio y la cantidad de clientes necesarios para recuperar la
inversin y el desarrollo del proyecto. Un anlisis ms profundo sobre este
aspecto est fuera del alcance y los objetivos del proyecto.
13
http://www.colasoft.com/company/about.php Visitado: 2010-06-24
14
http://www.colasoft.com/purchase/capsaentprice.php Visitado: 2010-06-24
207
CAPTULO 5
5. CONCLUSIONES Y RECOMENDACIONES
5.1. CONCLUSIONES
Mediante la utilizacin del histograma de frecuencias y el resumen de
Estadstica Descriptiva para el anlisis de los datos capturados y almacenados
en la base de datos, se hace evidente la naturaleza a rfagas del trfico de
Internet ya que los instantes en que se envan y reciben los datos son
impredecibles y el tamao de estos bloques de informacin es variable. El
principal indicador es la desviacin estndar ya que indica cuan constante han
sido los valores promedio de tasa de transferencia. Si el trfico fuera
invariable, el valor de la desviacin estndar tendera a cero y las barras del
histograma se reduciran a una sola que corresponde al intervalo de dicho
valor.
La diferenciacin de trfico de Internet es una caracterstica importante para
un administrador de red ya que a travs de ella puede acceder a informacin
ms detallada y obtener criterios ms acertados sobre el comportamiento de la
intranet (particularmente de la conexin a Internet). Esto permitir tener un
mejor control sobre este servicio.
Java como lenguaje de programacin orientado a objetos incluye las
facilidades para desarrollar soluciones de software basadas en conceptos
estadsticos, que son distribuidas en libreras especializadas de acceso
gratuito y de alcance didctico y empresarial. Se suma adems la
potencialidad de la orientacin a objetos por su carcter intuitivo, modular y
reutilizable.
JnetPcap es una gran herramienta para la programacin de aplicaciones
orientadas a redes de comunicaciones basadas en Ethernet, pues por medio
de su API es posible utilizar desde el entorno de Java todas las
funcionalidades de WinPcap (Windows) y libpcap (Unix) para la captura,
establecimiento de filtros y decodificacin de paquetes de una manera mucho
208
ms fcil y productiva, usando para ello un lenguaje de programacin
orientado a objetos.
JFreeChart facilita la generacin de grficos de gran calidad informativa y
esttica. La gratuidad de este paquete permite desarrollar aplicaciones en una
fraccin del tiempo que tomara implementar los grficos por cuenta propia de
los programadores. Esto claro est, una vez que se entienda la estructura de
clases del API descrito en su javadoc.
Para desarrollar los mtodos y funcionalidades relativas al clculo de bitrate,
las opciones para los filtros del sniffer (protocolos y puertos), organizacin de
los paquetes decodificados tomando en cuenta los campos de las cabeceras
de protocolo es necesario aplicar los conocimientos relativos a protocolos de
redes de comunicaciones (redes LAN y TCP/IP) y teora de la informacin de
manera conjunta con los conocimientos y herramientas de la programacin
orientada a objetos. Sin un respaldo firme de conocimientos sobre estos
aspectos claves de las redes de informacin, resulta extremadamente difcil
para un programador sin instruccin en estas reas, desarrollar aplicaciones
como el actual proyecto de titulacin.
La resolucin de problemas no previstos en el momento de diseo del
desarrollo de software requiere investigar sobre la marcha en busca de
mecanismos que permitan resolver eficientemente dicho problema. Este fue el
caso del requerimiento de resolucin inversa de nombres, donde fue necesario
investigar ms a fondo sobre el servicio de resolucin de nombres de dominio
DNS a travs de implementaciones incluidas en el API de Java.
Los resultados obtenidos en las pruebas del proyecto realizadas en el
Laboratorio de Software, demostraron la estabilidad de la aplicacin
desarrollada para el proceso de captura de paquetes y almacenamiento en la
base de datos interna. De la misma forma se verific el proceso de
recuperacin de estos datos para la generacin de los grficos y resmenes
de datos.
209
Se concluye que el manejo a fondo del IDE (Integrated development
environment) de desarrollo, contribuye en gran medida a mejorar y depurar el
cdigo fuente, para hacerlo ms eficiente tras la deteccin y correccin de
errores.
La realizacin de pruebas constantes y reajustes en el cdigo fuente durante
la implementacin de funcionalidades especficas, permite optimizar y depurar
errores antes de integrar estas pequeas secciones al proyecto principal. De
esta manera se evita la depuracin de todo el cdigo fuente ahorrando tiempo
y disminuyendo la complejidad en el desarrollo del proyecto.
Existen aplicaciones gratuitas y comerciales enfocadas al anlisis de paquetes
de red e incluso muy complejas que ofrecen un abanico impresionante de
opciones avanzadas que deben estar acompaadas del conocimiento
necesario por el usuario del programa. A diferencia de estos el presente
proyecto realiza el anlisis de los paquetes capturados orientado
exclusivamente a obtener resmenes y grficos descriptivos que ayuden de
manera visual e intuitiva a un administrador de red con conocimientos bsicos
en la toma de decisiones restrictivas o correctivas frente a un problema
particular o uso inadecuado del servicio de Internet.
El programar en un equipo de dos personas con una sola computadora
permite obtener mejores resultados y un cdigo de mejor calidad al desarrollar
cualquier tipo de software. El cdigo se vuelve ms robusto al ser discutido y
revisado en conjunto para detectar errores.
Mantener un representante del cliente colaborando conjuntamente con el
equipo de desarrollo, garantiza evaluar los requerimientos del software con
ms precisin, ayudando a identificar las prioridades fundamentales y en
consecuencia disminuir el tiempo y costo de desarrollo, as como la cantidad
de documentacin.
210
Para obtener un mejor control y adaptabilidad a cambios de requisitos por
parte del cliente, es necesario realizar continuas pruebas en pequeos
mdulos funcionales que se mejoran paulatinamente y de forma incremental
antes de anexarlos al proyecto principal, depurando todos los errores
existentes previos a la implementacin de una nueva funcionalidad.
5.2. RECOMENDACIONES
Se recomienda a los profesionales de las redes de informacin incursionar en
el campo de la programacin para desarrollar aplicaciones personalizadas que
resuelvan inconvenientes propios de la red administrada, pues la mayora de
programas existentes son enfocados a problemas de carcter general.
El uso de herramientas de monitoreo y administracin de trfico de red es muy
til, siempre y cuando el administrador no las subutilice y se preocupe por
capacitarse continuamente en la toma decisiones preventivas y correctivas,
con el objetivo de optimizar el uso de los recursos disponibles.
Se recomienda a todos los desarrollares de software que antes de usar una
biblioteca especializada se lea cuidadosamente la documentacin existente
para determinar el alcance y la utilidad que aportara al desarrollo de la
aplicacin para no subutilizar su capacidad.
Se recomienda al programador ser paciente y persistente para alcanzar los
objetivos planteados en cualquier proyecto de desarrollo de software. Esto es
vlido tambin como principio fundamental para tener xito profesional.
Se recomienda al programador tener entereza frente a los problemas no
planificados que surgen durante la implementacin de cualquier proyecto de
desarrollo de software.
Se recomienda tomar en cuenta todas las ideas sugeridas en el proceso de
diseo e implementacin, ya que la mejor solucin puede surgir a partir de
cualquiera de estas.
211
Se recomienda a los estudiantes que deseen continuar con este proyecto de
titulacin, trabajar en la mejora de la apariencia y la amigabilidad del software
con herramientas como adobe flash. La cual por su constante evolucin
permite mejorar la representacin grfica de los diagramas obtenidos a partir
de los valores tratados.
Para futuras mejoras el almacenamiento de datos puede utilizar una tcnica
ms avanzada y compleja como es Java Transaction API, la cual permite tener
un manejador de transacciones interactuando con JDBC y la aplicacin de
manera recursiva.
Se recomienda poner un campo del tipo nombre en la base de datos que
permita identificar las IPs de los hosts monitoreados que acceden a Internet.
Debe realizarse un previo estudio que permita mostrar un ptimo rendimiento
al realizar las consultas con grandes volmenes de datos al implementar este
identificador.
Para aumentar la funcionalidad del programa se recomienda verificar la
viabilidad de integrar los mdulos de captura y anlisis, sin afectar al
rendimiento y la estabilidad de los mismos.
212
REFERENCIAS BIBLIOGRFICAS
Libros
1. BARCLAY, K; SAVAGE, J; Objetc-Oriented Design with UML and Java.
Primera Edicin. Editorial Elsevier Butterworth-Heinemann. Gran Bretaa.
2004.
2. CAPA SANTOS, Holger; Modelacin de Series Temporales. Primera
Edicin. Escuela Politcnica Nacional. Quito. 2007.
3. DEITEL, Harvey M.; DEITEL, Paul J; Cmo programar en Java. Quinta
Edicin. Editorial Pearson.
4. DELAP, Scott; Desktop Java Live. Primera Edicin. Editorial SourceBeat.
Colorado. 2005.
5. NAVIDI, William; Estadstica para ingenieros; Traduccin de la Primera
Edicin. Editorial McGraw-Hill. Mxico. 2006.
6. MySQL; Manual de referencia de MySQL 5.0. Revisin 357. 30-11-2006.
7. MySQL; MySQL Connector/MXJ. Revision 15704. 2009-07-16.
8. Object Management Group (OMG); OMG Unified Modeling LanguageTM
(OMG UML), Superstructure. Version 2.2. 2009-02-22.
9. SOMMERVILLE, Ian; Ingeniera del software. Sptima edicin. Editorial
Addison Wesley. Espaa. 2005.
10. Spiegel, Murray R.; Stephens, Larry J.; Estadstica. Tercera Edicin. Editorial
McGraw-Hill. Mxico. 2002.
11. STALLINGS, William; Comunicaciones y Redes de Computadores. Sexta
Edicin. Prentice Hall.
12. STEVENS, Perdita; POOLEY, Rob; Utilizacin de UML en Ingeniera del
Software con Objetos y Componentes. Traduccin de la Primera Edicin.
Editorial Addison Wesley. Espaa, 2002.
13. Sun Microsystems, Inc.; Java Naming and Directory Interface
TM
- Service
Provider Interface (JNDI SPI). v1.3. JNDI 1.2/Java
TM
2 Platform. 1999.
14. Sun Microsystems, Inc.; Java Naming and Directory Interface
TM
-
Application Programming Interface (JNDI API). v1.3. JNDI 1.2/Java
TM
2
Platform, Standard Edition. 1999.
213
Direcciones Electrnicas
1. http://www.winpcap.org/
Desde: ao 1999, Visitado: ao 2009.
2. http://jnetpcap.com/
Desde: ao 2005, Visitado: ao 2009.
3. http://www.ietf.org/
Visitado: ao 2009.
4. http://java.sun.com/jndi
Visitado: ao 2010.
5. http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html
Desde: ao 2002, Visitado: ao 2009.
6. http://java.sun.com/docs/books/tutorial/uiswing/components/index.html
Desde: ao 1995, Visitado: ao 2009.
7. http://www.jsc.nildram.co.uk/
Desde: ao 2005, Visitado: ao 2009.
8. http://dev.mysql.com/doc/refman/5.0/es/introduction.html
Desde: ao 1997, Visitado: ao 2009.
9. http://www.jfree.org/jfreechart/
Desde: ao 2005, Visitado: ao 2010.
10. http://djproject.sourceforge.net/ns/
Desde: ao 2009, Visitado: ao 2010.
11. http://www.toedter.com/
Desde: ao 2009, Visitado: ao 2010.
12. http://netbeans.org/
Desde: ao 2000, Visitado: ao 2009.
13. http://www.omg.org/spec/UML/2.2/
Desde: ao 1997, Visitado: ao 2009.
14. http://es.wikipedia.org/wiki/Domain_Name_System
Desde: ao 2010, Visitado: ao 2010.
15. http://en.wikipedia.org/wiki/Reverse_DNS_lookup
Desde: ao 2010, Visitado: ao 2010.
16. http://www.altova.com/umodel.html
Desde: ao 2005, Visitado: ao 2010.
214
Documentacin
Javadoc de JDK 1.6.0_05
Javadoc de jNetPcap 1.2.rc5
Javadoc de JSC 1.0
Javadoc de JFreeChart 1.0.13
Javadoc de NativeSwing (DJNativeSwing-SWT-0-9-9-20100221)
Javadoc de JCalendar v1.2.2
Documentacin de WinPcap 4.0.2
215
ANEXOS