Está en la página 1de 243

La versin digital de esta tesis est protegida por la Ley de Derechos de Autor del Ecuador.

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

PRESENTACIN ................................................................... XXIV


RESUMEN ................................................................................ XXV
CAPTULO 1 ................................................................................... 1
1. INTRODUCCIN ................................................................... 1
1.1. ESTADSTICA DESCRIPTIVA
[] []
................................................. 1
1.1.1. CONCEPTOS BSICOS .............................................................................. 2
1.1.1.1. Poblacin ................................................................................................. 2
1.1.1.2. Muestra .................................................................................................... 3
1.1.1.2.1. Muestra aleatoria simple ...................................................................... 3
1.1.1.2.2. Muestra de conveniencia ...................................................................... 4
1.1.1.3. Independencia ......................................................................................... 4
1.1.2. MEDIDAS DE TENDENCIA CENTRAL .................................................. 5
1.1.2.1. Media muestral ....................................................................................... 5
1.1.2.1.1. Datos atpicos ....................................................................................... 5
1.1.2.1.2. Media recortada ................................................................................... 6
1.1.2.2. Mediana muestral ................................................................................... 6
1.1.2.3. Moda ........................................................................................................ 6
1.1.2.4. Cuartiles, Deciles y Percentiles .............................................................. 7
1.1.3. MEDIDAS DE DISPERSIN ...................................................................... 7
1.1.3.1. Rango ....................................................................................................... 7
1.1.3.2. Desviacin media .................................................................................... 8
1.1.3.3. Desviacin estndar ................................................................................ 8
1.1.3.4. Varianza muestral .................................................................................. 9
1.1.4. RESMENES GRFICOS .......................................................................... 9
1.1.4.1. Clases o Categoras ................................................................................. 9
1.1.4.2. Tabla de frecuencias ............................................................................. 10
1.1.4.2.1. Frecuencia absoluta. .......................................................................... 10
1.1.4.2.2. Frecuencia relativa. ........................................................................... 10
1.1.4.2.3. Frecuencias acumuladas. ................................................................... 11
1.1.4.3. Histogramas .......................................................................................... 11
1.1.4.3.1. Tipos de Histogramas ......................................................................... 12
VI

1.2. ESTADSTICA INFERENCIAL .................................................... 14
1.2.1. SERIES DE TIEMPO ................................................................................. 14
1.2.1.1. Componentes de las Series de Tiempo ................................................ 15
1.2.1.2. Anlisis de Series de Tiempo ............................................................... 16
1.3. PROTOCOLOS DEL MODELO DE REFERENCIA TCP/IP ... 16
1.3.1. PROTOCOLOS DE CAPA INTERNET ................................................... 17
1.3.1.1. Protocolo IP ........................................................................................... 17
1.3.1.2. Direccionamiento IP ............................................................................. 17
1.3.1.2.1. Clases de direcciones IP .................................................................... 19
1.3.1.2.2. Direcciones reservadas para intranet ................................................ 20
1.3.2. PROTOCOLOS DE CAPA TRANSPORTE ............................................ 20
1.3.2.1. Protocolo TCP ....................................................................................... 21
1.3.2.2. Protocolo UDP ...................................................................................... 23
1.3.2.3. Puertos bien conocidos (WELL KNOWN PORT NUMBERS) ....... 24
1.3.3. PROTOCOLOS DE CAPA APLICACIN .............................................. 25
1.4. API DE PROGRAMACIN ORIENTADO A CAPTURA DE
PAQUETES Y ANLISIS DE RED ........................................................ 26
1.4.1. WINPCAP
[] []
............................................................................................... 27
1.4.1.1. Mdulos WinPcap ................................................................................ 28
1.4.2. JNETPCAP .................................................................................................. 29
1.4.2.1. Estructura de jNetPcap ........................................................................ 30
1.5. PLATAFORMA DE DESARROLLO DE SOFTWARE ............. 32
1.5.1. JAVA
[]
.......................................................................................................... 32
1.5.1.1. JAVARUNTIME ENVIROMENT (JRE)
[]
....................................... 33
1.5.1.2. NETBEANS
[]
........................................................................................ 34
1.5.1.3. JSC 1.0
[]
................................................................................................ 35
1.5.2. MYSQL
[]
....................................................................................................... 36
1.5.3. JFREECHART
[]
.......................................................................................... 37
1.5.4. NATIVE SWING
[]
....................................................................................... 38
1.5.5. JCALENDAR
[]
............................................................................................ 38
CAPTULO 2 ................................................................................. 39
2. REQUERIMIENTOS ........................................................... 39
2.1. Descripcin general .......................................................................... 40
2.1.1. Perspectiva del Producto ............................................................................. 40
2.1.2. Funciones del producto ............................................................................... 40
VII

2.1.3. Caractersticas del usuario .......................................................................... 41
2.1.4. Restricciones generales ................................................................................ 41
2.1.5. Suposiciones.................................................................................................. 41
2.2. Requerimientos especficos .............................................................. 42
2.2.1. Especificacin de requerimientos del sistema ........................................... 42
2.2.2. Requerimientos del Producto ..................................................................... 45
CAPTULO 3 ................................................................................. 46
3. DESARROLLO DEL SOFTWARE .................................... 46
3.1. DIAGRAMA DE CASOS DE USO ................................................ 46
3.2. DESCRIPCIN GENERAL DEL SISTEMA ............................... 47
3.3. BASE DE DATOS COMO SOLUCIN PARA
ALMACENAMIENTO DE INFORMACIN DE TRFICO DE
INTERNET EN DISCO ............................................................................ 47
3.3.1. DISEO DE LA BASE DE DATOS .......................................................... 48
3.3.1.1. Descripcin del modelo ........................................................................ 49
3.3.1.2. Procedimientos almacenados ............................................................... 51
3.4. DESCRIPCIN DE LA BIBLIOTECA PRINCIPAL DE
CLASES ...................................................................................................... 52
3.4.1. PAQUETES DE CLASES Y SU RELACIN CON EL DIAGRAMA DE
CASOS DE USO ......................................................................................................... 52
3.4.2. DESCRIPCIN DE LOS PAQUETES DE CLASES .............................. 53
3.4.2.1. Paquete database .................................................................................. 53
3.4.2.2. Paquete dataquery ................................................................................ 54
3.4.2.3. Paquete datacapture ............................................................................. 54
3.4.2.4. Paquete descriptivestatistics ................................................................ 54
3.4.2.5. Paquete dinamicstructures .................................................................. 55
3.4.2.6. Paquete flashVideo ............................................................................... 55
3.4.2.7. Paquete graphicsDialogs ...................................................................... 55
3.4.2.8. Paquete lookandfeel ............................................................................. 57
3.4.2.9. Paquete importexportdatabase ........................................................... 57
3.4.2.10. Paquete minibrowser ........................................................................... 57
3.4.2.11. Paquete newhostdetected ..................................................................... 58
3.4.2.12. Paquete realtimegraphs ....................................................................... 58
3.4.2.13. Paquete reversednsresolver ................................................................. 59
3.4.2.14. Paquete save .......................................................................................... 59
3.4.2.15. Paquete sniffer ...................................................................................... 60
VIII

3.4.2.16. Paquete statisticalgraphics .................................................................. 60
3.4.2.17. Paquete sugerencia ............................................................................... 61
3.4.3. DESCRIPCIN DE CLASES Y DIAGRAMAS DE ACTIVIDAD ........ 61
3.4.3.1. Clases del paquete database ................................................................ 61
3.4.3.1.1. Clase Database ................................................................................... 61
3.4.3.1.2. Clase PrintColumnTypes .................................................................... 62
3.4.3.1.3. Clase QueryAndUpdateDatabase ...................................................... 63
3.4.3.2. Clases del paquete dataquery .............................................................. 63
3.4.3.2.1. Clase QueryGetter .............................................................................. 63
3.4.3.2.2. Clase SqlEntry .................................................................................... 64
3.4.3.3. Clases del paquete datacapture ........................................................... 64
3.4.3.3.1. Clase CustomizedPcapTask ............................................................... 64
3.4.3.3.2. Clase DataCaptureMethod ................................................................. 65
3.4.3.3.3. Clase DataCaptureTrafficOrder ........................................................ 67
3.4.3.3.4. Clase OpenUpDevice ......................................................................... 68
3.4.3.3.5. Clase PacketDecoder ......................................................................... 69
3.4.3.3.6. Clase TrafficDataCreator .................................................................. 69
3.4.3.4. Clases del paquete descriptivestatistics .............................................. 71
3.4.3.4.1. Clase MeanVarExtendedAndOrderStatistics ..................................... 71
3.4.3.5. Clases del paquete dinamicstructures ................................................ 71
3.4.3.5.1. Clase DeviceLocalDiscovery.............................................................. 71
3.4.3.5.2. Clase GeneralTraffic .......................................................................... 72
3.4.3.5.3. Clase HostInfo .................................................................................... 72
3.4.3.5.4. Clase HostTraffic ............................................................................... 72
3.4.3.5.5. Clase MacIPandLong ......................................................................... 74
3.4.3.5.6. Clase ProtocolTrafficByConnection .................................................. 74
3.4.3.6. Clases del paquete flashVideo ............................................................. 75
3.4.3.6.1. Clase FlashAnimation ........................................................................ 75
3.4.3.6.2. Clase Video ......................................................................................... 75
3.4.3.7. Clases del paquete graphicsDialogs .................................................... 75
3.4.3.7.1. Clase DialogoDeOpciones ................................................................. 75
3.4.3.7.2. Clase OpcionesHostAndPortEntry ..................................................... 78
3.4.3.7.3. Clase OpcionesBitratevsTiempoProtocolo ........................................ 79
3.4.3.7.4. Clase OpcionesBitratevsTiempoProtocoloPasos ............................... 80
3.4.3.7.5. Clase OpcionesTimeSeriesDatasetCreator ........................................ 80
3.4.3.7.6. Clase OpcionesSeriesTiempoProtocolos ............................................ 80
IX

3.4.3.7.7. Clase OpcionesPasosPromedioProtocolos ........................................ 81
3.4.3.7.8. Clase OpcionesPorcentajeGraficoPastelBase ................................... 82
3.4.3.7.9. Clase OpcionesPorcentajeGraficoPastel2D ...................................... 82
3.4.3.7.10. Clase OpcionesPorcentajeGraficoPastel3D .................................... 83
3.4.3.7.11. Clase OpcionesHistogramaTraficoInternet ..................................... 83
3.4.3.7.12. Clase OpcionesGraficoBitratePromedio .......................................... 84
3.4.3.7.13. Clase OpcionesDNSReverse ............................................................. 84
3.4.3.8. Clases del paquete importexportdatabase .......................................... 85
3.4.3.8.1. Clase FolderZiper .............................................................................. 85
3.4.3.8.2. Clase Unzip ........................................................................................ 85
3.4.3.8.3. Clase ImportFileChooser ................................................................... 85
3.4.3.8.4. Clase ExportFileChooser ................................................................... 86
3.4.3.9. Clases del paquete lookandfeel ............................................................ 86
3.4.3.9.1. Clase LookAndFeelSelector ............................................................... 86
3.4.3.9.2. Clase SubstanceSkinComboSelector .................................................. 87
3.4.3.9.3. Clase LoadLookAndFeel .................................................................... 87
3.4.3.10. Clases del paquete minibrowser .......................................................... 88
3.4.3.10.1. Clase Browser .................................................................................. 88
3.4.3.11. Clases del paquete newhostdetected ................................................... 88
3.4.3.11.1. Clase NewHostParameters ............................................................... 88
3.4.3.11.2. Clase NewHost ................................................................................. 89
3.4.3.11.3. Clase NamedVectorHost .................................................................. 89
3.4.3.11.4. Clase CheckBoxNodeRenderer ........................................................ 90
3.4.3.11.5. Clase CheckBoxNodeHost ................................................................ 90
3.4.3.11.6. Clase CheckBoxNodeEditor ............................................................. 91
3.4.3.12. Clases del paquete realtimegraphs...................................................... 91
3.4.3.12.1. Clase CustomizedPolyline ................................................................ 91
3.4.3.12.2. Clase RealTimeBitrate ..................................................................... 92
3.4.3.12.3. Clase SystemTrayMonitor ................................................................ 93
3.4.3.13. Clases del paquete reversednsresolver ............................................... 94
3.4.3.13.1. Clase IPTraficInfo ............................................................................ 94
3.4.3.13.2. Clase ReverseDNSComparableEntry ............................................... 94
3.4.3.13.3. Clase ReverseIPListResolution ........................................................ 95
3.4.3.14. Clases del paquete save ........................................................................ 95
3.4.3.14.1. Clase AutoSaveOptionPane ............................................................. 95
3.4.3.14.2. Clase TimerDisplayDialog ............................................................... 96
X

3.4.3.14.3. Clase FileUtils .................................................................................. 96
3.4.3.14.4. Clase AutoSave ................................................................................. 97
3.4.3.14.5. Clase SaveTextFileChooser ............................................................. 97
3.4.3.14.6. Clase SaveImageFileChooser .......................................................... 98
3.4.3.15. Clases del paquete sniffer .................................................................... 98
3.4.3.15.1. Clase SnifferParameters ................................................................... 98
3.4.3.15.2. Clase FilterAction ............................................................................ 99
3.4.3.15.3. Clase SnifferRunnable .................................................................... 100
3.4.3.15.4. Clase SnifferThread ........................................................................ 101
3.4.3.16. Clases del paquete statisticalgraphics ............................................... 102
3.4.3.16.1. Clase HistogramaAndCumulativeFrequencyPolygon .................... 102
3.4.3.16.2. Clase Histograma ........................................................................... 103
3.4.3.16.3. Clase CustomizedPdfPlot ............................................................... 104
3.4.3.16.4. Clase MousePopupListener de CustomizedPdfPlot ....................... 105
3.4.3.16.5. Clase CumulativeFrequencyPolygon ............................................. 106
3.4.3.16.6. Clase CustomizedAxesPlot ............................................................. 106
3.4.3.16.7. Clase MousePopupListener de CustomizedAxesPlot ..................... 107
3.4.3.16.8. Clase TablaDeFrecuenciasPanel ................................................... 107
3.4.3.16.9. Clase TablaDeEstadisticaDescriptiva ............................................ 108
3.4.3.16.10. Clase IPRankingList ..................................................................... 110
3.4.3.16.11. Clase TablaDNSReverse .............................................................. 111
3.4.3.16.12. Clase PromedioBitrateHostSeleccionados ................................... 112
3.4.3.16.13. Clase PortAverageEntry ............................................................... 113
3.4.3.16.14. Clase BitratevsTiempoGraphLineas ............................................ 114
3.4.3.16.15. Clase BitratevsTiempoGraphPasos .............................................. 115
3.4.3.16.16. Clase PercentagePieGraph2D ..................................................... 115
3.4.3.16.17. Clase PercentagePieGraph3D ..................................................... 116
3.4.3.16.18. Clase SerieDeTiempoGraficoLineas ............................................ 117
3.4.3.16.19. Clase SerieDeTiempoGraficoPasos ............................................. 118
3.4.3.17. Clases del paquete sugerencia ........................................................... 119
3.4.3.17.1. Clase HTMLResources ................................................................... 119
3.4.3.17.2. Clase SugerenciaAyuda .................................................................. 119
3.5. DESCRIPCIN DE LA INTERFAZ GRFICA DE CAPTURA
DE PAQUETES ....................................................................................... 120
3.5.1. DESCRIPCIN DE LOS PAQUETES DE CLASES ............................ 120
3.5.2. DESCRIPCIN DE CLASES .................................................................. 121
XI

3.5.2.1. Clase TrafficStatisticsAboutBox ....................................................... 121
3.5.2.2. Clase TrafficStatisticsApp ................................................................. 121
3.5.2.3. Clase TrafficStatisticsView ................................................................ 122
3.5.3. DISEO E IMPLEMENTACIN DE LA INTERFAZ GRFICA
UTILIZANDO EL NETBEANS IDE 6.5 ............................................................... 122
3.6. DESCRIPCIN DE LA INTERFAZ GRFICA DE ANLISIS
ESTADSTICO ........................................................................................ 127
3.6.1. DESCRIPCIN DE LOS PAQUETES DE CLASES ............................ 127
3.6.2. DESCRIPCIN DE CLASES .................................................................. 127
3.6.2.1. Clase QueryStatisticsAboutBox ........................................................ 127
3.6.2.2. Clase QueryStatisticsApp .................................................................. 128
3.6.2.3. Clase StatisticsGraphicsTypesJList .................................................. 128
3.6.2.4. Clase QueryStatisticsView ................................................................. 129
3.6.3. DISEO E IMPLEMENTACIN DE LA INTERFAZ GRFICA
UTILIZANDO EL NETBEANS IDE 6.5 ............................................................... 129
3.7. DESCRIPCIN DE CASOS DE USO ......................................... 131
3.7.1. CASOS DE USO REALIZADOS POR LA APLICACIN TRAFFIC
STATISTICS ............................................................................................................ 131
3.7.2. CASOS DE USO REALIZADOS POR LA APLICACIN QUERY
STATISTICS ............................................................................................................ 134
3.8. DIAGRAMAS DE SECUENCIA Y COLABORACIN ........... 136
3.8.1. TRAFFIC STATISTICS ........................................................................... 136
3.8.2. QUERY STATISTICS .............................................................................. 151
CAPTULO 4 ............................................................................... 173
4. IMPLEMENTACIN DEL PROTOTIPO, PRUEBAS DE
MONITOREO Y ANLISIS DE COSTOS .............................. 173
4.1. DESCRIPCIN DE LOS PAQUETES EJECUTABLES Y LOS
PAQUETES DE BIBLIOTECAS EN LA DISTRIBUCIN FINAL
DEL SOFTWARE DEL PROYECTO DE TITULACIN ................. 173
4.2. COMPARACIN DEL SOFTWARE DESARROLLADO CON
WIRESHARK WIN32-1.2.8 Y COLASOFT CAPSA 7.1 .................... 175
4.2.1. Comparacin de requerimientos mnimos de hardware y software. .... 175
4.2.2. Comparacin de caractersticas afines del software desarrollado con
Wireshark win32-1.2.8 y Colasoft Capsa 7.1 ......................................................... 176
4.3. PRUEBAS DE MONITOREO ...................................................... 177
4.3.1. Captura de paquetes y almacenamiento en la base de datos ................. 179
4.3.2. Anlisis de resultados ................................................................................ 184
XII

4.3.2.1. Tasa de transferencia promedio de uso de Internet ....................... 184
4.3.2.2. Porcentajes de uso de trfico de Internet ........................................ 185
4.3.2.3. Porcentaje de uso de trfico de Internet 3D .................................... 186
4.3.2.4. Histograma y distribucin de frecuencias acumuladas de protocolos
de trfico de Internet ........................................................................................... 186
4.3.2.5. Reconstruccin de historial de la base de datos con lneas. ............ 188
4.3.2.6. Reconstruccin de historial de la base de datos en pasos .............. 188
4.3.2.7. Series de tiempo ................................................................................. 189
4.3.2.8. Series de tiempo en pasos .................................................................. 190
4.3.2.9. DNS reverso y ranking para IPs ms utilizadas ............................. 191
4.4. ESCENARIOS DE DETECCIN DE ANOMALAS EN EL USO
DEL SERVICIO DE INTERNET .......................................................... 192
4.4.1. Primer Escenario Deteccin de descargas no autorizadas. ................. 192
4.4.2. Segundo Escenario Deteccin de posibles envos de spam o replicacin
de gusanos informticos. .......................................................................................... 194
4.4.3. Tercer Escenario Direcciones IP sospechosas. ..................................... 199
4.4.4. Cuarto Escenario Deteccin de patrones de comportamiento. ........... 201
4.5. ANLISIS DE COSTOS DE DESARROLLO ............................ 203
4.5.1. Costos de diseo e implementacin .......................................................... 203
4.5.2. Costos de software ..................................................................................... 205
4.5.3. Costos Indirectos ........................................................................................ 205
4.5.4. Costo Total ................................................................................................. 205
CAPTULO 5 ............................................................................... 207
5. CONCLUSIONES Y RECOMENDACIONES ................ 207
5.1. CONCLUSIONES .......................................................................... 207
5.2. RECOMENDACIONES ................................................................ 210
REFERENCIAS BIBLIOGRFICAS ...................................... 212
ANEXOS ....................................................................................... 215

NDICE DE GRFICOS

Grfico 1.1 Poblacin ......................................................................... 2


Grfico 1.2 Muestra que representa a una Poblacin. .................... 3
Grfico 1.3 Muestra Aleatoria Simple ............................................... 3
Grfico 1.4 Muestra de conveniencia ............................................... 4
Grfico 1.5 Independencia ................................................................. 4
Grfico 1.6 Conjunto de datos que contiene un dato Atpico ........ 5
XIII

Grfico 1.7 Mediana ............................................................................ 6
Grfico 1.8 Modas ............................................................................... 6
Grfico 1.9 Representacin de los cuartiles ................................... 7
Grfico 1.10 Desviacin estndar ..................................................... 9
Grfico 1.11 Histograma de barras simples ................................... 12
Grfico 1.12 Histogramas barras compuestas .............................. 12
Grfico 1.13 Histogramas barras Agrupadas ................................ 13
Grfico 1.14 Polgono de Frecuencias ........................................... 13
Grfico 1.15 Ojiva Porcentual .......................................................... 14
Grfico 1.16 Series de Tiempo. ....................................................... 15
Grfico 1.17 Estructura del Paquete IP ......................................... 18
Grfico 1.18 Clases de direcciones IP ............................................ 19
Grfico 1.19 Estructura del Segmento TCP. .................................. 21
Grfico 1.20 Seudo-cabecera TCP .................................................. 23
Grfico 1.21 Cabecera UDP ............................................................. 24
Grfico 1.22. WinPcap y NPF. ......................................................... 28
Grfico 1.23 Arquitectura de Java .................................................. 33
Grfico 3.1 Diagrama de Casos de Uso para los requerimientos
del usuario ........................................................................................ 47
Grfico 3.2 Modelo relacional de la base de datos ....................... 49
Grfico 3.3 Paquetes de clases ....................................................... 53
Grfico 3.4 Paquete database ......................................................... 53
Grfico 3.5 Paquete dataquery ........................................................ 54
Grfico 3.6 Paquete datacapture ..................................................... 54
Grfico 3.7 Paquete descriptivestatistics ...................................... 54
Grfico 3.8 Paquete dinamicstructures .......................................... 55
Grfico 3.9 Paquete flashVideo ....................................................... 55
Grfico 3.10 Paquete graphicsDialogs ........................................... 56
Grfico 3.11 Paquete lookandfeel ................................................... 57
Grfico 3.12 Paquete importexportdatabase ................................. 57
Grfico 3.13 Paquete minibrowser .................................................. 58
Grfico 3.14 Paquete newhostdetected .......................................... 58
Grfico 3.15 Paquete realtimegraphs ............................................. 59
Grfico 3.16 Paquete reversednsresolver ...................................... 59
Grfico 3.17 Paquete save ............................................................... 59
Grfico 3.18 Paquete sniffer ............................................................ 60
Grfico 3.19 Paquete statisticalgraphics ....................................... 60
Grfico 3.20 Paquete sugerencia .................................................... 61
Grfico 3.21 Clase Database ........................................................... 61
Grfico 3.22 Diagrama de actividad del constructor de la clase
Database ............................................................................................ 62
Grfico 3.23 Clase PrintColumnTypes ........................................... 62
XIV

Grfico 3.24 Clase QueryAndUpdateDatabase .............................. 63
Grfico 3.25 Clase QueryGetter ...................................................... 63
Grfico 3.26 Clase SqlEntry ............................................................. 64
Grfico 3.27 Clase CustomizedPcapTask ...................................... 64
Grfico 3.28 Clase DataCaptureMethod ......................................... 65
Grfico 3.29 Diagrama de actividad del mtodo run() del hilo de
ejecucin de captura de paquetes .................................................. 66
Grfico 3.30 Diagrama de actividad del mtodo tratarPaquete()
de la clase DataCaptureMethod ...................................................... 67
Grfico 3.31 Clase DataCaptureTrafficOrder ................................. 68
Grfico 3.32 Clase OpenUpDevice .................................................. 68
Grfico 3.33 Diagrama de actividad del mtodo OpenUp() de la
clase OpenUpDevice ........................................................................ 68
Grfico 3.34 Clase PacketDecoder ................................................. 69
Grfico 3.35 Clase TrafficDataCreator ............................................ 69
Grfico 3.36 Diagrama de actividad del mtodo
initScheduleAtFixedRateUpdate() de la clase TrafficDataCreator 70
Grfico 3.37 Diagrama de actividad del mtodo packetProcesor
(,) de la clase TrafficDataCreator ............................................. 70
Grfico 3.38 Clase MeanVarExtendedAndOrderStatistics ........... 71
Grfico 3.39 Clase DeviceLocalDiscovery ..................................... 71
Grfico 3.40 Clase GeneralTraffic ................................................... 72
Grfico 3.41 Clase HostInfo ............................................................. 72
Grfico 3.42 Clase HostTraffic ........................................................ 73
Grfico 3.43 Diagrama de actividad del mtodo updateDatabase()
de la clase HostTraffic ..................................................................... 73
Grfico 3.44 Clase MacIPandLong .................................................. 74
Grfico 3.45 Clase ProtocolTrafficByConnection ......................... 74
Grfico 3.46 Clase FlashAnimation ................................................ 75
Grfico 3.47 Clase Video .................................................................. 75
Grfico 3.48 Vista previa de la ventana de DialogoDeOpciones .. 76
Grfico 3.49 Clase DialogoDeOpciones ......................................... 77
Grfico 3.50 Diagrama de actividad del mtodo
generarConsultaGrafico() de la clase DialogoDeOpciones .......... 78
Grfico 3.51 Clase OpcionesHostAndPortEntry ............................ 79
Grfico 3.52 Clase OpcionesBitratevsTiempoProtocolo .............. 79
Grfico 3.53 Clase OpcionesBitratevsTiempoProtocoloPasos ... 80
Grfico 3.54 Clase OpcionesTimeSeriesDatasetCreator .............. 80
Grfico 3.55 Clase OpcionesSeriesTiempoProtocolos ................. 81
Grfico 3.56 Clase OpcionesPasosPromedioProtocolos ............. 81
Grfico 3.57 Clase OpcionesPorcentajeGraficoPastelBase ......... 82
Grfico 3.58 Clase OpcionesPorcentajeGraficoPastel2D ............. 82
XV

Grfico 3.59 Clase OpcionesPorcentajeGraficoPastel3D ............. 83
Grfico 3.60 Clase OpcionesHistogramaTraficoInternet .............. 83
Grfico 3.61 Clase OpcionesGraficoBitratePromedio .................. 84
Grfico 3.62 Clase OpcionesDNSReverse ..................................... 84
Grfico 3.63 Clase FolderZiper ........................................................ 85
Grfico 3.64 Clase Unzip .................................................................. 85
Grfico 3.65 Clase ImportFileChooser ........................................... 86
Grfico 3.66 Clase ExportFileChooser ........................................... 86
Grfico 3.67 Clase LookAndFeelSelector ...................................... 87
Grfico 3.68 Clase SubstanceSkinComboSelector ....................... 87
Grfico 3.69 Clase LoadLookAndFeel ............................................ 87
Grfico 3.70 Clase Browser ............................................................. 88
Grfico 3.71 Clase NewHostParameters ........................................ 88
Grfico 3.72 Clase NewHost ............................................................ 89
Grfico 3.73 Clase NamedVectorHost ............................................ 89
Grfico 3.74 Clase CheckBoxNodeRenderer ................................. 90
Grfico 3.75 Clase CheckBoxNodeHost ......................................... 90
Grfico 3.76 Clase CheckBoxNodeEditor ...................................... 91
Grfico 3.77 Clase CustomizedPolyline ......................................... 91
Grfico 3.78 Clase RealTimeBitrate ................................................ 92
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 ...................................................... 93
Grfico 3.80 Clase SystemTrayMonitor .......................................... 94
Grfico 3.81 Clase IPTraficInfo ........................................................ 94
Grfico 3.82 Clase ReverseDNSComparableEntry ........................ 95
Grfico 3.83 Clase ReverseIPListResolution ................................. 95
Grfico 3.84 Clase AutoSaveOptionPane ....................................... 96
Grfico 3.85 Clase TimerDisplayDialog .......................................... 96
Grfico 3.86 Clase FileUtils ............................................................. 97
Grfico 3.87 Clase AutoSave ........................................................... 97
Grfico 3.88 Clase SaveTextFileChooser ....................................... 97
Grfico 3.89 Clase SaveImageFileChooser .................................... 98
Grfico 3.90 Clase SnifferParameters ............................................ 98
Grfico 3.91 Clase FilterAction ....................................................... 99
Grfico 3.92 Clase SnifferRunnable .............................................. 100
Grfico 3.93 Diagrama de actividad del mtodo run() de la clase
SnifferRunnable .............................................................................. 101
Grfico 3.94 Clase SnifferThread .................................................. 102
Grfico 3.95 Clase HistogramaAndCumulativeFrequencyPolygon
.......................................................................................................... 103
Grfico 3.96 Clase Histograma ...................................................... 104
XVI

Grfico 3.97 Clase CustomizedPdfPlot ........................................ 105
Grfico 3.98 Clase MousePopupListener de CustomizedPdfPlot
.......................................................................................................... 106
Grfico 3.99 Clase CumulativeFrequencyPolygon ...................... 106
Grfico 3.100 Clase CustomizedAxesPlot .................................... 107
Grfico 3.101 Clase MousePopupListener de CustomizedAxesPlot
.......................................................................................................... 107
Grfico 3.102 Clase TablaDeFrecuenciasPanel ........................... 108
Grfico 3.103 Clase TablaDeEstadisticaDescriptiva ................... 110
Grfico 3.104 Clase IPRankingList ............................................... 111
Grfico 3.105 Clase TablaDNSReverse ........................................ 112
Grfico 3.106 Clase PromedioBitrateHostSeleccionados .......... 113
Grfico 3.107 Clase PortAverageEntry ......................................... 113
Grfico 3.108 Clase BitratevsTiempoGraphLineas ..................... 114
Grfico 3.109 Clase BitratevsTiempoGraphPasos ...................... 115
Grfico 3.110 Clase PercentagePieGraph2D ............................... 116
Grfico 3.111 Clase PercentagePieGraph3D ............................... 116
Grfico 3.112 Clase SerieDeTiempoGraficoLineas ..................... 117
Grfico 3.113 Clase SeriesDeTiempoGraficoPasos .................... 118
Grfico 3.114 Fragmento de una serie de tiempo convencional.
.......................................................................................................... 118
Grfico 3.115 Fragmento de una serie de tiempo dibujada en
pasos. .............................................................................................. 119
Grfico 3.116 Clase HTMLResources ........................................... 119
Grfico 3.117 Clase SugerenciaAyuda ......................................... 120
Grfico 3.118 Paquete trafficstatistics ......................................... 120
Grfico 3.119 Vista previa de ventana Acerca de. ............... 121
Grfico 3.120 Clase TrafficStatisticsAboutBox ........................... 121
Grfico 3.121 Clase TrafficStatisticsApp ..................................... 121
Grfico 3.122 Vista previa 1 de TrafficStatisticsView ................. 122
Grfico 3.123 Vista previa 2 de TrafficStatisticsView ................. 124
Grfico 3.124 Vista previa 3 de TrafficStatisticsView ................. 126
Grfico 3.125 Paquete querystatistics .......................................... 127
Grfico 3.126 Vista previa de ventana Acerca de. ............... 127
Grfico 3.127 Clase QueryStatisticsAboutBox ............................ 128
Grfico 3.128 Clase QueryStatisticsApp ...................................... 128
Grfico 3.129 Clase StatisticsGraphicsTypesJList ..................... 129
Grfico 3.130 Vista previa de QueryStatisticsView ..................... 130
Grfico 3.131 Diagrama de secuencia para el inicio de la
graficacin en tiempo real del trfico total y captura de paquetes
del mtodo startCaptureButtonActionPerformed() de la clase
TrafficStatisticsView. ..................................................................... 136
XVII

Grfico 3.132 Diagrama de colaboracin para el inicio de la
graficacin en tiempo real del trfico total y captura de paquetes
del mtodo startCaptureButtonActionPerformed() de la clase
TrafficStatisticsView. ..................................................................... 137
Grfico 3.133 Diagrama de secuencia para explicar en detalle el
mtodo initDataCapture() de la clase TrafficStatisticsView
destacando los mensajes que realizan los casos de uso citados
al inicio ............................................................................................ 138
Grfico 3.134 Diagrama de colaboracin para explicar en detalle
el mtodo initDataCapture() de la clase TrafficStatisticsView
destacando los mensajes que realizan los casos de uso citados
al inicio ............................................................................................ 139
Grfico 3.135 Diagrama de secuencia para el inicio del sniffer y la
graficacin en tiempo real para las estaciones de trabajo
seleccionadas del mtodo
displaySnifferButtonActionPerformed() de la clase
TrafficStatisticsView ...................................................................... 141
Grfico 3.136 Diagrama de colaboracin para el inicio del sniffer y
la graficacin en tiempo real para las estaciones de trabajo
seleccionadas del mtodo
displaySnifferButtonActionPerformed() de la clase
TrafficStatisticsView ...................................................................... 142
Grfico 3.137 Diagrama de secuencia para explicar en detalle el
mtodo initDataCapture() de la clase TrafficStatisticsView
destacando los mensajes que realizan los casos de uso para el
sniffer y la graficacin tiempo real por estaciones seleccionadas
.......................................................................................................... 143
Grfico 3.138 Diagrama de colaboracin para explicar en detalle
el mtodo initDataCapture() de la clase TrafficStatisticsView
destacando los mensajes que realizan los casos de uso para el
sniffer y la graficacin tiempo real por estaciones seleccionadas
.......................................................................................................... 144
Grfico 3.139 Diagrama de secuencia para la seleccin de los
parmetros necesarios en la diferenciacin de trfico del sniffer
del mtodo setSnifferParameters() de la clase
TrafficStatisticsView ...................................................................... 146
Grfico 3.140 Diagrama de colaboracin para la seleccin de los
parmetros necesarios en la diferenciacin de trfico del sniffer
del mtodo setSnifferParameters() de la clase
TrafficStatisticsView ...................................................................... 146
Grfico 3.141 Diagrama de secuencia que explica el mtodo
esttico setSnifferParameters() de la clase FilterAction a detalle
XVIII

para el cumplimiento del caso de uso de diferenciacin de trfico
.......................................................................................................... 147
Grfico 3.142 Diagrama de colaboracin que explica el mtodo
esttico setSnifferParameters() de la clase FilterAction a detalle
para el cumplimiento del caso de uso de diferenciacin de trfico
.......................................................................................................... 148
Grfico 3.143 Diagrama de secuencia del mtodo run() de un
objeto Runnable que es controlado por un objeto
ScheduledFuture para la actualizacin peridica de la base de
datos cada 20 segundos ................................................................ 149
Grfico 3.144 Diagrama de colaboracin del mtodo run() de un
objeto Runnable que es controlado por un objeto
ScheduledFuture para la actualizacin peridica de la base de
datos cada 20 segundos ................................................................ 150
Grfico 3.145a Diagrama de secuencia para la seleccin del
grfico deseado mediante un doble clic sobre la lista desplegada
(mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)
.......................................................................................................... 152
Grfico 3.145b Diagrama de secuencia para la seleccin del
grfico deseado mediante un doble clic sobre la lista desplegada
(mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)
.......................................................................................................... 153
Grfico 3.146 Diagrama de colaboracin para la seleccin del
grfico deseado mediante un doble clic sobre la lista desplegada
(mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)
.......................................................................................................... 154
Grfico 3.147 Diagrama de secuencia para la reconstruccin
grfica de los datos de la base. .................................................... 155
Grfico 3.148 Diagrama de colaboracin para la reconstruccin
grfica de los datos de la base. .................................................... 156
Grfico 3.149 Diagrama de secuencia para la reconstruccin
grfica de los datos de la base usando pasos. ........................... 157
Grfico 3.150 Diagrama de colaboracin para la reconstruccin
grfica de los datos de la base usando pasos. ........................... 157
Grfico 3.151 Diagrama de secuencia para el ranking de las IPs
ms utilizadas y la resolucin inversa de nombres. ................... 158
Grfico 3.152 Diagrama de colaboracin para el ranking de las IPs
ms utilizadas y la resolucin inversa de nombres. ................... 159
Grfico 3.153 Diagrama de secuencia para graficar la tasa
promedio de transferencia de datos ............................................. 160
Grfico 3.154 Diagrama de colaboracin para graficar la tasa
promedio de transferencia de datos ............................................. 160
XIX

Grfico 3.155 Diagrama de secuencia para obtener un histograma
de frecuencias, frecuencias acumuladas y resumen de estadstica
de descriptiva de los valores de bitrate calculados .................... 161
Grfico 3.156 Diagrama de colaboracin para obtener un
histograma de frecuencias, frecuencias acumuladas y resumen
de estadstica de descriptiva de los valores de bitrate calculados
.......................................................................................................... 162
Grfico 3.157 Diagrama de secuencia para obtener una grfica de
series de tiempo ............................................................................. 163
Grfico 3.158 Diagrama de colaboracin para obtener una grfica
de series de tiempo ........................................................................ 163
Grfico 3.159 Diagrama de secuencia para obtener una grfica de
series de tiempo que usa pasos para cada intervalo de tiempo
regular ............................................................................................. 164
Grfico 3.160 Diagrama de colaboracin para obtener una grfica
de series de tiempo que usa pasos para cada intervalo de tiempo
regular ............................................................................................. 165
Grfico 3.161 Diagrama de secuencia de la generacin de un
pastel 2D de porcentajes de trfico de Internet ........................... 166
Grfico 3.162 Diagrama de secuencia de la generacin de un
pastel 2D de porcentajes de trfico de Internet ........................... 166
Grfico 3.163 Diagrama de secuencia de la generacin de un
pastel 3D de porcentajes de trfico de Internet ........................... 167
Grfico 3.164 Diagrama de colaboracin de la generacin de un
pastel 3D de porcentajes de trfico de Internet ........................... 168
Grfico 3.165 Diagrama de secuencia que muestra la
diferenciacin de trfico segn las opciones seleccionadas por el
usuario, en la generacin de una consulta SQL para la base de
datos (mtodo generarConsultaGrafico() de todas la clases que
heredan de DialogoDeOpciones) .................................................. 169
Grfico 3.166 Diagrama de colaboracin que muestra la
diferenciacin de trfico segn las opciones seleccionadas por el
usuario, en la generacin de una consulta SQL para la base de
datos (mtodo generarConsultaGrafico() de todas la clases que
heredan de DialogoDeOpciones) .................................................. 170
Grfico 3.167 Diagrama de secuencia para la realizacin de una
consulta previo establecimiento de la conexin con la base en
QueryStatistics por medio del mtodo consultaDatabase(String
consulta) de QueryGetter. ............................................................. 172
Grfico 3.168 Diagrama de secuencia para la realizacin de una
consulta previo establecimiento de la conexin con la base en
XX

QueryStatistics por medio del mtodo consultaDatabase(String
consulta) de QueryGetter. ............................................................. 172
Grfico 4.1 Diagrama de conexin de red para monitoreo de
datos. ............................................................................................... 178
Grfico 4.2 Grfico bitrate vs tiempo incoming y outgoing de las
pruebas de monitoreo sobrepasando los 100KBps. ................... 179
Grfico 4.3 Grfico bitrate vs tiempo incoming y outgoing de las
pruebas de monitoreo en un momentos diferente. ..................... 179
Grfico 4.4 Grfico bitrate vs tiempo incoming y outgoing cuando
termina una descarga de datos. .................................................... 180
Grfico 4.5 Grfico bitrate vs tiempo incoming y outgoing para un
host seleccionado. ......................................................................... 180
Grfico 4.6 Grfico bitrate vs tiempo incoming y outgoing para
varios hosts seleccionados. .......................................................... 181
Grfico 4.7 Monitoreo de paquetes en Modo Sniffer. ................. 181
Grfico 4.8 Cuadro de dilogo para respaldar datos monitoreados
en Modo Sniffer. ............................................................................. 182
Grfico 4.9 Valores de campos de paquetes en modo de
decodificacin No RAW. ................................................................ 183
Grfico 4.10 Valores de campos de paquetes en modo de
decodificacin RAW. ...................................................................... 183
Grfico 4.11 Tasa de transferencia promedio de uso de Internet
de los datos monitoreados. ........................................................... 184
Grfico 4.12 Porcentajes de uso de trfico de Internet de los
datos monitoreados. ...................................................................... 185
Grfico 4.13 Porcentajes de uso de trfico de Internet 3D de los
datos monitoreados. ...................................................................... 186
Grfico 4.14 Histograma de protocolos y Distribucin de
frecuencias relativas acumuladas de los datos monitoreados. 187
Grfico 4.15 Reconstruccin de historial de la base con lneas de
los datos monitoreados. ................................................................ 188
Grfico 4.16 Reconstruccin de historial de la base en pasos de
los datos monitoreados. ................................................................ 189
Grfico 4.17 Series de tiempo de los datos monitoreados. ....... 190
Grfico 4.18 Series de tiempo en pasos de los datos
monitoreados. ................................................................................. 191
Grfico 4.19 DNS reverso y ranking para IPs ms utilizadas de los
datos monitoreados. ...................................................................... 191
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). ..................................................................................... 192
XXI

Grfico 4.21 Histograma de protocolos de trfico de Internet para
el escenario 1194
Grfico 4.22 Polgono de frecuencias relativas acumuladas de
protocolos de trfico de Internet para el escenario 1. ................ 193
Grfico 4.23 Tabla de frecuencias para el escenario 1. .............. 194
Grfico 4.24 Tabla de estadstica descriptiva para el escenario 1.
.......................................................................................................... 194
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). ............................... 195
Grfico 4.26 Tasa de transferencia de trfico de Internet para
escenario 2. ..................................................................................... 196
Grfico 4.27 Cuadro para seleccin de hosts, puertos e intervalo
de tiempo para la consulta a la base de datos outgoing (Tasa de
transferencia promedio de uso de Internet). ............................... 197
Grfico 4.28 Tasa promedio de transferencia de trfico de Internet
para escenario 2. ............................................................................ 198
Grfico 4.29 Cuadro para seleccin de hosts, puertos e intervalo
de tiempo para la consulta a la base de datos outgoing (DNS
reverso y ranking para IPs ms utilizadas)..199
Grfico 4.30 Trfico de red por host y direccin IP pblica para
escenario 3. ..................................................................................... 200
Grfico 4.31 Trfico de red por host y direccin IP pblica con
tabla de IP Ranking para el escenario 3201
Grfico 4.32 Cuadro para seleccin de hosts, puertos e intervalo
de tiempo para la consulta a la base de datos incoming (Series de
tiempo en pasos).202
Grfico 4.33 Trfico Series de tiempo en pasos para el escenario
4....202

NDICE DE ECUACIONES

Ecuacin 1.1 ........................................................................................ 5


Ecuacin 1.2 ........................................................................................ 8
Ecuacin 1.3 ........................................................................................ 8
Ecuacin 1.4 ........................................................................................ 9
Ecuacin 1.5 ........................................................................................ 9
Ecuacin 1.6 ...................................................................................... 16




XXII

NDICE DE TABLAS

Tabla 1.1 Evento del lanzamiento de un dado (Tabla de


frecuencias). ..................................................................................... 11
Tabla 1.2 Direcciones IP. ................................................................. 20
Tabla 1.3 Direcciones IP Privadas. ................................................. 20
Tabla 2.1 Especificaciones de Requerimientos de Software (ERS).
............................................................................................................ 39
Tabla 3.1 Relacin de casos de uso con paquetes de clases ...... 52
Tabla 3.2 Descripcin de la vista previa de la ventana de
DialogoDeOpciones ......................................................................... 76
Tabla 3.3 Descripcin de la vista previa 1 de TrafficStatisticsView
.......................................................................................................... 124
Tabla 3.4 Descripcin de la vista previa 2 de TrafficStatisticsView
.......................................................................................................... 125
Tabla 3.5 Descripcin de la vista previa 3 de TrafficStatisticsView
.......................................................................................................... 126
Tabla 3.6 Descripcin vista previa de QueryStatisticsView ....... 131
Tabla 3.7 Caso de uso Graficar trfico total en tiempo real para el
actor Administrador. ...................................................................... 131
Tabla 3.8 Caso de uso Desplegar un sniffer y guardar contenido
para el actor Administrador. .......................................................... 132
Tabla 3.9 Caso de uso Graficar trfico en tiempo real por hosts
para el actor Administrador. .......................................................... 133
Tabla 3.10 Caso de uso Diferenciar trfico (Host, protocolo y
puertos) para el actor Desplegar un sniffer y guardar contenido.
.......................................................................................................... 134
Tabla 3.11 Caso de uso Almacenar y recuperar de disco para el
actor Capturar trfico de Internet ................................................. 134
Tabla 3.12 Caso de uso Mostrar y guardar grfico de anlisis
estadstico para el actor Administrador. ...................................... 135
Tabla 3.13 Caso de uso Diferenciar trfico (Host, protocolo y
puertos) para el actor Mostrar y guardar grfico de anlisis
estadstico. ...................................................................................... 135
Tabla 3.14 Caso de uso Almacenar y recuperar de disco para el
actor Mostrar y guardar grfico de anlisis estadstico. ............ 136
Tabla 3.15 Mensajes del diagrama de colaboracin del grfico
3.132 ................................................................................................. 137
Tabla 3.16 Mensajes del diagrama de colaboracin del grfico
3.132 ................................................................................................. 140
Tabla 3.17 Mensajes del diagrama de colaboracin del grfico
3.136 ................................................................................................. 142
XXIII

Tabla 3.18 Mensajes del diagrama de colaboracin del grfico
3.138 ................................................................................................. 145
Tabla 3.19 Mensajes del diagrama de colaboracin del grfico
3.140 ................................................................................................. 146
Tabla 3.20 Mensajes del diagrama de colaboracin del grfico
3.142 ................................................................................................. 148
Tabla 3.21 Mensajes del diagrama de colaboracin del grfico
3.144 ................................................................................................. 151
Tabla 3.22 Mensajes del diagrama de colaboracin del grfico
3.146 ................................................................................................. 155
Tabla 3.23 Mensajes del diagrama de colaboracin del grfico
3.148 ................................................................................................. 156
Tabla 3.24 Mensajes del diagrama de colaboracin del grfico
3.150 ................................................................................................. 158
Tabla 3.25 Mensajes del diagrama de colaboracin del grfico
3.152 ................................................................................................. 159
Tabla 3.26 Mensajes del diagrama de colaboracin del grfico
3.154 ................................................................................................. 161
Tabla 3.27 Mensajes del diagrama de colaboracin del grfico
3.156 ................................................................................................. 162
Tabla 3.28 Mensajes del diagrama de colaboracin del grfico
3.158 ................................................................................................. 164
Tabla 3.29 Mensajes del diagrama de colaboracin del grfico
3.160 ................................................................................................. 165
Tabla 3.30 Mensajes del diagrama de colaboracin del grfico
3.162 ................................................................................................. 167
Tabla 3.31 Mensajes del diagrama de colaboracin del grfico
3.164 ................................................................................................. 168
Tabla 3.32 Mensajes del diagrama de colaboracin del grfico
3.166 ................................................................................................. 171
Tabla 3.33 Mensajes del diagrama de colaboracin del grfico
3.168 ................................................................................................. 172
Tabla 4.1 Requerimientos Mnimos del Sistema ......................... 175
Tabla 4.2 Comparacin del Proyecto de titulacin con respecto a
dos aplicaciones afines ................................................................. 177
Tabla 4.3 Costo de equipos activos para pruebas. ..................... 204
Tabla 4.4 Costos de Software. ....................................................... 205
Tabla 4.5 Costos Indirectos ........................................................... 205
Tabla 4.6 Costo total del software ................................................ 205
Tabla 4.7 Precio de venta al pblico ............................................. 206

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

La desviacin estndar nos da como resultado un valor numrico que representa


la media cuadrtica o promedio de diferencia que hay entre los datos y la media.
La desviacin estndar nos informa sobre la dispersin de los datos respecto al
valor de la media; cuanto mayor sea su valor, ms dispersos estarn los datos.
9

Se define como:

Ecuacin 1.4


Grfico 1.10 Desviacin estndar

1.1.3.4. Varianza muestral
La varianza muestral se define como la media de los cuadrados de las variaciones
a la media muestral.
Es una medida de dispersin utilizada en la estadstica que nos indica cuanto
distan las observaciones de una variable con respecto al promedio.
La varianza muestral esta denotada por s
2
,

de los datos X
j
,.. X
N
y por sigma
2

para la varianza poblacional.

Ecuacin 1.5
1.1.4. RESMENES GRFICOS
Una grfica o diagrama es una representacin complementaria a una tabla o
cuadro, que permite observar las tendencias de un comportamiento en estudio y
facilita el anlisis estadstico de las variables all relacionadas.
1.1.4.1. Clases o Categoras
En la etapa de organizacin de los datos, se hace referencia a la clasificacin y
tabulacin de los mismos. Cuando se tienen grandes cantidades de datos es
necesario dividir la informacin en clases o categoras. Un elemento cualquiera
del conjunto de datos pertenecer a una clase determinada, si se encuentra en el
10

rango que fue definido para esa clase. Por ejemplo para una muestra de bosque
amaznico de 100 metros cuadrados, la altura comprendida entre 10 y 15 metros
corresponde a un rango de datos y cualquier rbol con una altura dentro esos
valores, pertenecer a esa clase o categora.
Otros ejemplos tiles pueden ser: los estudiantes de un establecimiento educativo
cuya edad est entre los 15 y 17 aos, la tasa de transferencia de Internet en el
intervalo de 20 a 30 KBps, etc.
1.1.4.2. Tabla de frecuencias
En la estadstica descriptiva el principal objetivo es representar conjuntos de datos
mediante tablas o grficos resumen, con el fin de poder identificar el
comportamiento caracterstico de un fenmeno y facilitar su anlisis exhaustivo.
Cualquier anlisis que se emprenda puede conducir a la acumulacin de valores
cuantitativos y cuasi-cualitativos correspondientes a las diversas medidas
efectuadas. Esta posibilidad, convierte a la estadstica en una herramienta vital
para el tratamiento de volmenes de datos mediante tablas resmenes conocidas
como Tabla de frecuencias.
De esta forma la Tabla de frecuencias o distribucin de frecuencias es una
ordenacin en forma de tabla de los datos estadsticos, asignando a cada dato su
frecuencia correspondiente. Cuando los datos son agrupados en clases, la
interpretacin resulta ser ms sencilla.
1.1.4.2.1. Frecuencia absoluta.
Es la cantidad de datos que integran cada una de las clases, es decir, el nmero
de valores que encontramos dentro de un mismo intervalo de clase o categora.
1.1.4.2.2. Frecuencia relativa.
Es la cantidad de repeticiones obtenidas para cada clase de datos o categora, en
relacin al total de las observaciones. Resulta de dividir la cantidad de elementos
de cada clase (frecuencia absoluta) por el tamao de la muestra.
11

Las frecuencias relativas son un porcentaje, ya que relacionan una parte del
conjunto con el total.
1.1.4.2.3. Frecuencias acumuladas.
La frecuencia acumulada de un intervalo de clase es aquella que suma las
frecuencias anteriores hasta dicho intervalo.
La frecuencia relativa acumulada tiene una definicin igual a la anterior, pero esta
usa las frecuencias relativas.
En el siguiente ejemplo se describe los diferentes tipos de frecuencias antes
mencionados. Para ello se asume que un dado que fue lanzado 100 veces, el
resultado de dicho evento se muestra en la tabla 1.1 que contiene los diferentes
valores de frecuencias para cada cara del dado.
Caras del dado Frecuencia absoluta
(nmero de
lanzamientos del dado)
Frecuencia relativa Frecuencia relativa
acumulada
1 11 0.11 0.11
2 13 0.13 0.24
3 15 0.15 0.39
4 18 0.18 0.57
5 18 0.18 0.75
6 25 0.25 1.00
Tabla 1.1 Evento del lanzamiento de un dado (Tabla de frecuencias).
1.1.4.3. Histogramas
Es una representacin grfica de las distribuciones de frecuencias por medio de
barras o rectngulos para cada intervalo de clase, dnde la superficie de cada
barra es proporcional a la frecuencia de sus valores representados.
En el eje vertical se representan las frecuencias y en el eje horizontal los valores
de la variable, normalmente sealando las marcas de clase, es decir, la mitad del
intervalo en el que estn agrupados los datos.
Las principales caractersticas de los histogramas que aportan al anlisis de datos
son:

S
A
c
i
C
s
1
L
D
q
c
d
e
S
A
co
n
C
se
1.
L
D
E
q
c
D
E
d
e
S
An
o
nt
Ca
e
.1
o
Di
Es
qu
cu
Di
Es
do
es
n
n
om
te
a
en
1.
os
a
st
ue
ua
ia
st
ob
st
nt

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

1.3.1. PROTOCOLOS DE CAPA INTERNET


La funcin de esta capa es la de permitir intercambiar informacin entre dos
dispositivos conectados en diferentes redes interconectadas, a travs de una
serie de procedimientos.
1.3.1.1. Protocolo IP
IP (Internet Protocol), se utiliza en esta capa para ofrecer el servicio de
enrutamiento a travs de varias redes, y se implementa tanto en sistemas finales
como en dispositivos comunicacin intermedios.
IP es un protocolo no confiable, no orientado a conexin, no posee un mecanismo
de correccin de errores y su unidad de transferencia de datos es el datagrama.
Adems intercambia mensajes de error y de control entre nodos a travs de ICMP
(Internet Control Message Protocol).
La base del modelo TCP/IP nace de las caractersticas de IP ya que el servicio de
entrega de datagramas es sin conexin, poco confiable, y del mejor esfuerzo.
1.3.1.2. Direccionamiento IP
El protocolo IP ha sido el fundamento de Internet y virtualmente de todas las
redes privadas, por ello este tipo de protocolo maneja un direccionamiento para
poder identificar cada host y dispositivos de conmutacin dentro de una Intranet
como de Internet.
Cabe mencionar que IP no identifica un dispositivo de conmutacin o un host, sino
un interfaz de red. En un caso particular un host puede tener tantas direcciones IP
como dispositivos de red tenga.
Una direccin IP est conformada por 32 bits, agrupada en 4 nmeros decimales
separados por puntos. Esta estructura est compuesta por dos partes; nmero de
red, nmero de host.
El nmero de red identifica a una red especfica, y el nmero de host identifica a
una estacin de trabajo dentro de esa red.
18

El protocolo IP maneja una cabecera para formar los diferentes datagramas para
el intercambio de informacin, detallado en el grfico 1.17.

Grfico 1.17 Estructura del Paquete IP
4

Versin (4 bits): Indica el nmero de la versin del protocolo, con el cual se est
trabajado.
Longitud de la cabecera Internet (IHL, Internet Header Length) (4 bits): Indica
la longitud de la cabecera expresada en palabras de 32 bits, con su valor mnimo
de 5 correspondiente a la longitud mnima de de cabecera de 20 octetos.
Tipo de servicio (8 bits): especifica los parmetros de seguridad, prioridad,
retardo y rendimiento.
Longitud Total (16 bits): longitud total del datagrama, en octetos.
Identificador (16 bits): Es un nmero de secuencia que permite identificar de
forma nica al datagrama.
Identificadores (3 bits): Estos identificadores permiten setear opciones para
segmentacin y reensamblado de datagramas.
Desplazamiento del Fragmento (13 bits): Indica el lugar donde se sita el
fragmento dentro del datagrama original, medido en unidades de 64 bits.
Tiempo de Vida (8 bits): Especifica cuanto tiempo, en segundos, se le permite al
datagrama permanecer en la red.
Suma de comprobacin de cabecera (16 bits): Es un cdigo de deteccin de
errores basado en la suma de complementos solo aplicado a la cabecera, y este
valor se re calcula en cada dispositivo de encaminamiento.

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

Un servicio orientado a la conexin proporciona el establecimiento,


mantenimiento y cierre de una conexin lgica entre usuarios TS (Transport
Service).
5

Este protocolo de capa transporte (especificado en el RFC 793) permite la
comunicacin segura entre dos procesos usuarios de este servicio con
mecanismos que permiten independencia del servicio de interconexin de red
utilizado, sea este seguro o no seguro, sobre una sola red o a travs de varias
interconectadas.
La unidad de datos de este protocolo es llamado segmento TCP. Dada la
complejidad de los mecanismos de TCP, su cabecera es relativamente grande y
contiene los siguientes campos, como se muestra en el grfico 1.19.

Grfico 1.19 Estructura del Segmento 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

UDP es un protocolo de capa transporte que provee de un servicio no orientado a


conexin para los procesos de capa aplicacin. Se encuentra especificado en el
RFC 768.
El protocolo UDP no garantiza la entrega segura de la informacin o de impedir
duplicados, por lo tanto es un servicio no seguro. Sin embargo UDP es utilizado
en situaciones donde los mecanismos de establecimiento y mantenimiento de la
conexin son innecesarios o desfavorables por su naturaleza.
Algunos casos con estas caractersticas seran la recoleccin de datos de
entrada, difusin de datos de salida en un entorno de red, transacciones
peticin/respuesta donde el servidor es el encargado de la gestin del servicio y
las aplicaciones en tiempo real como voz o contenido multimedia donde la
retransmisin sera contraproducente por el retardo que causa y por la tolerancia
a errores en este tipo de conexiones.

24

Los mecanismos de UDP son relativamente simples en comparacin a TCP, su
cabecera as lo demuestra como se ve en el siguiente grfico.

Grfico 1.21 Cabecera UDP
6

Nmero de puerto origen (16 bits): puerto UDP origen.
Nmero de puerto destino (16 bits): puerto UDP destino.
Longitud (16 bits): tamao del segmento UDP en unidades de palabras de 16
bits, incluida cabecera y datos.
Suma de comprobacin o verificacin (16 bits): usa el mismo algoritmo que
TCP. Esta es aplicada sobre todo el segmento UDP mas una seudo-cabecera
igual a la utilizada en TCP. En caso de error se procede a descartar el segmento y
no existe ningn procedimiento adicional.
1.3.2.3. Puertos bien conocidos (WELL KNOWN PORT NUMBERS)

Los puertos representan el destino de las conexiones lgicas usadas en


conversaciones de larga duracin, por protocolos como TCP y UDP.
La abstraccin de puerto surgi con la necesidad de proveer servicios a usuarios
desconocidos, para ello un puerto de servicio debe ser definido.
La entidad responsable de asignar estos puertos es la IANA
7
y se encuentra
definido en el RFC 1700, que trata sobre todos los Assigned Numbers utilizados
en la comunidad de Internet.
La asignacin de puertos es vlida tanto para TCP y UDP. La cantidad de puertos
asignados, actualmente se encuentra en el rango de 0 a 1023.

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

jNetPcap es un API de desarrollo de software para el (SDK


20
) de Java, cuya
funcin bsica es la proveer de un envoltorio java
21
para la biblioteca libpcap
22
.
Este SDK tambin provee de funcionalidades adicionales no presentes en el
proyecto nativo original libpcap.
El objetivo de jNetPcap es el de proveer una mayor facilidad para el desarrollo de
aplicaciones tpicas de la biblioteca libpcap.
jNetPcap consta del API de la biblioteca de clases contenido en un archivo .jar
para el uso de una completa lista de operaciones de libpcap. El paquete es
dependiente de la plataforma y por esa razn existe una biblioteca compartida
nativa. En el caso de sistemas Win32 la biblioteca es un .dll y en sistemas Unix es

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

El kit de desarrollo de jNetPcap consta de dos partes:


El libpcap wrapper, el cual provee de casi todas las funcionalidades de la
biblioteca nativa de libpcap, pero para un ambiente java. Esta parte
representa el nivel ms bajo en el API del SDK de jNetPcap.
El packet decoding framework, que consta de una coleccin de paquetes
para la captura de paquetes y su posterior procesamiento y
decodificacin. Una vez realizado el procedimiento de decodificacin, es
posible acceder a mayor informacin dentro de estos paquetes usando un
conjunto de clases java llamadas protocol headers o cabeceras de
protocolo en su traduccin al castellano.
Ambas partes pueden trabajar de manera independiente, es decir, que no
necesitan realizar llamadas al API del otro para realizar mtodos de sus clases.
Sin embargo, pueden trabajar en conjunto sin ninguna dificultad, por ejemplo el
libpcap wrapper puede entregar los paquetes al packet decoding framework para
su procesamiento, aunque este framework posea de mtodos para el escaneo y
decodificacin de cualquier paquete almacenado en memoria.
A continuacin se muestra un esquema de la estructura de los paquetes de clases
en el SDK de jNetPcap y una breve descripcin de los mismos
24
:

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]

Java es un lenguaje de programacin orientado a objetos desarrollado por Sun


Microsystems. Este lenguaje contiene sintaxis de c y c++, pero su modelo de
objetos es muy simple, ya que elimina herramientas de bajo nivel, que
generalmente causa la mayora de errores, como la manipulacin directa de
punteros o memoria.
Este lenguaje es muy famoso ya que es independiente de cualquier plataforma,
adems como fue basado en el lenguaje c y c++ es muy flexible para su
aprendizaje y manipulacin.
Java se ha construido con extensas capacidades de conexin como TCP/IP, por
lo tanto, contiene libreras de rutinas para acceder e interactuar con protocolos
como ftp y http. Esto permite al programador acceder informacin a travs de la
red con tanta facilidad como ficheros locales.
Java posee las caractersticas de ser orientado a objetos, robusto, seguro,
portable, multithreaded
26
, dinmico, a pesar de no ser distribuido permite que sus
aplicaciones lo puedan ser, y por ltimo posee una arquitectura neutral.
Java adems de ser un lenguaje de programacin, proporciona herramientas de
desarrollo para la creacin de programas en Java llamado JDK (Java
Development Kit).

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]

Es una plataforma en la cual se puede desarrollar aplicaciones a partir de un


conjunto de componentes de software llamados mdulos. Un mdulo es un
archivo Java que contiene clases de java, que estn escritas para interactuar con
las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como
mdulo.
Adems es una herramienta de programacin pensada para escribir, compilar,
depurar y ejecutar programas.
Existe adems un nmero importante de mdulos para extender el IDE
32

NetBeans. Por otro lado es un producto libre y gratuito sin restricciones de uso, y
fue escrito en Java, pero puede servir para cualquier otro lenguaje de
programacin.
Entre las principales caractersticas de NetBeans es de ser una base modular y
extensible usada como una estructura de integracin, que sirve para crear
aplicaciones de escritorio grandes.
Las empresas independientes asociadas, especializadas en desarrollo de
software, proporcionan extensiones adicionales que se integran fcilmente en la
plataforma y que pueden tambin utilizarse para desarrollar sus propias
herramientas y soluciones, permitiendo as abarcar ms campos para el
desarrollo de aplicaciones.
La plataforma ofrece servicios comunes a las aplicaciones de escritorio,
permitindole al desarrollador enfocarse en la lgica especfica de su aplicacin.

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]

MySQL es un sistema de gestin de base de datos relacional, que proporciona un


servidor de base de datos SQL (Structured Query Language).
Entre sus caractersticas ms destacables tenemos: rapidez, multiusuario, multi-
threaded y multi-procesador, especialmente diseado para entornos de
produccin crticos y alta carga de trabajo.

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]

JFreeChart es una biblioteca gratuita y de cdigo abierto para la generacin de


grficos para la plataforma Java. Fue diseada para su uso en aplicaciones de
escritorio, applets
40
, servlets
41
y JSP
42
.
Esta biblioteca puede generar grficas de pastel, diagramas de barras (regulares,
apiladas y con un efecto 3D opcional), diagramas de lneas, diagramas de
dispersin, diagramas de series de tiempo, diagramas de Gantt, diagramas de

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]

La biblioteca NativeSwing permite una fcil integracin de algunos componentes


del sistema operativo nativo dentro de aplicaciones Swing
44
de Java, adems de
algunas utilidades nativas para mejorar el API de Swing. Est compuesta de una
biblioteca que funciona como framework y de muchos componentes desarrollados
en base a SWT
45
.
Entre las implementaciones ms importantes de componentes SWT estn el
navegador web, el reproductor de animaciones flash, el reproductor multimedia,
un editor HTML y un resaltador de sintaxis.
1.5.5. JCALENDAR
[46]

La biblioteca JCalendar implementa un selector grfico de fecha. JCalendar est


compuesto de varias clases individuales como el JDayChooser, el
JMonthChooser y el JYearChooser. Cada una de estas incluye la propiedad
locale
47
y un set iconos para ser usados en aplicaciones grficas.
Como parte del paquete de distribucin tambin existe un JDateChooser, una
clase que consta de un JDateEditor (para la edicin directa de la fecha) y un
botn para abrir una instancia de JCalendar para seleccionar una fecha.

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.

2.1.2. Funciones del producto



Los requerimientos iniciales se obtuvieron en base a los objetivos generales y
especficos del proyecto, adems se tuvieron en cuenta aportes tanto de
requerimientos tcnicos y necesidades que surgieron al administrar y evaluar una
red por parte de los desarrolladores de este proyecto de titulacin.
Este software est orientado a un usuario con perfil de administrador de red, que
desea obtener informacin sobre el comportamiento de una red informtica que
se conecte a Internet en tiempo real y que permita de manera grfica representar
los datos obtenidos durante el uso de este recurso.
Adems permite la obtencin de parmetros estadsticos, que ayudarn al
administrador de red a interpretar el comportamiento de la red a travs de grficos
que representen estas variaciones.
41

El software mostrar resultados por cada computador y sus diferentes conexiones
a Internet, manteniendo un sistema de datos que respalde la informacin que se
ha captado durante el uso de Internet, de esta manera el administrador tendr la
libertad de evaluar intuitivamente cmo se comporta la red comparando los datos
anteriores con los nuevos datos obtenidos con este software.
Se incluirn recomendaciones que guen al administrador de red sobre qu accin
tomar frente a situaciones que comprometan el rendimiento y disponibilidad de la
conexin a Internet.
Este software permitir interactuar al usuario con una interfaz grfica amigable, y
permitir el acceso a todas las diferentes herramientas mencionadas
anteriormente.
2.1.3. Caractersticas del usuario
El presente proyecto est orientado para un usuario que tenga conocimientos en
administracin de redes informticas, nociones bsicas de estadstica y redes
TCP/IP, con el objetivo de aprovechar todas las herramientas del software para la
optimizacin del consumo de Internet.
2.1.4. Restricciones generales

La aplicacin final debe ser capaz de ejecutarse en ambiente Windows a partir de


XP, y por lo menos en dos distribuciones de Linux.
La captura de paquetes debe enfocarse exclusivamente al trfico de Internet.
Los costos de desarrollo e implementacin del software deben ser los mnimos
posibles.
2.1.5. Suposiciones
Se supone que el trfico a escucharse pertenece a la intranet en la cual el
software est realizando el anlisis de trfico, mas no puede realizar el monitoreo
de otras subredes que no estn interconectadas fsicamente a la interfaz de
escucha utilizado por el programa dentro del equipo activo para la salida a
42

Internet, a no ser que se configure el equipo activo para que se replique el trfico
de dichas subredes en la interfaz de red que se est monitoreando.
2.2. Requerimientos especficos
2.2.1. Especificacin de requerimientos del sistema

El software permitir realizar monitorizacin en tiempo real del trfico de red.


Esto implica la entrega de grficos de la velocidad de transmisin utilizado a
travs del tiempo.
Debe existir soporte para dos tipos de grficos bsicos:
La velocidad de transmisin para el trfico entrante / trfico saliente
(incoming traffic / outgoing traffic) versus la variable tiempo, para el trfico
total de la red.
La velocidad de transmisin para el trfico entrante / trfico saliente
(incoming traffic / outgoing traffic) versus la variable tiempo, para todos
los protocolos o un protocolo especfico, eligiendo las estaciones de
trabajo a monitorear.
En general el software debe permitir diferenciacin de trfico, es decir, que sea
posible determinar el trfico correspondiente a un host, puertos o protocolos
de capa aplicacin. El usuario deber tener acceso a esta informacin en
tiempo real mediante la implementacin de un sniffer para la visualizacin de
las cabeceras de los protocolos. Adems esta informacin deber ser
almacenada de forma que pueda ser utilizada en el futuro en caso de ser
necesaria.
Utilizando los datos almacenados el software deber proveer resmenes
grficos o tablas sobre el trfico de Internet para las distintas estaciones de
trabajo que estn siendo monitoreadas, tanto para el trfico entrante (incoming
traffic) y el trfico saliente (outgoing traffic), priorizando una fcil comprensin
de los mismos. El usuario elegir el rango de tiempo desde el cual se
realizarn los clculos.
43

El software debe generar los siguientes resmenes grficos:
Tasa de transferencia promedio del uso de Internet.
Permitir observar el promedio de tasa de transferencia de datos de
entrada o salida mediante un diagrama de barras y se podr diferenciar
estaciones de trabajo y protocolos en general, para el rango de tiempo
seleccionado.
Porcentajes de uso de trfico de Internet.
Mediante un diagrama de pastel se observarn los porcentajes de uso
de trfico de Internet para las estaciones de trabajo seleccionadas,
diferenciando protocolos y puertos en caso de trfico TCP/UDP.
Reconstruccin del historial de la base de datos usando diagramas de
lneas.
Por medio de un diagrama de lneas se recuperarn los valores de la
base de datos de trfico de Internet para las estaciones de trabajo,
protocolos y rango de tiempo seleccionados.
Reconstruccin del historial de la base de datos usando diagramas de
pasos.
Por medio de un diagrama de pasos se graficar el flujo de datos de
trfico de Internet para las estaciones de trabajo, protocolos y rango de
tiempo seleccionados.
DNS reverso y ranking de las direcciones IP con mayor flujo de entrada
de datos.
Mediante un diagrama de barras deber mostrarse la cantidad de bits
transferidos para las distintas direcciones IP registradas en la base de
datos por cada host seleccionado. Debe incluirse un mecanismo que
realice el proceso de DNS reverso para la resolucin de nombres de las
direcciones IP.
44

Utilizando los datos almacenados el software deber proveer de parmetros
estadsticos bsicos, con clculos basados en Estadstica Descriptiva tanto
para el trfico entrante (incoming traffic) y el trfico saliente (outgoing traffic).
El usuario elegir el rango de tiempo desde el cual se realizarn los clculos.
El software debe generar el siguiente resumen estadstico:
Histograma y distribucin de frecuencias acumuladas de protocolos de
trfico de Internet.
Deber graficar un histograma de frecuencias para los valores
obtenidos de la base de datos, para las estaciones de trabajo y
protocolos seleccionados, estableciendo rangos uniformes para los
valores de ancho de banda. Conjuntamente debe graficarse la
distribucin de frecuencias acumuladas.
Para un anlisis individual ms profundo de cada protocolo, este software
utilizar los datos almacenados para la obtencin de series de tiempo. El
usuario deber establecer el rango de tiempo desde el cual se extraern los
datos.
El software deber graficar series de tiempo para los distintos protocolos y
estaciones de trabajo, eligiendo el intervalo regular de tiempo ms adecuado
de manera automtica, de acuerdo al rango elegido por el usuario.
El software debe generar los siguientes grficos de series de tiempo:
Series de Tiempo usando diagramas de lneas.
Series de Tiempo usando diagramas de pasos.
El software debe proveer mecanismos para guardar los grficos y texto
generados a partir de los datos obtenidos de la captura de trfico 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

La biblioteca contiene un paquete principal denominado application que contiene


todo el rbol de paquetes desarrollados, como se muestra a continuacin:

Grfico 3.3 Paquetes de clases


3.4.2.1. Paquete database

Contiene clases dedicadas para la creacin, establecimiento, consultas, insercin
de nuevos registros de trfico de Internet, visualizacin en consola de las
consultas realizadas y cierre de la conexin de la base de datos.

Grfico 3.4 Paquete database


<<namespace>>
importexportdatabase
<<namespace>>
descriptivestatistics
<<namespace>>
reversednsresolver
<<namespace>>
dinamicstructures
<<namespace>>
statisticalgraphics
<<namespace>>
newhostdetected
<<namespace>>
database
<<namespace>>
datacapture
<<namespace>>
dataquery
<<namespace>>
flashVideo
<<namespace>>
graphicsDialogs
<<namespace>>
lookandfeel
<<namespace>>
minibrowser
<<namespace>>
realtimegraphs
<<namespace>>
save
<<namespace>>
sniffer
<<namespace>>
sugerencia
pkg application
QueryAndUpdateDatabase
PrintColumnTypes
Database
pkg database
54

3.4.2.2. Paquete dataquery

Funciona en conjunto con el paquete database, realiza consultas ms especficas
sobre el contenido de la base datos, como la lista de estaciones de trabajo y
puertos utilizados.

Grfico 3.5 Paquete dataquery
3.4.2.3. Paquete datacapture
Sin duda es uno de los ms importantes. Contiene clases con mtodos para la
apertura de captura del dispositivo de red, captura de paquetes, decodificacin,
almacenamiento y organizacin en memoria de los datos capturados,
actualizacin de la base de datos, ejecucin del sniffer, graficacin en tiempo real
total y diferenciacin de trfico.

Grfico 3.6 Paquete datacapture
3.4.2.4. Paquete descriptivestatistics
Paquete dedicado para el clculo de parmetros de la estadstica descriptiva.

Grfico 3.7 Paquete descriptivestatistics
K,V
SqlEntry
QueryGetter
pkg dataquery
T
CustomizedPcapTask
DataCaptureTrafficOrder
DataCaptureMethod
TrafficDataCreator PacketDecoder
OpenUpDevice
-backgroundPcapTask
-nuevoPaquete
-dataCreator
pkg datacapture
MeanVarExtendedAndOrderStatistics
pkg descriptivestatistics
55

3.4.2.5. Paquete dinamicstructures
Contiene las clases utilizadas por el paquete datacapture para la obtencin de la
lista dispositivos de red, para la organizacin en memoria del trfico de red
mediante listas dinmicas previa a la actualizacin de la base de datos.

Grfico 3.8 Paquete dinamicstructures

3.4.2.6. Paquete flashVideo
Paquete que permite la reproduccin de animaciones flash y video para contenido
de ayuda.

Grfico 3.9 Paquete flashVideo


3.4.2.7. Paquete graphicsDialogs
Otro paquete muy importante, especialmente para el anlisis estadstico. Contiene
la implementacin de diferentes cuadros de dilogo para cada uno de los
resmenes y grficos estadsticos que deben ser generados, de acuerdo a los
requerimientos a cumplirse. En general lo que se hace es generar una consulta a
la base de datos, segn las opciones elegidas por el usuario del programa, como
pueden ser estaciones de trabajo seleccionadas, fecha de inicio y fin, hora de
inicio y fin, protocolos y puertos.
ProtocolTrafficByConnection
DeviceLocalDiscovery MacIPandLong
GeneralTraffic
HostTraffic
HostInfo
-hostData -inTraffic -outTraffic
#protocols
pkg dinamicstructures
FlashAnimation
Video
pkg flashVideo
56


Grfico 3.10 Paquete graphicsDialogs
K
,
V
O
p
c
io
n
e
s
H
o
s
t
A
n
d
P
o
r
t
E
n
t
r
y
O
p
c
io
n
e
s
B
it
r
a
t
e
v
s
T
ie
m
p
o
P
r
o
t
o
c
o
lo
P
a
s
o
s
O
p
c
i
o
n
e
s
P
o
r
c
e
n
t
a
j
e
G
r
a
f
i
c
o
P
a
s
t
e
l
B
a
s
e
O
p
c
i
o
n
e
s
T
i
m
e
S
e
r
i
e
s
D
a
t
a
s
e
t
C
r
e
a
t
o
r
O
p
c
io
n
e
s
P
o
r
c
e
n
t
a
j
e
G
r
a
f
ic
o
P
a
s
t
e
l2
D
O
p
c
io
n
e
s
P
o
r
c
e
n
t
a
j
e
G
r
a
f
ic
o
P
a
s
t
e
l3
D
O
p
c
io
n
e
s
P
a
s
o
s
P
r
o
m
e
d
io
P
r
o
t
o
c
o
lo
s
O
p
c
io
n
e
s
B
it
r
a
t
e
v
s
T
ie
m
p
o
P
r
o
t
o
c
o
lo
O
p
c
io
n
e
s
H
is
t
o
g
r
a
m
a
T
r
a
f
ic
o
In
t
e
r
n
e
t
O
p
c
io
n
e
s
S
e
r
ie
s
T
ie
m
p
o
P
r
o
t
o
c
o
lo
s
O
p
c
io
n
e
s
G
r
a
f
ic
o
B
it
r
a
t
e
P
r
o
m
e
d
io
O
p
c
io
n
e
s
D
N
S
R
e
v
e
r
s
e
D
i
a
l
o
g
o
D
e
O
p
c
i
o
n
e
s
p
k
g

g
r
a
p
h
ic
s
D
ia
lo
g
s
57

3.4.2.8. Paquete lookandfeel
Paquete para mejoramiento visual de las aplicaciones Java, contiene clases con
mtodos para la seleccin de los distintos temas y almacenamiento en un fichero
de la seleccin actual.

Grfico 3.11 Paquete lookandfeel

3.4.2.9. Paquete importexportdatabase
Como su nombre indica, las clases contenidas en este paquete permiten exportar
un respaldo total de la base de datos en un archivo zip y su posterior importacin.
La finalidad de esta implementacin es la de proveer portabilidad de la base de
datos, para que pueda ser trasladada de una estacin de trabajo a otra, en caso
de ser necesario.

Grfico 3.12 Paquete importexportdatabase

3.4.2.10. Paquete minibrowser
Implementa un componente grfico que embebe al navegador web nativo, puede
ser til para el usuario en escenarios como la resolucin de direcciones IP cuando
se usa el sniffer.
SubstanceSkinComboSelector
LookAndFeelSelector
LoadLookAndFeel
pkg lookandfeel
ExportFileChooser
ImportFileChosser
FolderZiper Unzip
pkg importexportdatabase
58


Grfico 3.13 Paquete minibrowser

3.4.2.11. Paquete newhostdetected
Un requerimiento muy importante para este proyecto es la diferenciacin de
trfico por estacin de trabajo. Una forma de proveer soporte para esta necesidad
es implementando un elemento grfico que permita visualizar y elegir de entre el
conjunto de estaciones de trabajo monitoreadas las que se desee. Este paquete
personaliza un componente grfico tipo rbol, para que cada estacin de trabajo
que sea aadida incluya una caja de seleccin (checkbox en ingls).


Grfico 3.14 Paquete newhostdetected

3.4.2.12. Paquete realtimegraphs
Graficacin del trfico de Internet, ese es el objetivo de las clases contenidas en
este paquete. Incluyen los mecanismos necesarios para la actualizacin
automtica del grfico, ajuste automtico de la escala del grfico de acuerdo al
valor pico mximo, zoom del rea seleccionada, guardado de la imagen, gradiente
de color y alarma sonora para identificar escenarios crticos en base a un valor de
tasa de transferencia suministrado por el usuario, etiquetas de texto con los
valores de la tasa de transferencia instantnea y promedio, reinicio y finalizacin.
Browser
pkg minibrowser
CheckBoxNodeRenderer
CheckBoxNodeEditor
NewHostParameters
CheckBoxNodeHost
NamedVectorHost NewHost
-renderer
-nodoSelect
-param
pkg newhostdetected
59


Grfico 3.15 Paquete realtimegraphs

3.4.2.13. Paquete reversednsresolver

Paquete complementario que permite realizar la resolucin inversa de nombres
dada una direccin IP, en caso de que existan registros en los servidores DNS
ingresados.

Grfico 3.16 Paquete reversednsresolver

3.4.2.14. Paquete save
Contiene clases que implementan mtodos para guardar imgenes y texto,
cuadros de dilogo y autoguardado del contenido de un rea de texto.

Grfico 3.17 Paquete save
SystemTrayMonitor
(from RealTimeBitrate)
CustomizedPolyline
RealTimeBitrate
-polyline
-trayMonitor
pkg realtimegraphs
K,V
ReverseDNSComparableEntry
ReverseIPListResolution
IPTraficInfo
pkg reversednsresolver
SaveImageFileChooser
AutoSaveOptionPane
SaveTextFileChooser
TimerDisplayDialog
AutoSave
FileUtils
-label
pkg save
60

3.4.2.15. Paquete sniffer
Paquete que implementa la funcionalidad de un sniffer, incluida la capacidad de
seleccionar filtros para protocolos, puertos y estaciones de trabajo, decodificacin
total del paquete o slo de sus cabeceras de protocolo en formato de texto,
graficacin del trfico entrante y saliente para estas estaciones.

Grfico 3.18 Paquete sniffer
3.4.2.16. Paquete statisticalgraphics
Este paquete implementa todos los grficos y resmenes informativos para el
trfico de Internet, especificados en el captulo de requerimientos. Trabaja
conjuntamente con el paquete graphicsDialogs, este ltimo recopila las opciones
elegidas por el usuario y las clases de statisticalgraphics se encargan de la
generacin de los grficos y resmenes. Incluyen todas las utilidades para
guardar texto y grficos.

Grfico 3.19 Paquete statisticalgraphics
SnifferParameters
SnifferRunnable
SnifferThread
FilterAction
-param
-sr
pkg sniffer
MousePopupListener
(from CumulativeFrequencyPolygon::CustomizedAxesPlot)
CustomizedAxesPlot
(from CumulativeFrequencyPolygon)
HistogramaAndCumulativeFrequencyPolygon
MousePopupListener
(from CustomizedPdfPlot)
PromedioBitrateHostSeleccionados
K,V
PortAverageEntry
TablaDeEstadisticaDescriptiva
SeriesDeTiempoGraficoPasos
CumulativeFrequencyPolygon
BitratevsTiempoGraphLineas
SerieDeTiempoGraficoLineas
BitratevsTiempoGraphPasos
TablaDeFrecuenciasPanel
PercentagePieGraph2D
PercentagePieGraph3D
CustomizedPdfPlot
TablaDNSReverse
IPRankingList
Histograma
-plot
-histograma
-cumPolygon
-panelEstadisticaDescriptiva -freqPanel
-tablaDNS
pkg statisticalgraphics
61

3.4.2.17. Paquete sugerencia
Conjunto de clases para el despliegue de pginas web con contenido de
sugerencias y ayuda para la interpretacin de los grficos generados por el
paquete statisticalgraphics.

Grfico 3.20 Paquete sugerencia
3.4.3. DESCRIPCIN DE CLASES Y DIAGRAMAS DE ACTIVIDAD
A continuacin se describirn las clases de los distintos paquetes en los que se
han distribuido en la biblioteca principal. Dada la extensin del proyecto, los
diagramas de actividad se mostrarn para los mtodos que se consideran ms
relevantes, desde el punto de vista de mayor complejidad o funcionalidad. Para
mayor informacin sobre el significado e interpretacin de estos diagramas se
recomienda leer el anexo A.
3.4.3.1. Clases del paquete database
3.4.3.1.1. Clase Database
La clase Database permite la creacin, inicializacin y finalizacin de la base de
datos desde la mquina virtual de Java. Adems contiene mtodos para obtener
la conexin actual, un ejecutor de sentencias SQL y un verificador de existencia
de la base de datos.

Grfico 3.21 Clase Database
SugerenciaAyuda
HTMLResources
pkg sugerencia
Database
sqlExecutor:Statement=null
connection:Connection=null
mysqldResource:MysqldResource
IO_DIR:String
<<constructor>> Database(in port:int)
startDatabase(in databaseDir:File, in port:int, in userName:String, in password:String):MysqldResource
leerFicheroMySQL(in script:Statement, in fileLocScript:URL, in fileLocStoredProcedures:URL):void
existDataBaseDir(in ourAppDir:File, in path:String):boolean
cerrarConexion():void
consultaDatabase(in executeSQL:Statement, in consulta:String):ResultSet
getSqlExecutor():Statement
getConnection():Connection
isClosed():boolean
Component
(from Root::Java JDK 6 (types only)::java::awt)
pkg database
62

El grfico 3.22 muestra las actividades realizadas cuando se instancia un objeto
Database.

Grfico 3.22 Diagrama de actividad del constructor de la clase Database
3.4.3.1.2. Clase PrintColumnTypes
La clase PrintColumnTypes permite imprimir los tipos de datos obtenidos
correspondientes a las columnas en una tabla de una consulta.

Grfico 3.23 Clase PrintColumnTypes

Los archivos con los
sripts se encuantran
integrados dentro del
archivo jar de la versin
ejecutable
verificar si existe el
directorio de la base de
datos
leer archivos de scripts de
generacin de la base de
datos
ejecutar las
sentencias de
los scripts
iniciar la base de
datos con escucha
en un puerto
El puerto usado en el proyecto es el 3306
establecer una conexin
[no existe]
[existe]
PrintColumnTypes
printColTypes(in rsmd:ResultSetMetaData):void
pkg database
63

3.4.3.1.3. Clase QueryAndUpdateDatabase
La clase QueryAndUpdateDatabase permite actualizar la base de datos
agregando la cantidad en bytes de datos enviados o recibidos por conexin, para
cada estacin de trabajo, adems realiza consultas a la misma para devolver el
identificador de cada host dentro de los registros almacenados. Permite aadir
nuevas estaciones de trabajo con sus respectivos datos.

Grfico 3.24 Clase QueryAndUpdateDatabase

3.4.3.2. Clases del paquete dataquery
3.4.3.2.1. Clase QueryGetter
La clase QueryGetter permite inicializar y manejar la base de datos con un puerto
de conexin determinado, delega algunos mtodos de la clase Database e
implementa algunos propios. Esto incluye mtodos para realizar consultas
especficas, como por ejemplo, la lista de las estaciones de trabajo presentes en
la base de datos, una lista de los puertos de capa transporte registrados para las
estaciones seleccionadas, en un rango de tiempo dado.

Grfico 3.25 Clase QueryGetter


QueryAndUpdateDatabase
mySQLsearchHost:String="SELECT h.`KEYNUMBER` FROM INTERNETRAFFIC.host h WHERE h.`HOSTMACID`="
mySQLinsertHost:String="CALL INTERNETRAFFIC.SP_INSERTHOST("
mySQLAddPortBitrate:String="CALL INTERNETRAFFIC.SP_DATATRAFFIC("
searchHost(in test:Statement, in MACID:Long, in IP:Long):Long
addHost(in executeSQL:Statement, in hostMAC:Long, in dirIp:Long):Long
addIncomingPacketSizeDDBB(in executeSQL:Statement, in hostKeyNumber:Long, in inTraffic:GeneralTraffic):void
addOutgoingPacketSizeDDBB(in executeSQL:Statement, in hostKeyNumber:Long, in outTraffic:GeneralTraffic):void
addPacketSizeToDDBB(in executeSQL:Statement, in hostKeyNumber:Long, in traffic:GeneralTraffic, in inORout:int):void
pkg database
QueryGetter
puerto:int
databaseInstance:Database
<<constructor>> QueryGetter(in puerto:int)
loadDatahostListData():Map<K->Integer,V->Long[]>
loadPortListByHost(in hostSeleccionados:String, in horasSeleccionadas:String):Map<K->Integer,V->String>
consultaDatabase(in consulta:String):SqlEntry<K->Statement,V->ResultSet>
getSqlExecutor():Statement
cerrarConexion():void
pkg dataquery
64

3.4.3.2.2. Clase SqlEntry
Una instancia de la clase SqlEntry mantiene una relacin unvoca entre un objeto
Statement y un objeto ResultSet.

Grfico 3.26 Clase SqlEntry

3.4.3.3. Clases del paquete datacapture
3.4.3.3.1. Clase CustomizedPcapTask
La clase CustomizedPcapTask es un manejador de las tareas de captura de un
objeto Pcap, que corre a nivel de background y provee mtodos de control y
estado sobre el loop. A diferencia de PcapTask (clase de la cual realiza
herencia), esta incluye un mecanismo seguro para detener el hilo de ejecucin.

Grfico 3.27 Clase CustomizedPcapTask


K,V
SqlEntry
<<constructor>> SqlEntry(in entry:Entry)
<<constructor>> SqlEntry(in key:K, in value:V)
closeStatement():void
<<annotations>> getKey():Statement
<<annotations>> getValue():ResultSet
K,V
<<static>>
SimpleEntry
(from Root::Java JDK 6 (types only)::java::util::AbstractMap)
pkg dataquery
T
CustomizedPcapTask
stop:boolean=false
isGraphicsInitialized:boolean=false
<<constructor>> CustomizedPcapTask(in pcap:Pcap, in count:int, in user:T)
requestStop():void
setGraphsState(in state:boolean):void
<<annotations>> breakLoop():void
run():void
PcapTask
(from Root::Unknown Externals)
pkg datacapture
65

3.4.3.3.2. Clase DataCaptureMethod
La clase DataCaptureMethod permite el control total del monitoreo de una red con
acceso a Internet, a travs de mtodos que interactan con otras clases para
proveer de acceso y almacenamiento automtico de los datos capturados, de un
sniffer con todas sus funcionalidades comunes, graficacin de trfico en tiempo
real y gestin de las estructuras temporales de los paquetes capturados previa a
la actualizacin de la base de datos.

Grfico 3.28 Clase DataCaptureMethod

Para controlar la captura de paquetes DataCaptureMethod sobrescribe el mtodo
run() de un objeto CustomizedPcapTask para que realice las siguientes
actividades, como se muestran en el grfico 3.29.
DataCaptureMethod
pcapObject:Pcap
bbddTraffic:Database
backgroundPcapTask:CustomizedPcapTask
handler:PcapPacketHandler<T1->String>
paquete:PcapPacket
nuevoPaquete:PacketDecoder
dataCreator:TrafficDataCreator
executeSQL:Statement
sniffer:SnifferThread
sr:SnifferRunnable
snifferParam:SnifferParameters
newHostParam:NewHostParameters
<<constructor>> DataCaptureMethod(in tiempo:int)
setNewHostParam(in newHostParam:NewHostParameters):void
setSnifferParam(in snifferParam:SnifferParameters):void
initAttributes(in pcapIfParam:PcapIf, in newRealtimeIncoming:RealTimeBitrate, in newRealtimeOutgoing:RealTimeBitrate, in snifferParam:SnifferParameters, in newHostParam:NewHostParameters):void
initDataBase():void
controlThread(in pcap:Pcap, in handler:PcapPacketHandler<T1->String>, in arg:String):CustomizedPcapTask
createHandler():PcapPacketHandler<T1->String>
tratarPcapPacket(in arrivedPacket:PcapPacket):void
newSniffer():void
iniciar():void
endProgram():void
cerrarConexion():void
closePcap(in pcapObject:Pcap):void
isCaptureActive():Boolean
pkg datacapture
66


Grfico 3.29 Diagrama de actividad del mtodo run() del hilo de ejecucin de captura de paquetes

En el grfico anterior se observa que el hilo de captura de paquetes seguir
ejecutndose, hasta que externamente se solicite la finalizacin de la ejecucin.
Tambin puede observarse que cuando el paquete se ha capturado con xito, el
mtodo tratarPaquete() es utilizado.
iniciar el loop de
captura de 1
paquete
salida
iniciar
actualizacin
automtica de la
base de datos
verificar estado
activo de la
graficacin en
tiempo real
verificar si el hilo de
ejecucin debe ser
detenido
cambiar estado
de los grficos
a activo
tratarPaquete(PcapPacket arrivedPacke)
imprimir "breakloop alcanzado"
imprimir "error de captura"
[no activo]
[true]
[salida = 0]
[salida = -1]
[salida = -2]
[false]
[activo]
67


Grfico 3.30 Diagrama de actividad del mtodo tratarPaquete() de la clase DataCaptureMethod

3.4.3.3.3. Clase DataCaptureTrafficOrder
La clase DataCaptureTrafficOrder permite clasificar e identificar el trfico entrante
y el trfico saliente por medio de las direcciones IP del paquete. Tambin incluye
un mtodo para determinar si una direccin IP es privada, tomando en cuenta los
casos especiales de direcciones de loopback y broadcast.
verificar si el sniffer
necesita la
decodificacin total
de todos los campos
del paquete (raw
packet)
obtener las cabeceras
decodificadas e
identificadores (flags) de
los protocolos
actualizar base de datos con los
paquetes procesados
enviar los datos al
procesador de
paquetes
decodificados
actualizar grficos de trfico
entrante y saliente en tiempo real
para el sniffer.
actualizar grficos de trfico total
entrante y saliente en tiempo real.
decodificar cabeceras
de protocolo del
paquete
1 segundo desde la
ltima actualizacin
1 segundo desde la
ltima actualizacin
20 segundos desde la
ltima actualizacin
verificar integridad
del paquete
decodificado
decodificar raw packet
enviar datos al sniffer
[false]
[true]
[paquete integro]
[paquete defectuoso]
68


Grfico 3.31 Clase DataCaptureTrafficOrder

3.4.3.3.4. Clase OpenUpDevice
La clase OpenUpDevice establece un mtodo que fija los parmetros de captura
de informacin de los paquetes, como son: el mximo nmero de bytes a
capturar, el tiempo de captura de datos antes de devolver los paquetes a la
aplicacin, el modo de captura (en este caso MODE_PROMISCUOUS).

Grfico 3.32 Clase OpenUpDevice

A continuacin un diagrama de actividades que detalla este mtodo.

Grfico 3.33 Diagrama de actividad del mtodo OpenUp() de la clase OpenUpDevice
DataCaptureTrafficOrder
isPrivateIP(in IP:long):boolean
isInOutTraffic(in sourceIP:long, in destinationIP:long):int
pkg datacapture
OpenUpDevice
openUp(in device:PcapIf):Pcap
pkg datacapture
asignar tiempo lmite
de espera hasta la
llegada de un
paquete
asignar la
cantidad mxima
de bytes
capturados por
paquete
Este filtro
permite disminuir
la cantidad de
paquetes que
deben ser
tratados
verificar si el
dispositivo est
listo para la
captura
asignar el filtro "ip and (udp or tcp or icmp)"
abrir dispositivo en
modo promiscuo
mostrar mensaje de error
[incorrecto]
[correcto]
69

3.4.3.3.5. Clase PacketDecoder
La clase PacketDecoder decodifica y verifica las cabeceras de protocolo del
paquete para hacer una distincin del trfico existente. Retorna un array de
objetos con los valores de los campos de protocolo decodificados. Incluye un
mtodo para crear una representacin completa en forma de cadena de texto de
todos los campos del paquete capturado (raw packet).

Grfico 3.34 Clase PacketDecoder

3.4.3.3.6. Clase TrafficDataCreator

La clase TrafficDataCreator trata el paquete capturado organizando la informacin
para cada estacin de trabajo, tomando en cuenta el trfico entrante, el trfico
saliente, protocolos, el tamao del paquete y puertos de origen y destino.
Actualiza peridicamente la base de datos y los grficos correspondientes al
bitrate total en tiempo real, ejecutando hilos independientes.

Grfico 3.35 Clase TrafficDataCreator
PacketDecoder
arrivedPacket:PcapPacket
eth:Ethernet=new Ethernet()
ip:Ip4=new Ip4()
tcp:Tcp=new Tcp()
udp:Udp=new Udp()
icmp:Icmp=new Icmp()
<<constructor>> PacketDecoder()
decoder(in packet:PcapPacket):Object[*]
decoderRaw(in packet:PcapPacket):String
checkPacket(in decodedPacket:Object[*]):boolean
pkg datacapture
TrafficDataCreator
<<final>> hostTrafficList:ArrayList<E->HostTraffic>
realTimeIncomingTotal:RealTimeBitrate
realTimeOutgoingTotal:RealTimeBitrate
selectedHosts:ArrayList<E->HostInfo>
newHost:NewHost
<<final>> scheduler:ScheduledExecutorService=Executors.newScheduledThreadPool(1)
beeperHandle:ScheduledFuture<V->?>
tiempo:int
<<constructor>> TrafficDataCreator(in tiempo:int)
initScheduleAtFixedRateUpdate():void
setRealTimeIncomingTotal(in realTimeIncoming:RealTimeBitrate):void
setRealTimeOutgoingTotal(in realTimeOutgoing:RealTimeBitrate):void
drawTotalRealTimeGraphs():void
setNewHost(in newHostParam:NewHostParameters):void
packetProcesor(in packetValues:Object[*], in executeSQL:Statement):void
searchHostMAC(in MAC:long, in IP:long):int
searchProtocolByPortOutgoing(in existHost:int, in IPType:Integer, in sourcePort:Integer, in destinationPort:Integer, in IPSource:Long, in IPDestination:Long):int
searchProtocolByPortIncoming(in existHost:int, in IPType:Integer, in sourcePort:Integer, in destinationPort:Integer, in IPSource:Long, in IPDestination:Long):int
cancel():void
pkg datacapture
70

El mtodo initScheduleAtFixedRateUpdate() inicia dos actividades peridicas y
automticas que se detallan en el grfico 3.36.

Grfico 3.36 Diagrama de actividad del mtodo initScheduleAtFixedRateUpdate() de la clase
TrafficDataCreator

Otro mtodo muy importante es packetProcesor(,.) que engloba casi todas
funcionalidades descritas en la descripcin de la clase.

Grfico 3.37 Diagrama de actividad del mtodo packetProcesor (,) de la clase
TrafficDataCreator

Lo que se hace es llamar al
mtodo updateDatabase()
de cada objeto HostTraffic
almacenado en una lista
dinmica, cada 20 segundos.
Los grficos
corresponden al
bitrate del trfico
entrante y saliente de
la conexin a Internet.
implementar e
iniciar rutina de
actualizacin
automtica de la
base de datos
iniciar graficacin
en tiempo real del
trfico total
hostTrafficList es una lista de
objetos HostTraffic, donde cada
objeto representa un host con el
trfico entrante y saliente, estos
ltimos son listas que mantienen la
informacin de cada conexin.
recuperar campos de las
cabeceras de protocolo del
paquete recibido.
enviar tamao de paquete
para actualizar grfico en
tiempo real total de trfico
saliente
enviar tamao de paquete
para actualizar grfico en
tiempo real total de trfico
entrante
agregar valor de tamao de
paquete a conexin entrante
agregar valor de tamao de
paquete a conexin saliente
verificar si es trfico
entrante o saliente
resultado
actualizar rbol de hosts en la interfaz grfica actualizar rbol de hosts en la interfaz grfica
hostIndex hostIndex
verificar host en
hostTrafficList
verificar host en
hostTrafficList
buscar si la conexin entrante existe
portIndex
agregar un nuevo objeto HostTraffic agregar un nuevo objeto HostTraffic
buscar si la conexin saliente existe
portIndex
agregar una conexin entrante agregar una conexin saliente
[resultado = 1 = saliente]
[resultado = 2 = entrante]
[hostIndex > 0 = existe]
[hostIndex < 0 = no existe]
[portIndex > 0 = existe]
[portIndex < 0 = no existe] [portIndex < 0 = no existe]
[hostIndex > 0 = existe]
[hostIndex < 0 = no existe]
[portIndex > 0 = existe]
71

3.4.3.4. Clases del paquete descriptivestatistics
3.4.3.4.1. Clase MeanVarExtendedAndOrderStatistics
La clase MeanVarExtendedAndOrderStatistics permite calcular de un array de
valores double, todos los parmetros necesarios para mostrar un resumen de
Estadstica Descriptiva. Para ello hereda de MeanVar y tiene un atributo de tipo
OrderStatistics (Ambas clases del paquete estadstico JSC 1.0).
Los ms importantes son: la media, la varianza, el valor mximo, el valor mnimo,
los cuartiles, la media recortada, el rango y el error estndar de la media.

Grfico 3.38 Clase MeanVarExtendedAndOrderStatistics
3.4.3.5. Clases del paquete dinamicstructures
3.4.3.5.1. Clase DeviceLocalDiscovery
Clase que implementa el descubrimiento de dispositivos de red activos en la PC
actual.

Grfico 3.39 Clase DeviceLocalDiscovery

MeanVarExtendedAndOrderStatistics
orderStatistics:OrderStatistics
datos:double[*]
dataSize:int
<<constructor>> MeanVarExtendedAndOrderStatistics(in data:double[*])
getTrMean(in percent:int):double
getUpperQuartile():double
getRange():double
getNumberOfElements():int
getMinimum():double
getMedian():double
getMaximum():double
getLowerQuartile():double
getInterquartileRange():double
getSEMean():double
cloneOrderStatistics():Object
sortArray():void
MeanVar
(from Root::Unknown Externals)
pkg descriptivestatistics
DeviceLocalDiscovery
deviceList():List<E->PcapIf>
pkg dinamicstructures
72

3.4.3.5.2. Clase GeneralTraffic
La clase GeneralTraffic contiene una lista de todos los protocolos por conexin,
que pueden ser de trfico entrante o saliente, de manera indistinta.


Grfico 3.40 Clase GeneralTraffic

3.4.3.5.3. Clase HostInfo
La clase HostInfo permite abstraer una estacin de trabajo con fines de
identificacin para el monitoreo de trfico de Internet, con una direccin MAC y
una direccin IP.


Grfico 3.41 Clase HostInfo

3.4.3.5.4. Clase HostTraffic
La clase HostTraffic asigna a una estacin de trabajo dos atributos que son trfico
entrante y trfico saliente, cada uno en un objeto GeneralTraffic, donde se
organiza la informacin para cada conexin activa, adems contiene un mtodo
para ingresar a la base de datos una nueva estacin de trabajo y realizar una
actualizacin de sus datos.

GeneralTraffic
<<final>> protocols:ArrayList<E->ProtocolTrafficByConnection>
<<constructor>> GeneralTraffic()
getProtocols():ArrayList<E->ProtocolTrafficByConnection>
add(in e:ProtocolTrafficByConnection):boolean
addPacketLenghtByIndex(in indexProtocolTraffic:int, in ipPacketLenght:int):void
searchProtocolByPort(in IPType:Integer, in sourcePort:Integer, in destinationPort:Integer, in IPSource:Long, in IPDestination:Long):int
calculateTotalIPPacketLengthAndClean():void
clearProtocolConnections():void
pkg dinamicstructures
HostInfo
sourceMAC:long
IPSource:long
<<constructor>> HostInfo(in sourceMAC:long, in IPSource:long)
getIPSource():long
setIPSource(in IPSource:long):void
getSourceMAC():long
setSourceMAC(in sourceMAC:long):void
pkg dinamicstructures
73


Grfico 3.42 Clase HostTraffic

El mtodo con la funcionalidad ms crtica es sin duda updateDatabase(). Este
mtodo es ejecutado cada 20 segundos por un hilo de ejecucin independiente y
se detalla en el diagrama de actividad del grfico 3.43.

Grfico 3.43 Diagrama de actividad del mtodo updateDatabase() de la clase HostTraffic
HostTraffic
hostData:HostInfo
<<final>> inTraffic:GeneralTraffic
<<final>> outTraffic:GeneralTraffic
executeSQL:Statement
<<constructor>> HostTraffic(in hostData:HostInfo, in executeSQL:Statement)
updateDatabase():void
executeUpdate(in hostKeyNUmber:Long):void
searchProtocolByPortIncoming(in IPType:Integer, in sourcePort:Integer, in destinationPort:Integer, in IPSource:Long, in IPDestination:Long):int
addPacketLenghtByIndexIncoming(in indexProtocolTraffic:int, in ipPacketLenght:int):void
addIncomingProtocol(in e:ProtocolTrafficByConnection):boolean
searchProtocolByPortOutgoing(in IPType:Integer, in sourcePort:Integer, in destinationPort:Integer, in IPSource:Long, in IPDestination:Long):int
addPacketLenghtByIndexOutgoing(in indexProtocolTraffic:int, in ipPacketLenght:int):void
addOutgoingProtocol(in e:ProtocolTrafficByConnection):boolean
getSourceMAC():long
getIPSource():long
pkg dinamicstructures
limpiar lista de tamaos
paquete de datos
enviados y recibidos por
cada conexin
calcular total en bytes
de datos enviados y
recibidos por cada
conexin
buscar identificador de la
estacin de trabajo en la
base de datos
agregar valores de trafico entrante a
la base de datos
agregar valores de trafico saliente a
la base de datos
limpiar lista de conexiones de
trfico entrante
limpiar lista de conexiones de
trfico saliente
agregar estacin
de trabajo a la
base de datos
De esta forma se libera
memoria a la espera de nuevas
conexiones
[no existe]
[existe]
74

3.4.3.5.5. Clase MacIPandLong
La clase MacIPandLong contiene a un conjunto de mtodos que permiten trabajar
con las direcciones IP y el valor de la MAC del dispositivo de red. Estos mtodos
fueron pensados para trabajar con valores numricos que representan a las
direcciones IP y la MAC, adems de sus correspondientes representaciones en
forma de cadena de caracteres.

Grfico 3.44 Clase MacIPandLong

3.4.3.5.6. Clase ProtocolTrafficByConnection
La clase ProtocolTrafficByConnection identifica una conexin por medio de sus
atributos, que permiten diferenciar una de otra por cada protocolo de capa
transporte y por estacin de trabajo. Se almacenan una lista de los tamaos de
los paquetes capturados en cada conexin, tomando en cuenta todo el paquete IP
con su cabecera.

Grfico 3.45 Clase ProtocolTrafficByConnection


MacIPandLong
inet_ntoa(in direccionIP:long):String
inet_aton(in direccionIP:String):long
inet_MACtoA(in MAC:long):String
createHexNumber(in number:Long):String
inet_AtoMAC(in MAC:String):long
arrayByteToLongMAC(in arrayMAC:byte[*]):long
arrayByteToLongIP(in arrayMAC:byte[*]):long
reverseIPAddress(in IP:Long):String
pkg dinamicstructures
ProtocolTrafficByConnection
sourceMAC:Long
destinationMAC:Long
sourcePort:Integer
destinationPort:Integer
IPType:Integer
IPSource:Long
IPDestination:Long
firstTimeStamp:Long
lastTimeStamp:Long
sumIpPacketLength:Long
<<final>> packetLenghtIPList:ArrayList<E->Integer>
<<constructor>> ProtocolTrafficByConnection(in sourceMAC:Long, in destinationMAC:Long, in sourcePort:Integer, in destinationPort:Integer, in IPType:Integer, in IPSource:Long, in IPDestination:Long,
addLenght(in ipPacketLenght:int):void
cleanSizePacketList():void
addPacketLenght(in ipPacketLenght:int):void
calculateTotalIPPacketLength():void
getIPDestination():Long
getIPSource():Long
getIPType():Integer
getSumIpPacketLength():double
getDestinationPort():Integer
getLastTimeStamp():Long
getFirstTimeStamp():Long
getSourcePort():Integer
pkg dinamicstructures
75

3.4.3.6. Clases del paquete flashVideo
3.4.3.6.1. Clase FlashAnimation
La clase FlashAnimation permite cargar y manejar archivos con extensin .swf
desde un path especificado, a travs de un reproductor flash nativo.

Grfico 3.46 Clase FlashAnimation

3.4.3.6.2. Clase Video
La clase Video permite utilizar el reproductor de video nativo del sistema
operativo, as como un selector de archivos de video y una casilla de activacin
que permite ocultar la barra de control del reproductor.

Grfico 3.47 Clase Video

3.4.3.7. Clases del paquete graphicsDialogs
3.4.3.7.1. Clase DialogoDeOpciones
La clase DialogoDeOpciones utiliza un cuadro de dilogo que contiene todos los
parmetros necesarios para armar una consulta SQL a la base de datos y obtener
una tabla con resultados tiles, para poder generar cada uno de los diagramas.
Esto incluye un selector de estaciones de trabajo, protocolos, fecha (por medio de
calendarios grficos) e intervalo de horas y puertos. Esta clase abstracta es la
FlashAnimation
flashPlayer:JFlashPlayer
<<constructor>> FlashAnimation(in path:String)
getFlashPlayer():JFlashPlayer
pkg flashVideo
JPanel
(from Root::Java JDK 6 (types only)::javax::swing)
Video
<<constructor>> Video()
getUi():JPanel
pkg flashVideo
76

base para todos los dilogos de opciones que heredan su funcionalidad e
implementan los mtodos de generacin de los grficos de manera particular.
Para el diseo de esta clase se utiliz la herramienta grfica de diseo de
NetBeans IDE 6.5 con los elementos de la paleta de componentes grficos. Esto
simplifica el grado de abstraccin necesario en la elaboracin de una interfaz
grfica.

Grfico 3.48 Vista previa de la ventana de DialogoDeOpciones

Identificador Componente Descripcin
1 JPanel Panel donde se alojar una lista de las estaciones de trabajo existentes en
la base de datos.
2 JPanel Panel donde se ubicar la lista de las estaciones de trabajo seleccionadas.
3 JButton Botn para enviar a una estacin de trabajo a la lista de hosts
seleccionados.
4 JButton Botn para elegir todas las estaciones de trabajo.
5 JButton Botn que quita una estacin de trabajo de la lista de hosts seleccionados.
6 JButton Botn que vaca la lista de hosts seleccionados.
7 JComboBox Lista desplegable para seleccin de protocolos: TCP/UDP, TCP, UDP,
ICMP, ALL (todos sin restriccin).
8 JComboBox Lista desplegable para seleccionar trfico entrante o trfico saliente.
9 JComboBox Dos listas desplegables para elegir la hora y el minuto del da desde el cual
se recuperarn los datos.
10 JComboBox Dos listas desplegables para elegir la hora y el minuto da tope para la
consulta.
11 JPanel Panel donde se ubicar un calendario visual para seleccionar la fecha del
da de inicio.
12 JPanel Panel donde se ubicar un calendario visual para seleccionar la fecha del
da final.
13 JComboBox Lista desplegable para elegir todos, ninguno o un puerto conocido especfico
del trfico TCP/UDP.
14 JComboBox Lista desplegable para elegir todos, ninguno o un puerto no conocido
especfico del trfico TCP/UDP.
15 JButton Botn que llena las listas desplegables de los puertos bien conocidos y no
conocidos, tomando como parmetros las fechas de inicio y fin, las horas de
inicio y fin, y las estaciones de trabajo seleccionadas.
16 JButton Crea la sentencia para la consulta a la base y despliega el grfico y los
resmenes de datos.
17 JButton Cierra la ventana de dilogo.
Tabla 3.2 Descripcin de la vista previa de la ventana de DialogoDeOpciones
77


Grfico 3.49 Clase DialogoDeOpciones
DialogoDeOpciones
MainPanel:JPanel
acceptButton:JButton
availableHostPanel:JPanel
availableHostScrollPane:JScrollPane
calendarSplitPane:JSplitPane
cancelButton:JButton
cargarPuertos:JButton
encapsuladoIPComboBox:JComboBox
endHourComboBox:JComboBox
endMinutesComboBox:JComboBox
hostDisponiblesLabel:JLabel
hostsPanel:JPanel
hostsSeleccionadosLabel:JLabel
in_OutComboBox:JComboBox
jLabel10:JLabel
jLabel3:JLabel
jLabel4:JLabel
jLabel5:JLabel
jLabel6:JLabel
jLabel7:JLabel
jLabel8:JLabel
jLabel9:JLabel
noWellKPortComboBox:JComboBox
panelCalendarFinal:JPanel
panelCalendarInicio:JPanel
portsPanel:JPanel
removeAllHostsButton:JButton
removeOneHostButton:JButton
selectAllHostsButton:JButton
selectOneHostButton:JButton
selectedHostPanel:JPanel
selectedHostScrollPane:JScrollPane
selectionPanel:JPanel
selectionSplitPane:JSplitPane
startHourComboBox:JComboBox
startMinutesComboBox:JComboBox
trafficAndTimePanel:JPanel
wellKPortComboBox:JComboBox
listaHostDisponiblesGrafico:JList
listaHostsSeleccionadosGrafico:JList
listaHostDisponibles:DefaultListModel
listaHostsSeleccionados:DefaultListModel
hostListData:Map<K->Integer,V->Long[]>
hostPortListData:Map<K->Integer,V->String>
calendarioInicio:JCalendar
calendarioFinal:JCalendar
query:QueryGetter
<<constructor>> DialogoDeOpciones(in parent:Frame, in modal:boolean)
<<annotations>> initComponents():void
selectOneHostButtonActionPerformed(in evt:ActionEvent):void
removeAllHostsButtonActionPerformed(in evt:ActionEvent):void
removeOneHostButtonActionPerformed(in evt:ActionEvent):void
selectAllHostsButtonActionPerformed(in evt:ActionEvent):void
acceptButtonActionPerformed(in evt:ActionEvent):void
cancelButtonActionPerformed(in evt:ActionEvent):void
cargarPuertosActionPerformed(in evt:ActionEvent):void
initAttributesHostList():void
setDatosHostList(in objectHostListData:Map<K->Integer,V->Long[]>):void
setQueryGetter(in query:QueryGetter):void
inicioVentanaCalendarioProtocolo():void
cargarListaHostDisponibles():void
cargarListaHostSeleccionados():void
cargarTodoAListaHostSeleccionados():void
quitarListaHostSeleccionados():void
descargarTodoAListaHostSeleccionados():void
cargarValoresComboProtocolos():void
getDateString():String
generarConsultaGrafico():void
drawChart(in value:ResultSet):void
drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
protocolStringToQuery(in protocolString:Object):String
portNumberToQuery(in wellKnownPortNumber:Object, in noWellKnownPortNumber:Object):String
hostsSeleccionados():String
addCustomizedListenerComboBox():void
setEnablecomponent(in setValueBol:Boolean):void
createDataSet(in tablaConsulta:ResultSet):AbstractDataset
createDataValues(in tablaConsulta:ResultSet):double[*]
gettingPorts(in tablaConsulta:ResultSet):ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>
getCalendarioInicio():Calendar
getCalendarioFin():Calendar
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
pkg graphicsDialogs
78

Como puede verse en la vista previa de DialogoOpciones existe el botn Aceptar.
Cuando este botn recibe un evento como un clic se ejecuta el mtodo
generarConsultaGrafico() que se detalla en el grfico 3.50.

Grfico 3.50 Diagrama de actividad del mtodo generarConsultaGrafico() de la clase
DialogoDeOpciones

3.4.3.7.2. Clase OpcionesHostAndPortEntry
La clase OpcionesHostAndPortEntry es un objeto que mantiene asociada una
clave y su valor correspondiente. En el presente caso se la usa para almacenar
pares de objetos relacionados, por ejemplo, el identificador de la estacin de
trabajo en la base de datos (clave) con la MAC e IP (valor) o un puerto (clave) y
sus siglas (valor). Tambin se implementa la funcionalidad de comparacin para
poder ordenar una lista dinmica de estos elementos posteriormente.
La clase DialogoDeOpciones declara como
mtodos abstractos a drawChart(ResultSet value) y
drawChart(ResultSet value,Calendar ini, Calendar
fin). Cada uno de estos mtodos deben ser
implementados por las clases que heredan de
DialogoDeOpciones para realizar operaciones
especializadas sobre estos datos. Estas
operaciones difieren de un diagrama a otro.
crear subconsulta para filtrar el trfico que se
encuentra entre las fechas y horas seleccionadas
fecha Inicio fecha Fin hora Inicio hora Fin
crear subconsulta para filtrar el/los
protocolos seleccionados que son
encapsulados en IP
protocolo
Las subconsultas se organizan en un sola
sentencia y como resultado retorna un objetos
con los campos requeridos para generar el
grfico y los resmenes de datos.
La consulta recupera los datos de los das
indicados por las fechas de inicio y final, entre las
horas y minutos seleccionados.
Estos protocolos son los que corresponden al
campo protocolo de la cabecera IP. entre ellos
ICMP, UDP y TCP
generar diagrama estadstico y
resmenes de datos
crear subconsulta para filtrar puertos
especficos
puerto no conocido puerto bien conocido
crear subconsulta para filtrar el trfico
entrante o el trfico saliente
trfico entrante o saliente
crear sentencia de consulta para
los hosts seleccionados
lista de host seleccionados
Los valores de los puertos son importantes para
los protocolos de capa transporte UDP y TCP.
ejecutar consulta total
resultado consulta
79


Grfico 3.51 Clase OpcionesHostAndPortEntry

3.4.3.7.3. Clase OpcionesBitratevsTiempoProtocolo
La clase OpcionesBitratevsTiempoProtocolo muestra un cuadro de dilogo para
obtener los valores necesarios para la graficacin del diagrama de bitrate vs
tiempo. Para ello hereda la funcionalidad de DialogoDeOpciones e implementa los
mtodos abstractos de manera personalizada.


Grfico 3.52 Clase OpcionesBitratevsTiempoProtocolo




K,V
OpcionesHostAndPortEntry
<<constructor>> OpcionesHostAndPortEntry(in key:K, in value:V)
<<constructor>> OpcionesHostAndPortEntry(in entry:Entry)
<<annotations>> toString():String
compareTo(in o:Object):int
K,V
<<static>>
SimpleEntry
(from Root::Java JDK 6 (types only)::java::util::AbstractMap)
pkg graphicsDialogs
OpcionesBitratevsTiempoProtocolo
<<constructor>> OpcionesBitratevsTiempoProtocolo(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
gettingDataAllIPProtocols(in tablaConsulta:ResultSet, in tempHost:OpcionesHostAndPortEntry, in collection:XYSeriesCollection, in campoProtocoloIP:String):void
gettingDataResultSet(in collection:XYSeriesCollection, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:OpcionesHostAndP
addDataToSerie(in series:XYSeries, in timeStampAnterior:long, in firsttimestamp:double, in bitrate:double):long
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
80

3.4.3.7.4. Clase OpcionesBitratevsTiempoProtocoloPasos
La clase OpcionesBitratevsTiempoProtocoloPasos implementa los mtodos
abstractos de DialogoDeOpciones para obtener los datos de la base necesarios y
graficar el diagrama de bitrate vs tiempo en forma de una serie de pasos.

Grfico 3.53 Clase OpcionesBitratevsTiempoProtocoloPasos

3.4.3.7.5. Clase OpcionesTimeSeriesDatasetCreator
La clase OpcionesTimeSeriesDatasetCreator es la base que implementa los
mtodos comunes en la obtencin de los valores necesarios para la graficacin
de series de tiempo. Las clases que se basen en esta podrn personalizar la
forma con que se presentan los datos grficamente.

Grfico 3.54 Clase OpcionesTimeSeriesDatasetCreator

3.4.3.7.6. Clase OpcionesSeriesTiempoProtocolos
La clase OpcionesSeriesTiempoProtocolos hereda de
OpcionesTimeSeriesDatasetCreator e implementa el mtodo de
graficacin, de tal manera que genere un grfico de series de tiempo
OpcionesBitratevsTiempoProtocoloPasos
<<constructor>> OpcionesBitratevsTiempoProtocoloPasos(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
gettingDataAllIPProtocols(in tablaConsulta:ResultSet, in tempHost:OpcionesHostAndPortEntry, in collection:TimePeriodValuesCollection, in campoProtocoloIP:String):void
gettingDataResultSet(in collection:TimePeriodValuesCollection, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:OpcionesH
addDataToSerie(in series:TimePeriodValues, in timeStampAnterior:long, in firsttimestamp:double, in bitrate:double):long
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
OpcionesTimeSeriesDatasetCreator
calInicio:Calendar
calFin:Calendar
<<constructor>> OpcionesTimeSeriesDatasetCreator(in parent:Frame, in modal:boolean)
drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
gettingDataAllIPProtocols(in tablaConsulta:ResultSet, in tempHost:OpcionesHostAndPortEntry, in collection:TimeSeriesCollection, in campoProtocoloIP:String):void
gettingDataResultSet(in collection:TimeSeriesCollection, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:OpcionesHostAnd
setInitialRegularTimePeriod():RegularTimePeriod
setFinalRegularTimePeriod():RegularTimePeriod
addDataToSerie(in seriesItemList:Map<K->RegularTimePeriod,V->Double>, in tInicial:RegularTimePeriod, in firsttimestamp:double, in IPPacketLenght:double):RegularTimePeriod
fillWithZero(in seriesItemList:Map<K->RegularTimePeriod,V->Double>, in tInicial:RegularTimePeriod):void
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
<<annotations>> drawChart(in value:ResultSet):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
81

utilizando lneas para unir los puntos correspondientes a cada intervalo
regular de tiempo.

Grfico 3.55 Clase OpcionesSeriesTiempoProtocolos

3.4.3.7.7. Clase OpcionesPasosPromedioProtocolos
La clase OpcionesPasosPromedioProtocolos hereda de
OpcionesTimeSeriesDatasetCreator e implementa el mtodo de graficacin
para la generacin de una serie de tiempo, que dibuja pasos en lugar de
lneas en cada intervalo regular de tiempo.


Grfico 3.56 Clase OpcionesPasosPromedioProtocolos


OpcionesSeriesTiempoProtocolos
<<constructor>> OpcionesSeriesTiempoProtocolos(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
OpcionesTimeSeriesDatasetCreator
DialogoDeOpciones
pkg graphicsDialogs
OpcionesPasosPromedioProtocolos
<<constructor>> OpcionesPasosPromedioProtocolos(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
OpcionesTimeSeriesDatasetCreator
DialogoDeOpciones
pkg graphicsDialogs
82

3.4.3.7.8. Clase OpcionesPorcentajeGraficoPastelBase
La clase OpcionesPorcentajeGraficoPastelBase sirve de base para las clases de
graficacin de pasteles de porcentajes 2D y 3D. Al igual que todos los cuadros de
dilogo obtiene los parmetros para la consulta a la base de datos por parte del
usuario del programa.

Grfico 3.57 Clase OpcionesPorcentajeGraficoPastelBase

3.4.3.7.9. Clase OpcionesPorcentajeGraficoPastel2D
La clase OpcionesPorcentajeGraficoPastel2D implementa un cuadro de dilogo
para obtener los parmetros necesarios en la graficacin de un pastel 2D de
porcentajes de datos recibidos o enviados.


Grfico 3.58 Clase OpcionesPorcentajeGraficoPastel2D
OpcionesPorcentajeGraficoPastelBase
<<constructor>> OpcionesPorcentajeGraficoPastelBase(in parent:Frame, in modal:boolean)
drawChart(in value:ResultSet):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
gettingDataAllIPProtocolsPie(in tablaConsulta:ResultSet, in tempHost:OpcionesHostAndPortEntry, in setdata:DefaultPieDataset, in campoProtocoloIPPie:String):void
gettingDataResultSet(in setData:AbstractDataset, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:OpcionesHostAndPortEn
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
OpcionesPorcentajeGraficoPastel2D
<<constructor>> OpcionesPorcentajeGraficoPastel2D(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
OpcionesPorcentajeGraficoPastelBase
DialogoDeOpciones
pkg graphicsDialogs
83

3.4.3.7.10. Clase OpcionesPorcentajeGraficoPastel3D
La clase OpcionesPorcentajeGraficoPastel3D realizar los mismos procedimientos
que el dilogo 2D, con la excepcin que el grfico generado es de apariencia
tridimensional.

Grfico 3.59 Clase OpcionesPorcentajeGraficoPastel3D

3.4.3.7.11. Clase OpcionesHistogramaTraficoInternet
La clase OpcionesHistogramaTraficoInternet implementa un cuadro de dilogo y
recoge las opciones del usuario para la graficacin de un histograma, diagrama
de frecuencias acumuladas y un resumen de Estadstica Descriptiva.

Grfico 3.60 Clase OpcionesHistogramaTraficoInternet

OpcionesPorcentajeGraficoPastel3D
<<constructor>> OpcionesPorcentajeGraficoPastel3D(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
OpcionesPorcentajeGraficoPastelBase
DialogoDeOpciones
pkg graphicsDialogs
OpcionesHistogramaTraficoInternet
calInicio:Calendar
calFin:Calendar
tiempo:RegularTimePeriod
isMapFilled:boolean
<<constructor>> OpcionesHistogramaTraficoInternet(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
gettingDataAllIPProtocols(in tablaConsulta:ResultSet, in tempHost:OpcionesHostAndPortEntry, in timeBitrateMap:Map<K->RegularTimePeriod,V->Double>, in campoProtocoloIP:String):void
gettingDataResultSet(in timeBitrateMap:Map<K->RegularTimePeriod,V->Double>, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSelecc
addDataToMap(in timeBitrateMap:Map<K->RegularTimePeriod,V->Double>, in t:RegularTimePeriod, in firsttimestamp:double, in IPPacketLenght:double):RegularTimePeriod
fillWithZero(in timeBitrateMap:Map<K->RegularTimePeriod,V->Double>, in tInicial:RegularTimePeriod, in tFinal:RegularTimePeriod):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
setInitialRegularTimePeriod():RegularTimePeriod
setFinalRegularTimePeriod():RegularTimePeriod
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
84

3.4.3.7.12. Clase OpcionesGraficoBitratePromedio
La clase OpcionesGraficoBitratePromedio recoge los parmetros suministrados
por el usuario y genera un diagrama de barras horizontales cuya longitud
representa la tasa de trasferencia promedio del intervalo de tiempo elegido.

Grfico 3.61 Clase OpcionesGraficoBitratePromedio

3.4.3.7.13. Clase OpcionesDNSReverse
La clase OpcionesDNSReverse implementa un cuadro de dilogo de seleccin de
opciones para generar un grfico del ranking de direcciones IP ms usadas y el
mecanismo de resolucin de nombres.

Grfico 3.62 Clase OpcionesDNSReverse



OpcionesGraficoBitratePromedio
<<constructor>> OpcionesGraficoBitratePromedio(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
gettingDataAllIPProtocols(in tablaConsulta:ResultSet, in timeAverage:double, in tempHost:OpcionesHostAndPortEntry, in setData:DefaultCategoryDataset, in campoProtocoloIP:String):void
gettingDataResultSet(in setData:AbstractDataset, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:OpcionesHostAndPortEn
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
OpcionesDNSReverse
dataSet:DefaultCategoryDataset=new DefaultCategoryDataset()
<<constructor>> OpcionesDNSReverse(in parent:Frame, in modal:boolean)
<<annotations>> drawChart(in value:ResultSet):void
createIPMapList(in tablaConsulta:ResultSet):ArrayList<E->ReverseDNSComparableEntry<K->Long,V->IPTraficInfo>>
gettingIPList(in tablaConsulta:ResultSet, in hostSeleccionado:OpcionesHostAndPortEntry, in mapIPList:Map<K->Long,V->IPTraficInfo>, in seleccionIPProtocol:String):void
gettingIPListTCPUDP(in mapIPList:Map<K->Long,V->IPTraficInfo>, in tablaConsulta:ResultSet, in puertos:ArrayList<E->OpcionesHostAndPortEntry<K->Integer,V->String>>, in hostSeleccionado:Opcio
IPSorter(in in_OutOption:String, in mapIPList:Map<K->Long,V->IPTraficInfo>, in tablaConsulta:ResultSet, in hostSeleccionado:OpcionesHostAndPortEntry):void
<<annotations>> drawChart(in value:ResultSet, in ini:Calendar, in fin:Calendar):void
<<annotations>> createDataSet(in tablaConsulta:ResultSet):AbstractDataset
<<annotations>> createDataValues(in tablaConsulta:ResultSet):double[*]
getDataSet():DefaultCategoryDataset
JDialog
(from Root::Java JDK 6 (types only)::javax::swing)
DialogoDeOpciones
pkg graphicsDialogs
85

3.4.3.8. Clases del paquete importexportdatabase
3.4.3.8.1. Clase FolderZiper
La clase FolderZiper comprime archivos y carpetas respetando su jerarqua en un
archivo con extensin .zip.


Grfico 3.63 Clase FolderZiper


3.4.3.8.2. Clase Unzip
La clase Unzip implementa un descompresor de archivos .zip para la importacin
de la base de datos, adems utiliza un cuadro de dilogo que permite elegir el
archivo a descomprimir.


Grfico 3.64 Clase Unzip


3.4.3.8.3. Clase ImportFileChooser
La clase ImportFileChooser permite recuperar el backup de los archivos que
respaldan a la base de datos, este backup tiene la extencin .zip, adems
dispondr de un cuadro de dilogo para la importacin.
FolderZiper
zipFolder(in srcFolder:String, in destZipFile:String):void
addFileToZip(in path:String, in srcFile:String, in zip:ZipOutputStream):void
addFolderToZip(in path:String, in srcFolder:String, in zip:ZipOutputStream):void
pkg importexportdatabase
Unzip
executeUnzip(in srcZipFile:String, in destFolder:String):void
pkg importexportdatabase
86


Grfico 3.65 Clase ImportFileChooser


3.4.3.8.4. Clase ExportFileChooser
La clase ExportFileChooser permite realizar un backup de los archivos que
respaldan a la base de datos, exportando todos ellos en una carpeta comprimida
con la extensin .zip, dispondr de un cuadro de dilogo para elegir el directorio y
nombre del archivo.

Grfico 3.66 Clase ExportFileChooser


3.4.3.9. Clases del paquete lookandfeel
3.4.3.9.1. Clase LookAndFeelSelector
La clase LookAndFeelSelector permite instanciar un cuadro de dilogo y una lista
de skins
3
contenida en un JComboBox para cambiar el tema de la interfaz grfica.

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.

Grfico 3.126 Vista previa de ventana 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

Grfico 3.130 Vista previa de QueryStatisticsView



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.
-Ver: Incluye
+ Look & Feel despliega un cuadro de dilogo con una lista
desplegable de distintos temas de apariencia para la aplicacin.
-Ayuda: Incluye
+ Acerca de informacin sobre la aplicacin.
1 JToolBar Barra de herramientas con los siguientes botones, de izquierda a derecha
respectivamente:
-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.
-Conectar a Base de Datos establece una conexin con la base de
datos para la realizacin de consultas.
-Desconectar de Base de Datos finaliza la conexin de la base de datos
de manera segura.
2 JPanel Panel contenido en un panel de desplazamiento donde se ubicar un
StatisticsGraphicsTypesJList, que es una clase personalizada que hereda
131

todos los atributos y funcionalidad de un JList o lista. Esta lista contiene
todos los grficos y resmenes de los datos capaces de obtener por la
aplicacin y se inicializa inmediatamente despus de establecer la
conexin con la base de datos.
Para acceder al cuadro de dilogo para la generacin de los grficos se
hace doble clic sobre el nombre del grfico deseado.
3 JTextArea rea de texto donde se incluye una descripcin textual de los grficos.
Cambia de acuerdo a la seleccin hecha en la lista.
4 JPanel Panel donde se reproduce una animacin flash por cada tipo grfico
seleccionado.
Tabla 3.6 Descripcin vista previa de QueryStatisticsView
3.7. DESCRIPCIN DE CASOS DE USO
A continuacin se describir el desarrollo de los casos de uso del grfico 3.1,
especificando sus detalles y condiciones para las aplicaciones TrafficStatistics y
QueryStatistics.
3.7.1. CASOS DE USO REALIZADOS POR LA APLICACIN TRAFFIC
STATISTICS
Caso de Uso: Graficar trfico total en tiempo real
Actor: Administrador
Descripcin: Permite mostrar grficamente el trfico total entrante y saliente en
tiempo real para el dispositivo de red elegido por el administrador.
Activacin: Realizar un clic en el botn iniciar la captura de paquetes
Curso Normal Alternativas
1.- Inicia la aplicacin TrafficStatistics Ninguna
2.- Elegir el dispositivo de red a ser
monitoreado.
Ninguna
3.-Iniciar el monitoreo y representacin
grfica del trfico de Internet con el botn
iniciar la captura de paquetes
Ninguna
Precondiciones: Haber elegido la tarjeta de red en donde se va a monitorear el
trfico entrante como saliente.
Postcondiciones: Ninguna
Puntos de extensin: Ninguna
Observaciones y Datos: Ninguna
Tabla 3.7 Caso de uso Graficar trfico total en tiempo real para el actor Administrador.

Caso de Uso: Desplegar un sniffer y guardar contenido
Actor: Administrador
Descripcin: Permite mostrar un sniffer y guardar su contenido para el trfico
monitoreado en tiempo real por hosts seleccionados para el dispositivo de red elegido
por el administrador.
Activacin: Realizar un clic en el botn Inicializa o continua el despliegue de los
datos de acuerdo al filtro seleccionado
Curso Normal Alternativas
132

1.- Inicia la aplicacin TrafficStatistics Ninguna
2.- Elegir el dispositivo de red a ser
monitoreado.
Ninguna
3.-Iniciar el monitoreo y representacin
grfica del trfico de Internet con el botn
iniciar la captura de paquetes
Ninguna
4.- Elegir la pestaa Modo snifferen la
parte derecha de la pantalla.
Ninguna
5.- Seleccionar los hosts a monitorear del
rbol de estaciones de trabajo.
Ninguna
6.-Seleccionar un protocolo sea del tipo
TCP, UDP, ICMP o Todos
6.1.-No seleccionar ningn protocolo ya
que esta por defecto asignado todos los
protocolos.
7.-Seleccionar un puerto para el filtro,
teniendo en cuenta que todos los puertos
est indicado con el valor -1.
6.1.-No seleccionar ningn puerto ya que
esta por defecto asignado todos los
puertos con el valor -1.
7.- Inicializar el anlisis realizando un clic
en el botn Inicializa o continua el
despliegue de los datos de acuerdo al
filtro seleccionado
Ninguna
Precondiciones: Haber elegido la tarjeta de red en donde se va a monitorear el
trfico entrante como saliente, haber inicializado el monitoreo del trfico total y haber
seleccionado los hosts a monitorear de un rbol de estaciones de trabajo.
(Opcionales): Haber elegido un protocolo TCP,UDP,ICMP o todos, adems haber
seleccionado un puerto y haber asignado la forma de respaldar los datos obtenidos
durante el monitoreo.
Postcondiciones: (Opcional) Seleccionar la manera y el directorio en donde se
almacenarn los datos monitoreados.
Puntos de extensin: Se puede imprimir los campos de los paquetes monitoreados
en forma reducida o en forma extendida seleccionando el checkbox RAW en la barra
de herramientas del sniffer.
Observaciones y Datos:
-Si no se ha seleccionado ninguna forma de almacenar datos, se desplegara un
cuadro de dilogo que permitir guardar los datos cada 15000 lneas impresas en el
rea de texto.
-Si no se ha seleccionado ningn protocolo ni puerto est asignado por defecto todos
los protocolos y todos los puertos.
Tabla 3.8 Caso de uso Desplegar un sniffer y guardar contenido para el actor Administrador.

Caso de Uso: Graficar trfico en tiempo real por hosts.
Actor: Administrador
Descripcin: Permite mostrar grficamente el trfico entrante y saliente por hosts
seleccionados en tiempo real para el dispositivo de red elegido por el administrador.
Activacin: Realizar un clic en el botn Inicializa o continua el despliegue de los
datos de acuerdo al filtro seleccionado y seleccionar la pestaa trfico en tiempo
real por hosts seleccionados
Curso Normal Alternativas
1.- Inicia la aplicacin TrafficStatistics Ninguna
2.- Elegir el dispositivo de red a ser
monitoreado.
Ninguna
3.-Iniciar el monitoreo y representacin
grfica del trfico de Internet con el botn
iniciar la captura de paquetes
Ninguna
133

4.- Elegir la pestaa Modo snifferen la
parte derecha de la pantalla.
Ninguna
5.- Seleccionar los hosts a monitorear del
rbol de estaciones de trabajo.
Ninguna
5.-Seleccionar un protocolo sea del tipo
TCP, UDP, ICMP o Todos
5.1.-NO seleccionar ningn protocolo ya
que esta por defecto asignado todos los
protocolos.
6.-Seleccionar un puerto para el filtro,
teniendo en cuenta que todos los puertos
est indicado con el valor -1.
6.1.-NO seleccionar ningn puerto ya que
esta por defecto asignado todos los
puertos con el valor -1.
7.- Inicializar el anlisis realizando un clic
en el botn Inicializa o continua el
despliegue de los datos de acuerdo al
filtro seleccionado
Ninguna
8.-Seleccionar la pestaa trfico en
tiempo real por hosts seleccionados
Ninguna
Precondiciones: Haber elegido la tarjeta de red en donde se va a monitorear el
trfico entrante como saliente, haber inicializado el monitoreo del trfico total y haber
seleccionado los hosts a monitorear de un rbol de estaciones de trabajo.
(Opcionales): Haber elegido un protocolo TCP,UDP,ICMP o todos, adems haber
seleccionado un puerto y haber asignado la forma de respaldar los datos obtenidos
durante el monitoreo.
Inicializar la captura realizando un clic en el botn Inicializa o continua el despliegue
de los datos de acuerdo al filtro seleccionado
Postcondiciones: (Opcional) Seleccionar la manera y el directorio en donde se
almacenarn los datos monitoreados.
Puntos de extensin: Ninguna
Observaciones y Datos: Ninguna
Tabla 3.9 Caso de uso Graficar trfico en tiempo real por hosts para el actor Administrador.

Caso de Uso: Diferenciar trfico (Host, protocolo y puertos)
Actor: Desplegar un sniffer y guardar contenido
Descripcin: Permite diferenciar el trfico de Internet monitoreado a travs de un
filtro por host, protocolo y puertos.
Activacin: Realizar un clic en el botn Inicializa o continua el despliegue de los
datos de acuerdo al filtro seleccionado
Curso Normal Alternativas
1.- Inicia la aplicacin TrafficStatistics Ninguna
2.- Elegir el dispositivo de red a ser
monitoreado.
Ninguna
3.-Iniciar el monitoreo y representacin grfica
del trfico de Internet con el botn iniciar la
captura de paquetes
Ninguna
4.- Elegir la pestaa Modo snifferen la parte
derecha de la pantalla.
Ninguna
5.- Seleccionar los hosts a monitorear del
rbol de estaciones de trabajo.
Ninguna
5.-Seleccionar un protocolo sea del tipo TCP,
UDP, ICMP o Todos
5.1.-No seleccionar ningn protocolo
ya que esta por defecto asignado
todos los protocolos.
6.-Seleccionar un puerto para el filtro,
teniendo en cuenta que todos los puertos est
indicado con el valor -1.
6.1.-No seleccionar ningn puerto ya
que esta por defecto asignado todos
los puertos con el valor -1.
134

7.- Inicializar el anlisis realizando un clic en el
botn Inicializa o continua el despliegue de
los datos de acuerdo al filtro seleccionado
Ninguna
Precondiciones: Haber elegido la tarjeta de red en donde se va a monitorear el
trfico entrante como saliente, haber inicializado el monitoreo del trfico total y haber
seleccionado los hosts a monitorear de un rbol de estaciones de trabajo.
(Opcionales): Haber elegido un protocolo TCP,UDP,ICMP o todos, adems haber
seleccionado un puerto y haber asignado la forma de respaldar los datos obtenidos
durante el monitoreo.
Postcondiciones: Ninguna.
Puntos de extensin: Ninguna.
Observaciones y Datos:
-Si no se ha seleccionado ningn protocolo ni puerto est asignado por defecto todos
los protocolos y todos los puertos.
Tabla 3.10 Caso de uso Diferenciar trfico (Host, protocolo y puertos) para el actor Desplegar un
sniffer y guardar contenido.

Caso de Uso: Almacenar y recuperar de disco.
Actor: Capturar trfico de Internet
Descripcin: Permite guardar los valores de longitud de paquete y los timestamp
monitoreados en una base de datos MySQL.
Activacin: Realizar un clic en el botn iniciar la captura de paquetes
Curso Normal Alternativas
1.- Inicia la aplicacin TrafficStatistics Ninguna
2.- Elegir el dispositivo de red a ser
monitoreado.
Ninguna
3.-Iniciar el monitoreo y representacin
grfica del trfico de Internet con el botn
iniciar la captura de paquetes
Ninguna
Precondiciones:
-Haber elegido la tarjeta de red en donde se va a monitorear el trfico entrante como
saliente.
-Haber inicializado la captura de datos con el botn iniciar la captura de paquetes
-Haber flujo de datos para almacenarlos.
Pos condiciones: Ninguna
Puntos de extensin: Ninguna
Observaciones y Datos: Ninguna
Tabla 3.11 Caso de uso Almacenar y recuperar de disco para el actor Capturar trfico de Internet

3.7.2. CASOS DE USO REALIZADOS POR LA APLICACIN QUERY
STATISTICS
Caso de Uso: Mostrar y guardar grfico de anlisis estadstico.
Actor: Administrador
Descripcin: Permite mostrar grficamente los resultados estadsticos obtenidos de
los valores almacenados en la base de datos.
Activacin: Inicializar la aplicacin Query Statistics para el anlisis de los datos.
Curso Normal Alternativas
1.- Inicia la aplicacin QueryStatistics Ninguna
2.- Conectar la base de datos MySQL. Ninguna
3.-Elegir un anlisis estadstico en
particular de la lista.
Ninguna
4.- Asignar los diferentes filtros de puertos, protocolos, fechas para los datos que el
135

usuario desee analizar.

Precondiciones:
-Haber guardado datos durante el monitoreo del flujo de trfico a Internet.
-Haber elegido la base de datos de donde se va a extraer los valores almacenados
del monitoreo.
-Haber inicializado la conexin a la base de datos.
Pos condiciones: (Automtico) cierra la base de datos si no est usando la
aplicacin traffic statistics.
Observaciones y Datos: Ninguna
Tabla 3.12 Caso de uso Mostrar y guardar grfico de anlisis estadstico para el actor
Administrador.

Caso de Uso: Diferenciar trfico (Host, protocolo y puertos)


Actor: Mostrar y guardar grfico de anlisis estadstico.
Descripcin: Permite diferenciar los valores obtenidos del trfico de Internet
almacenados en la base de datos MySQL a travs de un filtro por host, protocolo y
puertos.
Activacin: Inicializar la aplicacin Query Statistics para el anlisis de los datos.
Curso Normal Alternativas
1.- Inicia la aplicacin QueryStatistics Ninguna
2.- Conectar la base de datos MySQL. Ninguna
3.-Elegir un anlisis estadstico en
particular de la lista.
Ninguna
4.- Asignar los diferentes filtros de
puertos, protocolos, fechas para los datos
que el usuario desee analizar.
Ninguna
Precondiciones:
-Haber guardado datos durante el monitoreo del flujo de trfico a Internet.
-Haber elegido la base de datos de donde se va a extraer los valores almacenados
del monitoreo.
-Haber inicializado la conexin a la base de datos.
Pos condiciones: (Automtico) cierra la base de datos si no est usando la
aplicacin traffic statistics.
Puntos de extensin: Ninguna.
Observaciones y Datos: Ninguna.
Tabla 3.13 Caso de uso Diferenciar trfico (Host, protocolo y puertos) para el actor Mostrar y
guardar grfico de anlisis estadstico.

Caso de Uso: Almacenar y recuperar de disco.
Actor: Mostrar y guardar grfico de anlisis estadstico.
Descripcin: Permite recuperar los valores de longitud de paquete y los timestamp
monitoreados de una base de datos MySQL.
Activacin: Inicializar la aplicacin Query Statistics para el anlisis de los datos.
Curso Normal Alternativas
1.- Inicia la aplicacin QueryStatistics Ninguna
2.- Conectar la base de datos MySQL. Ninguna
3.-Elegir un anlisis estadstico en
particular de la lista.
Ninguna
4.- Asignar los diferentes filtros de
puertos, protocolos, fechas para los datos
que el usuario desee analizar.
Ninguna
Precondiciones:
136

-Haber guardado datos durante el monitoreo del flujo de trfico a Internet.
-Haber elegido la base de datos de donde se va a extraer los valores almacenados
del monitoreo.
-Haber inicializado la conexin a la base de datos.
Pos condiciones: (Automtico) cierra la base de datos si no est usando la
aplicacin traffic statistics.
Puntos de extensin: Ninguna
Observaciones y Datos: Ninguna
Tabla 3.14 Caso de uso Almacenar y recuperar de disco para el actor Mostrar y guardar grfico de
anlisis estadstico.
3.8. DIAGRAMAS DE SECUENCIA Y COLABORACIN
3.8.1. TRAFFIC STATISTICS
Casos de uso:
Graficar trfico total en tiempo real <<include>> Capturar trfico de
Internet.
El usuario genera un evento sobre el botn de inicio de captura, que
desencadena una secuencia de llamadas como se muestra en el grfico
3.131.

Grfico 3.131 Diagrama de secuencia para el inicio de la graficacin en tiempo real del trfico total
y captura de paquetes del mtodo startCaptureButtonActionPerformed() de la clase
TrafficStatisticsView.
:TrafficStatisticsView
:Administrador
startCaptureButton:JButton
1.1: startCaptureButton.isEnabled()
1.6: writeDatabaseState("T")
1.3: removeGraphs()
1.4: initAppClasses()
1.2: startedCapture()
1: startCaptureButtonActionPerformed(evt)
1.5: initDataCapture()
alt
[startCaptureButton.isEnabled()==true]
137


Grfico 3.132 Diagrama de colaboracin para el inicio de la graficacin en tiempo real del trfico
total y captura de paquetes del mtodo startCaptureButtonActionPerformed() de la clase
TrafficStatisticsView.

startCaptureButtonActionPerformed()
Mensaje Significado
1: startCaptureButtonActionPerformed(evt) Inicializa la captura, almacenamiento y
graficacin del trfico de Internet, con un evento
generado por el usuario.
1.1: startCaptureButton.isEnabled() Verifica si el botn de inicio est habilitado para
su uso.
1.2: startedCapture() Estado de los botones cuando se hace clic
sobre el botn de inicio de captura del trfico de
Internet.
1.3: removeGraphs() Remueve las formas dibujadas del trfico de
Internet de los hosts seleccionados as como
del trfico total y cancela la graficacin
automtica para todos los grficos.
1.4: initAppClasses() Instancia e inicializa todos los objetos
necesarios para la captura, almacenamiento y
graficacin para el monitoreo del trfico de
Internet, as como un listener para la parte del
rea de texto y un timer para la actualizacin de
la base de datos
1.5: initDataCapture() Inicia la captura de datos con los objetos
necesarios para realizar el monitoreo del trfico
de Internet.
1.6: writeDatabaseState("T") Escribe el estado de utilizacin de la base de
datos a un archivo para que otra aplicacin
pueda saber si cierra o no la conexin. Si el
valor almacenado es "T" indica que
TrafficStatistics tiene activa la conexin a la
base de datos, "Stop" indica que la base no
est siendo utilizada. Adems verifica el estado
de utilizacin de la base de datos del otro
programa que usa la misma conexin.
Tabla 3.15 Mensajes del diagrama de colaboracin del grfico 3.132

Para describir con mayor profundidad la secuencia de mensajes se desarroll el
diagrama del mtodo initDataCapture() en el grfico 3.133.



startCaptureButton:JButton :TrafficStatisticsView
:Administrador
1.6: writeDatabaseState("T")
1.5: initDataCapture()
1.2: startedCapture()
1.3: removeGraphs()
1.4: initAppClasses()
1.1: startCaptureButton.isEnabled()
1: startCaptureButtonActionPerformed(evt)
138

Grfico 3.133 Diagrama de secuencia para explicar en detalle el mtodo initDataCapture() de la
clase TrafficStatisticsView destacando los mensajes que realizan los casos de uso citados al
inicio
b
a
c
k
g
r
o
u
n
d
P
c
a
p
T
a
s
k
:
C
u
s
t
o
m
iz
e
d
P
c
a
p
T
a
s
k
n
u
e
v
a
C
a
p
t
u
r
a
:
D
a
t
a
C
a
p
t
u
r
e
M
e
t
h
o
d
h
o
s
t
F
e
a
t
u
r
e
s
S
c
r
o
llP
a
n
e
:
J
S
c
r
o
llP
a
n
e
r
e
a
lT
im
e
O
u
t
g
o
in
g
T
o
t
a
l:
R
e
a
lT
im
e
B
it
r
a
t
e
r
e
a
lT
im
e
In
c
o
m
in
g
T
o
t
a
l:
R
e
a
lT
im
e
B
it
r
a
t
e
s
c
h
e
d
u
le
r
:
S
c
h
e
d
u
le
d
E
x
e
c
u
t
o
r
S
e
r
v
ic
e
:
T
r
a
f
f
ic
S
t
a
t
is
t
ic
s
V
ie
w
d
a
t
a
C
r
e
a
t
o
r
:
T
r
a
f
f
ic
D
a
t
a
C
r
e
a
t
o
r
p
c
a
p
:
P
c
a
p
S
y
s
te
m
.o
u
t.p
r
in
tln
(
"
B
R
E
A
K
L
O
O
P
A
L
C
A
N
Z
A
D
O
"
)
S
y
s
te
m
.o
u
t.p
r
in
tln
(
"
E
R
R
O
R
D
E
C
A
P
T
U
R
A
"
)
S
y
s
te
m
.o
u
t.p
r
in
tln
(
"
P
A
R
A
D
A
D
E
T
E
C
T
A
D
A
"
)
1
.1
.1
: in
itS
c
h
e
d
u
le
A
tF
ix
e
d
R
a
te
U
p
d
a
te
(
)
1
.1
.4
.1
.2
: a
d
d
P
a
c
k
e
tS
iz
e
(
IP
P
a
c
k
e
tL
e
n
g
th
)
1
.1
.1
.1
.1
: d
o
B
itr
a
te
(
)
1
: in
ic
ia
r
(
)
1
.1
.1
.1
: d
r
a
w
T
o
ta
lR
e
a
lT
im
e
G
r
a
p
h
s
(
)
1
.1
.3
: lo
o
p
(
c
o
u
n
t,h
a
n
d
le
r
,a
r
g
)
1
.1
: s
ta
r
t(
)
i
1
.1
.4
: tr
a
ta
r
P
c
a
p
P
a
c
k
e
t(
p
a
q
u
e
te
)
1
.1
.4
.1
: p
a
c
k
e
tP
r
o
c
e
s
o
r
(
p
a
c
k
e
tV
a
lu
e
s
, e
x
e
c
u
te
S
Q
L
)
1
.1
.1
.2
: s
c
h
e
d
u
le
A
tF
ix
e
d
R
a
te
(
b
e
e
p
e
r
,tie
m
p
o
,tie
m
p
o
,S
E
C
O
N
D
S
)
2
: s
e
tV
is
ib
le
(
tr
u
e
)
[b
e
e
p
e
r
H
a
n
d
le
:S
c
h
e
d
u
le
d
F
u
tu
r
e
]
1
.1
.4
.1
.1
: a
d
d
P
a
c
k
e
tS
iz
e
(
IP
P
a
c
k
e
tL
e
n
g
th
)
1
.1
.1
.1
.2
: d
o
B
itr
a
te
(
)
1
.1
.2
: s
e
tG
r
a
p
h
s
S
ta
te
(
tr
u
e
)
lo
o
p
[
!
s
t
o
p
]
a
lt
[!is
G
r
a
p
h
ic
s
In
itia
liz
e
d
]
a
lt
[i=
=
0
]
a
lt
[o
u
tg
o
in
g
]
[in
c
o
m
in
g
]
a
lt
[s
to
p
=
=
tr
u
e
]
a
lt
[i=
=
-
2
]
a
lt
[i=
=
-
1
]
139

Grfico 3.134 Diagrama de colaboracin para explicar en detalle el mtodo initDataCapture() de la
clase TrafficStatisticsView destacando los mensajes que realizan los casos de uso citados al
inicio
b
a
c
k
g
r
o
u
n
d
P
c
a
p
T
a
s
k
:
C
u
s
t
o
m
i
z
e
d
P
c
a
p
T
a
s
k
h
o
s
t
F
e
a
t
u
r
e
s
S
c
r
o
l
l
P
a
n
e
:
J
S
c
r
o
l
l
P
a
n
e
n
u
e
v
a
C
a
p
t
u
r
a
:
D
a
t
a
C
a
p
t
u
r
e
M
e
t
h
o
d
r
e
a
l
T
i
m
e
I
n
c
o
m
i
n
g
T
o
t
a
l
:
R
e
a
l
T
i
m
e
B
i
t
r
a
t
e
r
e
a
l
T
i
m
e
O
u
t
g
o
i
n
g
T
o
t
a
l
:
R
e
a
l
T
i
m
e
B
i
t
r
a
t
e
s
c
h
e
d
u
l
e
r
:
S
c
h
e
d
u
l
e
d
E
x
e
c
u
t
o
r
S
e
r
v
i
c
e
d
a
t
a
C
r
e
a
t
o
r
:
T
r
a
f
f
i
c
D
a
t
a
C
r
e
a
t
o
r
:
T
r
a
f
f
i
c
S
t
a
t
i
s
t
i
c
s
V
i
e
w
p
c
a
p
:
P
c
a
p
1
.
1
.
4
.
1
.
1
:

a
d
d
P
a
c
k
e
t
S
i
z
e
(
I
P
P
a
c
k
e
t
L
e
n
g
t
h
)
1
:

i
n
i
c
i
a
r
(
)
1
.
1
.
3
:

lo
o
p
(
c
o
u
n
t
,
h
a
n
d
le
r
,
a
r
g
)
2
:

s
e
t
V
i
s
i
b
le
(
t
r
u
e
)
1
.
1
.
4
.
1
:

p
a
c
k
e
t
P
r
o
c
e
s
o
r
(
p
a
c
k
e
t
V
a
lu
e
s
,

e
x
e
c
u
t
e
S
Q
L
)
1
.
1
.
1
.
2
:

s
c
h
e
d
u
le
A
t
F
i
x
e
d
R
a
t
e
(
b
e
e
p
e
r
,
t
i
e
m
p
o
,
t
i
e
m
p
o
,
S
E
C
O
N
D
S
)
1
.
1
.
4
:

t
r
a
t
a
r
P
c
a
p
P
a
c
k
e
t
(
p
a
q
u
e
t
e
)
1
.
1
.
2
:

s
e
t
G
r
a
p
h
s
S
t
a
t
e
(
t
r
u
e
)
1
.
1
.
1
:

i
n
i
t
S
c
h
e
d
u
le
A
t
F
i
x
e
d
R
a
t
e
U
p
d
a
t
e
(
)
1
.
1
.
1
.
1
:

d
r
a
w
T
o
t
a
lR
e
a
lT
i
m
e
G
r
a
p
h
s
(
)
1
.
1
.
1
.
1
.
1
:

d
o
B
i
t
r
a
t
e
(
)
1
.
1
.
4
.
1
.
2
:

a
d
d
P
a
c
k
e
t
S
i
z
e
(
I
P
P
a
c
k
e
t
L
e
n
g
t
h
)
1
.
1
.
1
.
1
.
2
:

d
o
B
i
t
r
a
t
e
(
)
1
.
1
:

s
t
a
r
t
(
)
140


initDataCapture()
Mensaje Significado
1: iniciar() Crea e inicializa un subproceso en segundo
plano para la captura de datos
monitoreados.
1.1: start() Permite inicializar un manejador de tareas
para la captura de un objeto Pcap. Este
corre a nivel de bakground aadiendo
mtodos de control y mtodos de estado
para loop de captura.
1.1.1: initScheduleAtFixedRateUpdate() Actualiza la base de datos con la lista de
hosts existentes obtenida del monitoreo de
trfico Internet.
1.1.1.1: drawTotalRealTimeGraphs() Grfica el trfico incoming y outgoing en
tiempo real.
1.1.1.1.1: doBitrate()
1.1.1.1.2: doBitrate()

Asigna un hilo de ejecucin para la
actualizacin de la representacin grfica
con los valores calculados peridicamente
de manera automtica.
1.1.1.2:
scheduleAtFixedRate(beeper,tiempo,tiem
po,SECONDS)
Permite actualizar la base de datos con los
valores monitoreados cada 20 segundos.
1.1.2: setGraphsState(true) Asigna el estado de la bandera para indicar
que los grficos estn inicializados o no.
1.1.3: loop(count,handler,arg) Permite capturar un paquete a la vez dentro
de un loop que se ejecuta cada segundo y
verifica si el paquete monitoreado no tiene
errores.
1.1.4: tratarPcapPacket(paquete) Decodifica y trata el paquete cuando este
llega desde la interfaz de red.
1.1.4.1: packetProcesor(packetValues,
executeSQL)
Procesa los paquetes de la interfaz de red, y
clasifica la informacin agregando nuevos
hosts, actualizando los valores de trfico
entrante y saliente.
1.1.4.1.1:
addPacketSize(IPPacketLength)
1.1.4.1.2:
addPacketSize(IPPacketLength)
Aade la longitud de los paquetes
capturados en tiempo real a una lista.
2: setVisible(true) Hace visible la lista de hosts.
Tabla 3.16 Mensajes del diagrama de colaboracin del grfico 3.132











141

Casos de uso:
Desplegar un sniffer y guardar contenido <<include>> Capturar trfico
de Internet
Graficar trfico en tiempo real por hosts <<include>> Capturar trfico
de Internet
El usuario genera un evento sobre el botn de inicio del sniffer una vez
seleccionadas las estaciones de trabajo y los filtros de protocolos y puertos.
Ese evento es capturado por la aplicacin y genera la siguiente secuencia de
mensajes contenidas en el grfico 3.135.

Grfico 3.135 Diagrama de secuencia para el inicio del sniffer y la graficacin en tiempo real para
las estaciones de trabajo seleccionadas del mtodo displaySnifferButtonActionPerformed() de la
clase TrafficStatisticsView
displaySnifferButton:JButton textScrollPane:JScrollPane :TrafficStatisticsView
:Administrador
1.1: displaySnifferButton.isEnabled()
1.2: removeSelectedHostRealTimeGraphics()
1.3: removeSelectedHostRealTimeGraphics()
1.4: setSnifferParameters()
1.5: setSnifferParameters()
1.6: newSniffer()
1.7: initSniffer()
1.8: initRealTimeGraphs()
1.9: this.textScrollPane.setVisible(true)
1: displaySnifferButtonActionPerformed(evt)
alt
[displaySnifferButton.isEnabled()==true]
142


Grfico 3.136 Diagrama de colaboracin para el inicio del sniffer y la graficacin en tiempo real
para las estaciones de trabajo seleccionadas del mtodo displaySnifferButtonActionPerformed()
de la clase TrafficStatisticsView

displaySnifferButtonActionPerformed()
Mensaje Significado
1:
displaySnifferButtonActionPerformed(evt)
Inicializa la funcionalidad del sniffer y la
graficacin de bitrate del trfico de Internet
por hosts seleccionados, con un evento
generado por el usuario.
1.1: displaySnifferButton.isEnabled() Verifica si el botn de inicio est habilitado
para su uso.
1.2:
removeSelectedHostRealTimeGraphics()
Remueve las formas dibujadas del trfico de
Internet de los hosts sobre los paneles y
cancela la graficacin automtica.
1.3:
createSelectedHostRealTimeGraphs()
Inicializa los objetos del tipo RealTimeBitrate
que representan los grficos de incoming y
outgoing traffic en tiempo real de los hosts
seleccionados.
1.4: setSnifferParameters() Recupera los hosts seleccionados y los
parmetros necesarios para la
implementacin del sniffer.
1.5: drawSelectedHostRealTimeGraphs() Permite dibujar las diferentes formas que
adopta el bitrate en un intervalo de tiempo
cuando se monitorea el trfico de Internet
1.6: newSniffer() Instancia un nuevo sniffer para la captura de
los datos y la representacin grfica del
bitrate por hosts seleccionados.
1.7: initSniffer() Asigna los estados de los botones cuando se
inicia el sniffer presionando el botn en la
barra principal de herramientas
1.8: initRealTimeGraphs() Asigna los estados de los botones del grfico
de bitrate del trfico en tiempo real por hosts
cuando se inicia el sniffer presionando el
botn en la barra de herramientas
1.9: textScrollPane.setVisible(true) Hace visible al contenedor del rea de texto
que contendr los paquetes decodificados.
Tabla 3.17 Mensajes del diagrama de colaboracin del grfico 3.136

displaySnifferButton:JButton
textScrollPane:JScrollPane
:TrafficStatisticsView
:Administrador
1.1: displaySnifferButton.isEnabled()
1.2: removeSelectedHostRealTimeGraphics()
1.3: createSelectedHostRealTimeGraphs()
1.5: drawSelectedHostRealTimeGraphs()
1.4: setSnifferParameters()
1.8: initRealTimeGraphs()
1.6: newSniffer()
1.7: initSniffer()
1.9: this.textScrollPane.setVisible(true)
1: displaySnifferButtonActionPerformed(evt)
143

Grfico 3.137 Diagrama de secuencia para explicar en detalle el mtodo initDataCapture() de la
clase TrafficStatisticsView destacando los mensajes que realizan los casos de uso para el sniffer
y la graficacin tiempo real por estaciones seleccionadas
b
a
c
k
g
r
o
u
n
d
P
c
a
p
T
a
s
k
:C
u
s
to
m
iz
e
d
P
c
a
p
T
a
s
k
h
o
s
tF
e
a
tu
r
e
s
S
c
r
o
llP
a
n
e
1
:J
S
c
r
o
llP
a
n
e
r
e
a
lT
im
e
In
c
o
m
in
g
H
o
s
t:R
e
a
lT
im
e
B
itr
a
te
r
e
a
lT
im
e
O
u
tg
o
in
g
H
o
s
t:R
e
a
lT
im
e
B
itr
a
te
n
u
e
v
a
C
a
p
tu
r
a
1
:D
a
ta
C
a
p
tu
r
e
M
e
th
o
d
d
a
ta
C
r
e
a
to
r
:T
r
a
ffic
D
a
ta
C
r
e
a
to
r
:T
r
a
ffic
S
ta
tis
tic
s
V
ie
w
s
n
iffe
r
:S
n
iffe
r
T
h
r
e
a
d
s
r
:S
n
iffe
r
R
u
n
n
a
b
le
s
n
iffe
r
T
h
r
e
a
d
:T
h
r
e
a
d
p
c
a
p
:P
c
a
p
S
y
s
te
m
.o
u
t.p
rin
tln
("
B
R
E
A
K
L
O
O
P
A
L
C
A
N
Z
A
D
O
"
)
S
y
s
te
m
.o
u
t.p
rin
tln
("
E
R
R
O
R
D
E
C
A
P
T
U
R
A
"
)
S
y
s
te
m
.o
u
t.p
rin
tln
("
P
A
R
A
D
A
D
E
T
E
C
T
A
D
A
"
)
1
: in
ic
ia
r()
i
1
.1
.4
.1
.2
: ru
n
()
1
.1
.4
: tra
ta
rP
c
a
p
P
a
c
k
e
t(p
a
q
u
e
te
)
1
.1
.4
.1
.2
.1
: ru
n
()
1
.1
.3
: lo
o
p
(c
o
u
n
t,h
a
n
d
le
r,a
rg
)
1
.1
.4
.1
.2
.1
.1
: d
is
p
la
y
T
e
x
t()
2
: s
e
tV
is
ib
le
(tru
e
)
1
.1
.4
.1
.2
.1
.1
.1
: a
d
d
P
a
c
k
e
tS
iz
e
(IP
P
a
c
k
e
tL
e
n
g
th
)
1
.1
: s
ta
rt()
1
.1
.4
.1
.2
.1
.1
.2
: a
d
d
P
a
c
k
e
tS
iz
e
(IP
P
a
c
k
e
tL
e
n
g
th
)
1
.1
.2
: s
e
tG
ra
p
h
s
S
ta
te
(tru
e
)
1
.1
.1
: in
itS
c
h
e
d
u
le
A
tF
ix
e
d
R
a
te
U
p
d
a
te
()
1
.1
.4
.1
.1
: s
e
n
d
P
a
c
k
e
tIn
fo
(fla
g
s
, p
a
c
k
e
tV
a
lu
e
s
, ra
w
P
a
c
k
e
t)
1
.1
.4
.1
: ru
n
(fla
g
s
, p
a
c
k
e
tV
a
lu
e
s
, ra
w
P
a
c
k
e
t)
1
.1
.4
.2
: p
a
c
k
e
tP
ro
c
e
s
o
r(p
a
c
k
e
tV
a
lu
e
s
, e
x
e
c
u
te
S
Q
L
)
lo
o
p
[!s
to
p
]
a
lt
[i=
=
0
]
a
lt
[o
u
tg
o
in
g
]
[in
c
o
m
in
g
]
a
lt
[!is
G
ra
p
h
ic
s
In
itia
liz
e
d
]
a
lt
[i=
=
-2
]
a
lt
[s
to
p
=
=
tru
e
]
a
lt
[i=
=
-1
]
144


El sniffer trabaja conjuntamente con la captura de paquetes. La secuencia de
mensajes para este caso particular se detalla a continuacin en el grfico 3.138.
Grfico 3.138 Diagrama de colaboracin para explicar en detalle el mtodo initDataCapture() de la
clase TrafficStatisticsView destacando los mensajes que realizan los casos de uso para el sniffer
y la graficacin tiempo real por estaciones seleccionadas

b
a
c
k
g
r
o
u
n
d
P
c
a
p
T
a
s
k
:
C
u
s
t
o
m
i
z
e
d
P
c
a
p
T
a
s
k
h
o
s
t
F
e
a
t
u
r
e
s
S
c
r
o
l
l
P
a
n
e
1
:
J
S
c
r
o
l
l
P
a
n
e
n
u
e
v
a
C
a
p
t
u
r
a
1
:
D
a
t
a
C
a
p
t
u
r
e
M
e
t
h
o
d
r
e
a
l
T
i
m
e
O
u
t
g
o
i
n
g
H
o
s
t
:
R
e
a
l
T
i
m
e
B
i
t
r
a
t
e
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
d
a
t
a
C
r
e
a
t
o
r
:
T
r
a
f
f
i
c
D
a
t
a
C
r
e
a
t
o
r
:
T
r
a
f
f
i
c
S
t
a
t
i
s
t
i
c
s
V
i
e
w
s
n
i
f
f
e
r
T
h
r
e
a
d
:
T
h
r
e
a
d
s
n
i
f
f
e
r
:
S
n
i
f
f
e
r
T
h
r
e
a
d
s
r
:
S
n
i
f
f
e
r
R
u
n
n
a
b
l
e
p
c
a
p
:
P
c
a
p
1
.
1
.
4
:

t
r
a
t
a
r
P
c
a
p
P
a
c
k
e
t
(
p
a
q
u
e
t
e
)
1
.
1
.
4
.
2
:

p
a
c
k
e
t
P
r
o
c
e
s
o
r
(
p
a
c
k
e
t
V
a
lu
e
s
,

e
x
e
c
u
t
e
S
Q
L
)
1
.
1
.
3
:

lo
o
p
(
c
o
u
n
t
,
h
a
n
d
le
r
,
a
r
g
)
1
.
1
.
4
.
1
.
2
.
1
.
1
.
1
:

a
d
d
P
a
c
k
e
t
S
i
z
e
(
I
P
P
a
c
k
e
t
L
e
n
g
t
h
)
2
:

s
e
t
V
i
s
i
b
le
(
t
r
u
e
)
1
.
1
.
4
.
1
.
2
.
1
.
1
:

d
i
s
p
la
y
T
e
x
t
(
)
1
.
1
.
4
.
1
.
2
:

r
u
n
(
)
1
.
1
.
4
.
1
.
1
:

s
e
n
d
P
a
c
k
e
t
I
n
f
o
(
f
la
g
s
,

p
a
c
k
e
t
V
a
lu
e
s
,

r
a
w
P
a
c
k
e
t
)
1
.
1
:

s
t
a
r
t
(
)
1
.
1
.
4
.
1
.
2
.
1
:

r
u
n
(
)
1
.
1
.
2
:


s
e
t
G
r
a
p
h
s
S
t
a
t
e
(
t
r
u
e
)
1
.
1
.
4
.
1
.
2
.
1
.
1
.
2
:

a
d
d
P
a
c
k
e
t
S
i
z
e
(
I
P
P
a
c
k
e
t
L
e
n
g
t
h
)
1
.
1
.
1
:

i
n
i
t
S
c
h
e
d
u
le
A
t
F
i
x
e
d
R
a
t
e
U
p
d
a
t
e
(
)
1
:

i
n
i
c
i
a
r
(
)
1
.
1
.
4
.
1
:

r
u
n
(
f
la
g
s
,

p
a
c
k
e
t
V
a
lu
e
s
,

r
a
w
P
a
c
k
e
t
)
145

initDataCapture()
Mensaje Significado
1: iniciar() Crea e inicializa un subproceso en segundo
plano para la captura de datos monitoreados.
1.1: start() Permite inicializar un manejador de tareas para
la captura de un objeto Pcap. Este corre a nivel
de bakground aadiendo mtodos de control y
mtodos de estado para loop de captura.
1.1.1:
initScheduleAtFixedRateUpdate()
Actualiza la base de datos con la lista de hosts
existentes obtenida del monitoreo de trfico
Internet.
1.1.2: setGraphsState(true) Asigna el estado de la bandera para indicar que
los grficos estn inicializados o no.
1.1.3: loop(count,handler,arg) Permite capturar un paquete a la vez dentro de
un loop que se ejecuta cada segundo y verifica
si el paquete monitoreado no tiene errores.
1.1.4: tratarPcapPacket(paquete) Decodifica y trata el paquete cuando este llega
desde la interfaz de red.
1.1.4.1: run(flags, packetValues,
rawPacket)
Crea un hilo que permite ejecutar el mtodo
run() de la clase SnifferRunnable y se ejecuta
cada vez que se capture un nuevo paquete al
dispositivo de red.
1.1.4.1.1: sendPacketInfo(flags,
packetValues, rawPacket)
Asigna los nuevos valores del paquete
decodificado y de las banderas que identifican
si el paquete es TCP, UDP, ICMP.
1.1.4.1.2: run() Ejecuta el hilo con los indicadores que
identifican el tipo de protocolo y el paquete
decodificado ingresados como parmetros.
1.1.4.1.2.1: run() Ejecuta el mtodo que permite desplegar los
diferentes campos de los paquetes
decodificados en el rea de texto.
1.1.4.1.2.1.1: displayText() Despliega los diferentes campos de los
paquetes decodificados en el rea de texto.
1.1.4.1.2.1.1.1:
addPacketSize(IPPacketLength)
1.1.4.1.2.1.1.2:
addPacketSize(IPPacketLength)
Aade la longitud de los paquetes capturados
en tiempo real a una lista.
1.1.4.2: packetProcesor(packetValues,
executeSQL)
Procesa los paquetes de la interfaz de red, y
clasifica la informacin agregando nuevos
hosts, actualizando los valores de trfico
entrante y saliente.
2: setVisible(true) Hace visible la lista de hosts.
Tabla 3.18 Mensajes del diagrama de colaboracin del grfico 3.138









146

Caso de uso:
Diferenciar trfico (host, protocolos, puertos)
La diferenciacin de trfico se establece por medio de los filtros del sniffer que se
asignan con el mtodo setSnifferParameters().

Grfico 3.139 Diagrama de secuencia para la seleccin de los parmetros necesarios en la
diferenciacin de trfico del sniffer del mtodo setSnifferParameters() de la clase
TrafficStatisticsView


Grfico 3.140 Diagrama de colaboracin para la seleccin de los parmetros necesarios en la
diferenciacin de trfico del sniffer del mtodo setSnifferParameters() de la clase
TrafficStatisticsView

setSnifferParameters()
Mensaje Significado
1: setSnifferParameters() Recupera los hosts seleccionados y los
parmetros necesarios para la implementacin del
sniffer.
1.1: setSnifferParam(paramSniffer) Asigna los parmetros del tipo SnifferParameters
requeridos para instanciar un sniffer que permita
controlar los grficos de bitrate en tiempo real por
hosts, as como la impresin de los paquetes
decodificados y toda la informacin relevante
como filtro pertenecientes a ciertos host
seleccionados por el usuario.
Tabla 3.19 Mensajes del diagrama de colaboracin del grfico 3.140

nuevaCaptura:DataCaptureMethod :TrafficStatisticsView :Administrador
paramSniffer = FilterAction.setSnifferParameters( filterComboBox, portNumberField,
snifferTextArea,IPMACString, realtimeIncomingHost,realtimeOutgoingHost,selectCheckbox)
nuevaCaptura.setSnifferParam(paramSniffer)
1.1: setSnifferParam(paramSniffer)
1: setSnifferParameters()
nuevaCaptura:DataCaptureMethod :TrafficStatisticsView
:Administrador
1.1: setSnifferParam(paramSniffer)
1: setSnifferParameters()
147

Grfico 3.141 Diagrama de secuencia que explica el mtodo esttico setSnifferParameters() de la
clase FilterAction a detalle para el cumplimiento del caso de uso de diferenciacin de trfico

n
u
e
v
a
C
a
p
t
u
r
a
:
D
a
t
a
C
a
p
t
u
r
e
M
e
t
h
o
d
:
T
r
a
f
f
i
c
S
t
a
t
i
s
t
i
c
s
V
i
e
w
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
P
M
A
C
S
t
r
i
n
g
;
A
r
r
a
y
L
i
s
t
<
V
e
c
t
o
r
>
s
t
a
t
i
c
:
F
i
l
t
e
r
A
c
t
i
o
n
1
:

s
e
t
S
n
i
f
f
e
r
P
a
r
a
m
e
t
e
r
s
(








f
i
l
t
e
r
C
o
m
b
o
B
o
x
,

p
o
r
t
N
u
m
b
e
r
F
i
e
l
d
,

s
n
i
f
f
e
r
T
e
x
t
A
r
e
a
,
I
P
M
A
C
S
t
r
i
n
g
,








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
O
u
t
g
o
i
n
g
H
o
s
t
,
s
e
l
e
c
t
C
h
e
c
k
b
o
x
)
1
.
1
:

g
e
t
S
e
l
e
c
t
e
d
H
o
s
t
s
(
)

[
s
n
i
f
f
e
r
H
o
s
t
s
T
r
e
e
]
2
:

s
e
t
S
n
i
f
f
e
r
P
a
r
a
m
(
p
a
r
a
m
S
n
i
f
f
e
r
)
1
.
2
:

g
e
t
S
e
l
e
c
t
e
d
I
t
e
m
(
)
.
t
o
S
t
r
i
n
g
(
)
[
T
C
P
_
U
D
P
_
I
C
M
P
:
S
t
r
i
n
g
]
1
.
3
:

v
e
r
i
f
i
c
a
r
N
u
m
e
r
o
(
p
o
r
t
N
u
m
b
e
r
)
[
p
a
r
a
m
S
n
i
f
f
e
r
:
S
n
i
f
f
e
r
P
a
r
a
m
e
t
e
r
s
]
148


Grfico 3.142 Diagrama de colaboracin que explica el mtodo esttico setSnifferParameters() de
la clase FilterAction a detalle para el cumplimiento del caso de uso de diferenciacin de trfico


setSnifferParameters()
Mensaje Significado
1: setSnifferParameters( filterComboBox,
portNumberField, snifferTextArea, IPMACString,
realtimeIncomingHost,
realtimeOutgoingHost,selectCheckbox)
Recupera los hosts seleccionados
y los parmetros necesarios para la
implementacin del sniffer.
1.1: getSelectedHosts() Devuelve el host seleccionado
dentro un ArrayList que contiene
una relacin unvoca entre la
direccin MAC e IP de los hosts
monitoreados.
1.2: getSelectedItem().toString() Devuelve el item seleccionado
dentro de un JComboBox que
contiene los protocolos TCP, UDP,
ICMP para el correspondiente filtro.
1.3: verificarNumero(portNumber) Verifica la validez del entero
ingresado por el usuario que
representa el nmero de puerto
indicando que el valor -1 significa
un filtro con todos los puertos a
escuchar.
2: setSnifferParam(paramSniffer) Asigna los parmetros del tipo
SnifferParameters requeridos para
instanciar un sniffer que permita
controlar los grficos de bitrate en
tiempo real por hosts, as como la
impresin de los paquetes
decodificados y toda la informacin
relevante como filtro pertenecientes
a ciertos hosts seleccionados por el
usuario.
Tabla 3.20 Mensajes del diagrama de colaboracin del grfico 3.142







nuevaCaptura:DataCaptureMethod
filterTCP_UDP_ICMP:JComboBox
IPMACString;ArrayList<Vector>
:TrafficStatisticsView static:FilterAction
1: setSnifferParameters(
filterComboBox, portNumberField, snifferTextArea,IPMACString,
realtimeIncomingHost,realtimeOutgoingHost,selectCheckbox)
1.2: getSelectedItem().toString()
2: setSnifferParam(paramSniffer)
1.1: getSelectedHosts()
1.3: verificarNumero(portNumber)
149

Caso de uso:

Almacenar y recuperar de disco
Se lo hace de manera automtica para almacenar los datos de la captura en la base
de datos.

Grfico 3.143 Diagrama de secuencia del mtodo run() de un objeto Runnable que es controlado
por un objeto ScheduledFuture para la actualizacin peridica de la base de datos cada 20
segundos
h
o
s
t
T
r
a
f
f
ic
L
is
t
:
A
r
r
a
y
L
is
t
<
H
o
s
t
T
r
a
f
f
ic
>
(
)
b
e
e
p
e
r
H
a
n
d
le
:
S
c
h
e
d
u
le
d
F
u
t
u
r
e
<
?
>
s
t
a
t
ic
:
Q
u
e
r
y
A
n
d
U
p
d
a
t
e
D
a
t
a
b
a
s
e
o
u
t
T
r
a
f
f
ic
:
G
e
n
e
r
a
lT
r
a
f
f
ic
in
T
r
a
f
f
ic
:
G
e
n
e
r
a
lT
r
a
f
f
ic
i:
H
o
s
t
T
r
a
f
f
ic
S
y
s
t
e
m
.
g
c
(
)
1
:

g
e
t
(
n
)
2
.
3
:

a
d
d
H
o
s
t
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
D
a
t
a
.
g
e
t
S
o
u
r
c
e
M
A
C
(
)
,

h
o
s
t
D
a
t
a
.
g
e
t
I
P
S
o
u
r
c
e
(
)
)
2
.
2
.
4
:

a
d
d
O
u
t
g
o
in
g
P
a
c
k
e
t
S
iz
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

o
u
t
T
r
a
f
f
ic
)

[
h
o
s
t
K
e
y
N
U
m
b
e
r
:
L
o
n
g
]
2
.
2
:

e
x
e
c
u
t
e
U
p
d
a
t
e
(
h
o
s
t
K
e
y
N
U
m
b
e
r
)
2
.
4
:

e
x
e
c
u
t
e
U
p
d
a
t
e
(
h
o
s
t
K
e
y
N
U
m
b
e
r
)
2
.
4
.
1
:

c
a
lc
u
la
t
e
T
o
t
a
lI
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
le
a
n
(
)
[
h
o
s
t
K
e
y
N
U
m
b
e
r
:
L
o
n
g
]
2
.
2
.
5
:

c
le
a
r
P
r
o
t
o
c
o
lC
o
n
n
e
c
t
io
n
s
(
)
2
.
4
.
2
:

c
a
lc
u
la
t
e
T
o
t
a
lI
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
le
a
n
(
)
2
.
1
:

s
e
a
r
c
h
H
o
s
t
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
D
a
t
a
.
g
e
t
S
o
u
r
c
e
M
A
C
(
)
,
h
o
s
t
D
a
t
a
.
g
e
t
I
P
S
o
u
r
c
e
(
)
)
2
.
4
.
3
:

a
d
d
I
n
c
o
m
in
g
P
a
c
k
e
t
S
iz
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

in
T
r
a
f
f
ic

)
2
.
2
.
1
:

c
a
lc
u
la
t
e
T
o
t
a
lI
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
le
a
n
(
)
2
.
2
.
2
:

c
a
lc
u
la
t
e
T
o
t
a
lI
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
le
a
n
(
)
2
.
4
.
5
:

c
le
a
r
P
r
o
t
o
c
o
lC
o
n
n
e
c
t
io
n
s
(
)
2
:

i.
u
p
d
a
t
e
D
a
t
a
b
a
s
e
(
)
2
.
4
.
4
:

a
d
d
O
u
t
g
o
in
g
P
a
c
k
e
t
S
iz
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

o
u
t
T
r
a
f
f
ic
)
2
.
4
.
6
:

c
le
a
r
P
r
o
t
o
c
o
lC
o
n
n
e
c
t
io
n
s
(
)
[
i:
H
o
s
t
T
r
a
f
f
ic
]
2
.
2
.
6
:

c
le
a
r
P
r
o
t
o
c
o
lC
o
n
n
e
c
t
io
n
s
(
)
2
.
2
.
3
:

a
d
d
I
n
c
o
m
in
g
P
a
c
k
e
t
S
iz
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

in
T
r
a
f
f
ic

)
a
lt
[
!
h
o
s
t
T
r
a
f
f
ic
L
is
t
.
is
E
m
p
t
y
(
)
]
lo
o
p

[
in
t

n
=
0
;

n
<
h
o
s
t
T
r
a
f
f
ic
L
is
t
.
s
iz
e
(
)
;
n
+
+
]
a
lt
[
h
o
s
t
K
e
y
N
U
m
b
e
r
>
0
]
[
e
ls
e
]
a
lt
[
h
o
s
t
K
e
y
N
U
m
b
e
r
>
0
]
150



Grfico 3.144 Diagrama de colaboracin del mtodo run() de un objeto Runnable que es
controlado por un objeto ScheduledFuture para la actualizacin peridica de la base de datos cada
20 segundos

ScheduledFuture
Mensaje Significado
1: get(n) Recupera una lista de hosts
existentes obtenida del monitoreo
de trfico Internet.
2: i.updateDatabase() Obtiene identificador del host dentro
de la base de datos y ejecuta la
actualizacin del trfico asociado a
esta estacin de trabajo.
h
o
s
t
T
r
a
f
f
i
c
L
i
s
t
:
A
r
r
a
y
L
i
s
t
<
H
o
s
t
T
r
a
f
f
i
c
>
(
)
b
e
e
p
e
r
H
a
n
d
l
e
:
S
c
h
e
d
u
l
e
d
F
u
t
u
r
e
<
?
>
s
t
a
t
i
c
:
Q
u
e
r
y
A
n
d
U
p
d
a
t
e
D
a
t
a
b
a
s
e
o
u
t
T
r
a
f
f
i
c
:
G
e
n
e
r
a
l
T
r
a
f
f
i
c
i
n
T
r
a
f
f
i
c
:
G
e
n
e
r
a
l
T
r
a
f
f
i
c
i
:
H
o
s
t
T
r
a
f
f
i
c
2
.
1
:

s
e
a
r
c
h
H
o
s
t
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
D
a
t
a
.
g
e
t
S
o
u
r
c
e
M
A
C
(
)
,
h
o
s
t
D
a
t
a
.
g
e
t
I
P
S
o
u
r
c
e
(
)
)
2
.
2
.
4
:

a
d
d
O
u
t
g
o
i
n
g
P
a
c
k
e
t
S
i
z
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

o
u
t
T
r
a
f
f
i
c
)
2
.
4
.
4
:

a
d
d
O
u
t
g
o
i
n
g
P
a
c
k
e
t
S
i
z
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

o
u
t
T
r
a
f
f
i
c
)
2
.
3
:

a
d
d
H
o
s
t
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
D
a
t
a
.
g
e
t
S
o
u
r
c
e
M
A
C
(
)
,

h
o
s
t
D
a
t
a
.
g
e
t
I
P
S
o
u
r
c
e
(
)
)
2
.
2
.
3
:

a
d
d
I
n
c
o
m
i
n
g
P
a
c
k
e
t
S
i
z
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

i
n
T
r
a
f
f
i
c

)
2
.
4
.
3
:

a
d
d
I
n
c
o
m
i
n
g
P
a
c
k
e
t
S
i
z
e
D
D
B
B
(
e
x
e
c
u
t
e
S
Q
L
,

h
o
s
t
K
e
y
N
U
m
b
e
r
,

i
n
T
r
a
f
f
i
c

)
2
.
2
.
1
:

c
a
l
c
u
l
a
t
e
T
o
t
a
l
I
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
l
e
a
n
(
)
2
.
4
.
1
:

c
a
l
c
u
l
a
t
e
T
o
t
a
l
I
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
l
e
a
n
(
)
2
.
2
.
5
:

c
l
e
a
r
P
r
o
t
o
c
o
l
C
o
n
n
e
c
t
i
o
n
s
(
)
2
.
4
.
5
:

c
l
e
a
r
P
r
o
t
o
c
o
l
C
o
n
n
e
c
t
i
o
n
s
(
)
2
.
2
:

e
x
e
c
u
t
e
U
p
d
a
t
e
(
h
o
s
t
K
e
y
N
U
m
b
e
r
)
2
.
4
:

e
x
e
c
u
t
e
U
p
d
a
t
e
(
h
o
s
t
K
e
y
N
U
m
b
e
r
)
2
:

i
.
u
p
d
a
t
e
D
a
t
a
b
a
s
e
(
)
1
:

g
e
t
(
n
)
2
.
4
.
2
:

c
a
l
c
u
l
a
t
e
T
o
t
a
l
I
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
l
e
a
n
(
)
2
.
2
.
2
:

c
a
l
c
u
l
a
t
e
T
o
t
a
l
I
P
P
a
c
k
e
t
L
e
n
g
t
h
A
n
d
C
l
e
a
n
(
)
2
.
4
.
6
:

c
l
e
a
r
P
r
o
t
o
c
o
l
C
o
n
n
e
c
t
i
o
n
s
(
)
2
.
2
.
6
:

c
l
e
a
r
P
r
o
t
o
c
o
l
C
o
n
n
e
c
t
i
o
n
s
(
)
151

2.1: searchHost(executeSQL,
hostData.getSourceMAC(),hostData.getIPSource())
Ejecuta la consulta MySQL para la
bsqueda de una estacin de
trabajo por MacID e IP.
2.2: executeUpdate(hostKeyNUmber)
2.4: executeUpdate(hostKeyNUmber)
Actualiza la base de datos con la
informacin del host
correspondiente al identificador
hostKeyNUmber del tipo Long.
2.3: addHost(executeSQL,
hostData.getSourceMAC(),
hostData.getIPSource())
Retorna el identificador del ltimo
host luego de aadirlo.
2.2.1: calculateTotalIPPacketLengthAndClean()
2.2.2: calculateTotalIPPacketLengthAndClean()
2.4.1: calculateTotalIPPacketLengthAndClean()
2.4.2: calculateTotalIPPacketLengthAndClean()
Calcula el tamao acumulado de los
valores de tamao almacenados en
el ArrayList protocols y limpia la
respectiva lista de cada
ProtocolTrafficByConnection
existente en la lista protocols.
2.2.3: addIncomingPacketSizeDDBB(executeSQL,
hostKeyNUmber, inTraffic )
2.4.3: addIncomingPacketSizeDDBB(executeSQL,
hostKeyNUmber, inTraffic )
Actualiza la base de datos con la
informacin incoming del host
correspondiente al identificador
hostKeyNUmber del tipo Long para
el trfico entrante.
2.2.4: addOutgoingPacketSizeDDBB(executeSQL,
hostKeyNUmber, outTraffic)
2.4.4: addOutgoingPacketSizeDDBB(executeSQL,
hostKeyNUmber, outTraffic)
Actualiza la base de datos con la
informacin outgoing del host
correspondiente al identificador
hostKeyNUmber del tipo Long para
el trfico entrante.
2.2.5: clearProtocolConnections()
2.2.6: clearProtocolConnections()
2.4.5: clearProtocolConnections()
2.4.6: clearProtocolConnections()
Limpia ArrayList de las conexiones
almacenadas.
Tabla 3.21 Mensajes del diagrama de colaboracin del grfico 3.144


3.8.2. QUERY STATISTICS
Caso de uso:
Mostrar y guardar grfico de anlisis estadstico
El usuario inicia la conexin con la base de datos y aparece una lista con las
opciones de generacin de grficos. Para acceder a ellos el usuario debe realizar
doble clic sobre la opcin deseada. Este evento es capturado por la aplicacin
como se describe en el grfico 3.145a y 3.145b.


152

Grfico 3.145a Diagrama de secuencia para la seleccin del grfico deseado mediante un doble
clic sobre la lista desplegada (mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)
lis
ta
:S
ta
tis
tic
s
G
ra
p
h
ic
s
T
y
p
e
s
J
L
is
t
:A
d
m
in
is
tra
d
o
r
e
:M
o
u
s
e
E
v
e
n
t
n
e
w
R
u
n
n
a
b
le
() {
... }
|1
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|0
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|3
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|2
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
:R
u
n
n
a
b
le
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
P
o
rc
e
n
ta
je
G
ra
fic
o
P
a
s
te
l3
D
o
p
2
=
n
e
w

O
p
c
io
n
e
s
P
o
rc
e
n
ta
je
G
ra
fic
o
P
a
s
te
l3
D
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
2
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
2
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
2
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
P
o
rc
e
n
ta
je
G
ra
fic
o
P
a
s
te
l2
D
o
p
1
=
n
e
w

O
p
c
io
n
e
s
P
o
rc
e
n
ta
je
G
ra
fic
o
P
a
s
te
l2
D
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
1
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
1
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
1
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
H
is
to
g
ra
m
a
T
ra
fic
o
In
te
rn
e
t o
p
3
=
n
e
w

O
p
c
io
n
e
s
H
is
to
g
ra
m
a
T
ra
fic
o
In
te
rn
e
t(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
3
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
3
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
3
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
B
itra
te
v
s
T
ie
m
p
o
P
ro
to
c
o
lo
o
p
4
=
n
e
w

O
p
c
io
n
e
s
B
itra
te
v
s
T
ie
m
p
o
P
ro
to
c
o
lo
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
4
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
4
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
4
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
G
ra
fic
o
B
itra
te
P
ro
m
e
d
io
o
p
0
=
n
e
w

O
p
c
io
n
e
s
G
ra
fic
o
B
itra
te
P
ro
m
e
d
io
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
0
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
0
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
0
.s
e
tV
is
ib
le
(tru
e
); }})
in
t in
d
e
x
=
lo
c
a
tio
n
T
o
In
d
e
x
(e
.g
e
tP
o
in
t());
s
w
itc
h
(in
d
e
x
)
b
re
a
k
b
re
a
k
b
re
a
k
b
re
a
k
b
re
a
k
1
.2
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.1
: g
e
tP
o
in
t()
1
.3
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.4
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.6
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.5
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
: d
o
u
b
le
C
lic
k
(e
)
o
p
t
[0
]
[1
]
[2
]
[3
]
[4
]
153

Grfico 3.145b Diagrama de secuencia para la seleccin del grfico deseado mediante un doble
clic sobre la lista desplegada (mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)
n
e
w
R
u
n
n
a
b
le
() {
... }
|4
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|6
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|8
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|5
:R
u
n
n
a
b
le
n
e
w
R
u
n
n
a
b
le
() {
... }
|7
:R
u
n
n
a
b
le
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
B
itra
te
v
s
T
ie
m
p
o
P
ro
to
c
o
lo
P
a
s
o
s
o
p
5
=
n
e
w

O
p
c
io
n
e
s
B
itra
te
v
s
T
ie
m
p
o
P
ro
to
c
o
lo
P
a
s
o
s
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
5
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
5
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
5
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
P
a
s
o
s
P
ro
m
e
d
io
P
ro
to
c
o
lo
s
o
p
6
=
n
e
w

O
p
c
io
n
e
s
P
a
s
o
s
P
ro
m
e
d
io
P
ro
to
c
o
lo
s
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
7
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
7
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
7
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
S
e
rie
s
T
ie
m
p
o
P
ro
to
c
o
lo
s
o
p
6
=
n
e
w

O
p
c
io
n
e
s
S
e
rie
s
T
ie
m
p
o
P
ro
to
c
o
lo
s
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
6
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
6
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
6
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
V
id
e
o
a
=
n
e
w
V
id
e
o
();
a
.u
p
d
a
te
U
I(); a
.v
a
lid
a
te
();
J
D
ia
lo
g
fra
m
e
=
n
e
w
J
D
ia
lo
g
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
fra
m
e
.g
e
tC
o
n
te
n
tP
a
n
e
().a
d
d
(a
.g
e
tU
i(), B
o
rd
e
rL
a
y
o
u
t.C
E
N
T
E
R
);
fra
m
e
.s
e
tS
iz
e
(8
0
0
, 6
0
0
); fra
m
e
.s
e
tL
o
c
a
tio
n
B
y
P
la
tfo
rm
(tru
e
); fra
m
e
.s
e
tV
is
ib
le
(tru
e
); }})
S
w
in
g
U
tilitie
s
.in
v
o
k
e
L
a
te
r(n
e
w
R
u
n
n
a
b
le
() {
p
u
b
lic
v
o
id
ru
n
() {
O
p
c
io
n
e
s
D
N
S
R
e
v
e
rs
e
o
p
8
=
n
e
w

O
p
c
io
n
e
s
D
N
S
R
e
v
e
rs
e
(fra
m
e
P
rin
c
ip
a
l,tru
e
);
o
p
8
.s
e
tD
a
to
s
H
o
s
tL
is
t(o
b
je
c
tH
o
s
tJ
lis
t);
o
p
8
.s
e
tQ
u
e
ry
G
e
tte
r(q
u
e
ry
T
o
ta
l);
o
p
8
.s
e
tV
is
ib
le
(tru
e
); }})
N
a
tiv
e
In
te
rfa
c
e
.ru
n
E
v
e
n
tP
u
m
p
()
N
a
tiv
e
In
te
rfa
c
e
.o
p
e
n
()
b
re
a
k
b
re
a
k
b
re
a
k
b
re
a
k
b
re
a
k
1
.7
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.1
0
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.1
1
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.8
: n
e
w
R
u
n
n
a
b
le
() { ... }
1
.9
: n
e
w
R
u
n
n
a
b
le
() { ... }
[5
]
[6
]
[7
]
[8
]
[9
]
a
lt
[!N
a
tiv
e
In
te
rfa
c
e
.is
O
p
e
n
()]
154


Grfico 3.146 Diagrama de colaboracin para la seleccin del grfico deseado mediante un doble
clic sobre la lista desplegada (mtodo doubleClick(..) de la clase StatisticsGraphicsTypesJList)

doubleClick()
Mensaje Significado
1: doubleClick(e) Instancia una ventana de
dilogo por cada uno de los
diagramas estadsticos para su
posterior representacin
grfica. Se instancia dicha
ventana de dilogo a travs de
un evento del mouse que
determina qu tipo de grfico
el usuario desea generar.
lista:StatisticsGraphicsTypesJList
new Runnable() { ... }|0:Runnable
new Runnable() { ... }|1:Runnable
new Runnable() { ... }|2:Runnable
new Runnable() { ... }|3:Runnable
new Runnable() { ... }|4:Runnable
new Runnable() { ... }|5:Runnable
new Runnable() { ... }|6:Runnable
new Runnable() { ... }|7:Runnable
new Runnable() { ... }|8:Runnable
new Runnable() { ... }:Runnable
:Administrador
e:MouseEvent
1.10: new Runnable() { ... }
1.1: getPoint()
1.11: new Runnable() { ... }
1.2: new Runnable() { ... }
1: doubleClick(e)
1.3: new Runnable() { ... }
1.4: new Runnable() { ... }
1.5: new Runnable() { ... }
1.6: new Runnable() { ... }
1.7: new Runnable() { ... }
1.8: new Runnable() { ... }
1.9: new Runnable() { ... }
155

1.1: getPoint() Retorna el ndice de la opcin
elegida dentro de la lista de
diagramas estadsticos.
1.2: new Runnable() { ... }
1.3: new Runnable() { ... }
1.4: new Runnable() { ... }
1.5: new Runnable() { ... }
1.6: new Runnable() { ... }
1.7: new Runnable() { ... }
1.8: new Runnable() { ... }
1.9: new Runnable() { ... }
1.10: new Runnable() { ... }
1.11:new Runnable() { ... }
Instancia un hilo de ejecucin
para inicializar una ventana de
dilogo y la generacin de los
diagramas estadsticos.
Tabla 3.22 Mensajes del diagrama de colaboracin del grfico 3.146

Cada dilogo implementa de manera particular el mtodo drawChart() para
cada tipo de grfico como se ve a continuacin. Si bien es cierto que la secuencia
de mensajes es similar, la implementacin de los mtodos es diferente.

Grfico 3.147 Diagrama de secuencia para la reconstruccin grfica de los datos de la base.

:OpcionesBitratevsTiempoProtocolo encapsuladoIPComboBox:javax.swing.JComboBox
graph:BitratevsTiempoGraphLineas
BitratevsTiempoGraphLineas graph = new BitratevsTiempoGraphLineas(this,
"Reconstruccin del Historial de la Base de Datos " + this.encapsuladoIPComboBox.getSelectedItem() , true);
XYSeriesCollection dataSet = (XYSeriesCollection) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
1: createDataSet(value)
2: getSelectedItem()
3: new BitratevsTiempoGraphLineas(this, "Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setVisible(true)
5: setLocationRelativeTo(this)
6: pack()
4: draw(dataSet)
156


Grfico 3.148 Diagrama de colaboracin para la reconstruccin grfica de los datos de la base.

OpcionesBitratevsTiempoProtocolo
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de datos para
realizar la representacin grfica de
Reconstruccin del Historial de la
Base de Datos Lineas.
2: getSelectedItem() Retorna el tipo de protocolo para
realizar la consulta a la base de datos
de los hosts seleccionados por el
usuario.
3: new BitratevsTiempoGraphLineas(this,
"Reconstruccin del Historial de la Base de
Datos " +
this.encapsuladoIPComboBox.getSelectedItem()
, true)
Instancia un objeto que permite
realizar la graficacin de
Reconstruccin del Historial de la
Base de Datos Lineas para los
distintos protocolos y estaciones de
trabajo.
4: draw(dataSet) Instancia un panel principal que
contendr al grfico obtenido de los
datos de la coleccin.
5: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o
la representacin grfica en el centro
del objeto padre graficado.
6: pack() Organiza y empaqueta los
componentes grficos para su
representacin.
7: setVisible(true) Permite a los diferentes objetos
grficos ser visibles para el usuario.
Tabla 3.23 Mensajes del diagrama de colaboracin del grfico 3.148


encapsuladoIPComboBox:javax.swing.JComboBox :OpcionesBitratevsTiempoProtocolo
graph:BitratevsTiempoGraphLineas
1: createDataSet(value)
3: new BitratevsTiempoGraphLineas(this, "Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
7: setVisible(true)
4: draw(dataSet)
6: pack()
2: getSelectedItem()
157


Grfico 3.149 Diagrama de secuencia para la reconstruccin grfica de los datos de la base
usando pasos.


Grfico 3.150 Diagrama de colaboracin para la reconstruccin grfica de los datos de la base
usando pasos.
OpcionesBitratevsTiempoProtocoloPasos
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de
datos para realizar la
representacin grfica de
Reconstruccin del Historial de
la Base de Datos Pasos.
2: getSelectedItem() Retorna el tipo de protocolo
para realizar la consulta a la
base de datos de los hosts
seleccionados por el usuario.
:OpcionesBitratevsTiempoProtocoloPasos encapsuladoIPComboBox:javax.swing.JComboBox
graph:BitratevsTiempoGraphPasos
BitratevsTiempoGraphPasos graph = new BitratevsTiempoGraphPasos(this, "Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
TimePeriodValuesCollection dataSet = (TimePeriodValuesCollection) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
1: createDataSet(value)
2: getSelectedItem()
3: new BitratevsTiempoGraphPasos(this, "Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setVisible(true)
5: setLocationRelativeTo(this)
6: pack()
4: draw(dataSet)
encapsuladoIPComboBox:javax.swing.JComboBox :OpcionesBitratevsTiempoProtocoloPasos
graph:BitratevsTiempoGraphPasos
1: createDataSet(value)
3: new BitratevsTiempoGraphPasos(this, "Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
7: setVisible(true)
4: draw(dataSet)
6: pack()
2: getSelectedItem()
158

3: new BitratevsTiempoGraphPasos(this,
"Reconstruccin del Historial de la Base de Datos " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
Instancia un objeto que
permite realizar la graficacin
de Reconstruccin del Historial
de la Base de Datos Pasos
para los distintos protocolos y
estaciones de trabajo.
4: draw(dataSet) Instancia un panel principal
que contendr al grfico
obtenido de los datos de la
colleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de
dilogo o la representacin
grfica en el centro del objeto
padre graficado.
6: pack() Organiza y empaqueta los
componentes grficos para su
representacin.
7: setVisible(true) Permite a los diferentes
objetos grficos ser visibles
para el usuario.
Tabla 3.24 Mensajes del diagrama de colaboracin del grfico 3.150


Grfico 3.151 Diagrama de secuencia para el ranking de las IPs ms utilizadas y la resolucin
inversa de nombres.
:OpcionesDNSReverse
rankingListaGraph:IPRankingList
dataSet:DefaultCategoryDataset
IPRankingList rankingListaGraph = new IPRankingList(this, "DNS Reverso y Ranking de Uso para las IPs ms Utilizadas", true);
ArrayList<ReverseDNSComparableEntry<Long,IPTraficInfo>> listaIps = createIPMapList(value);
3: new IPRankingList(this, "DNS Reverso y Ranking de Uso para las IPs ms Utilizadas", true)
2: createIPMapList(value)
5: setLocationRelativeTo(this)
6: setVisible(true)
4: draw(dataSet,listaIps)
1: clear()
159


Grfico 3.152 Diagrama de colaboracin para el ranking de las IPs ms utilizadas y la resolucin
inversa de nombres.

OpcionesDNSReverse
Mensaje Significado
1: clear() Limpia todos los valores de la estructura de datos
de un diagrama anterior para evitar
inconsistencias.
2: createIPMapList(value) Permite generar una lista de direcciones IP
desde una ResultSet obtenido de una consulta a
la base de datos pasando por un filtro seteado
por el usuario en el cuadro de dilogo, por hosts,
protocolo o puerto para la resolucin de nombres
de dominio.
3: new IPRankingList(this, "DNS
Reverso y Ranking de Uso para las
IPs ms Utilizadas", true)
Instancia un objeto que permite realizar DNS
Reverso y Ranking de Uso para las IPs ms
Utilizadas,el cual contiene tablas de las
direcciones IPs ms usadas as como de un
grfico en barras horizontales que representa la
cantidad de flujo de datos para los distintos
protocolos y estaciones de trabajo.
4: draw(dataSet) Instancia un panel principal que contendr al
grfico obtenido de los datos de la coleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o la
representacin grfica en el centro del objeto
padre graficado.
7: setVisible(true) Permite a los diferentes objetos grficos ser
visibles para el usuario.
Tabla 3.25 Mensajes del diagrama de colaboracin del grfico 3.152


rankingListaGraph:IPRankingList
dataSet:DefaultCategoryDataset :OpcionesDNSReverse
3: new IPRankingList(this, "DNS Reverso y Ranking de Uso para las IPs ms Utilizadas", true)
5: setLocationRelativeTo(this)
4: draw(dataSet,listaIps)
6: setVisible(true)
1: clear()
2: createIPMapList(value)
160


Grfico 3.153 Diagrama de secuencia para graficar la tasa promedio de transferencia de datos



Grfico 3.154 Diagrama de colaboracin para graficar la tasa promedio de transferencia de datos

OpcionesGraficoBitratePromedio
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de datos para
realizar la representacin grfica de
Tasa Promedio de Transferencia.
2: getSelectedItem() Retorna el tipo de protocolo para
realizar la consulta a la base de datos
de los hosts seleccionados por el
usuario.
:OpcionesGraficoBitratePromedio
graph:PromedioBitrateHostSeleccionados
encapsuladoIPComboBox:javax.swing.JComboBox
PromedioBitrateHostSeleccionados graph = new PromedioBitrateHostSeleccionados(this, "Tasa Promedio de Transferencia " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
DefaultCategoryDataset dataSet = (DefaultCategoryDataset) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
1: createDataSet(value)
2: getSelectedItem()
3: new PromedioBitrateHostSeleccionados(this, "Tasa Promedio de Transferencia " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
4: draw(dataSet)
5: setLocationRelativeTo(this)
6: pack()
7: setVisible(true)
encapsuladoIPComboBox:javax.swing.JComboBox
graph:PromedioBitrateHostSeleccionados
:OpcionesGraficoBitratePromedio
3: new PromedioBitrateHostSeleccionados(this, "Tasa Promedio de Transferencia " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
7: setVisible(true)
4: draw(dataSet)
6: pack()
1: createDataSet(value)
2: getSelectedItem()
161

3: new PromedioBitrateHostSeleccionados(this,
"Tasa Promedio de Transferencia " +
this.encapsuladoIPComboBox.getSelectedItem()
, true)
Instancia un objeto que permite
realizar la graficacin de Tasa
Promedio de Transferencia para los
distintos protocolos y estaciones de
trabajo.
4: draw(dataSet) Instancia un panel principal que
contendr al grfico obtenido de los
datos de la coleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o
la representacin grfica en el centro
del objeto padre graficado.
6: pack() Organiza y empaqueta los
componentes grficos para su
representacin.
7: setVisible(true) Permite a los diferentes objetos
grficos ser visibles para el usuario.
Tabla 3.26 Mensajes del diagrama de colaboracin del grfico 3.154


Grfico 3.155 Diagrama de secuencia para obtener un histograma de frecuencias, frecuencias
acumuladas y resumen de estadstica de descriptiva de los valores de bitrate calculados

encapsuladoIPComboBox:javax.swing.JComboBox :OpcionesHistogramaTraficoInternet
graph:HistogramaAndCumulativeFrequencyPolygon
HistogramaAndCumulativeFrequencyPolygon graph = new HistogramaAndCumulativeFrequencyPolygon(this,
"Histogramas y distribucin de frecuencias acumuladas de protocolos de trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
JOptionPane.showMessageDialog(null, "Datos insuficientes para la " +
"generacin del grfico. \n" + "Elija un rango ms amplio de tiempo." ,
"Error", 0)
double[] dataValues = createDataValues(value);
isMapFilled=false
5: setLocationRelativeTo(this)
2: getSelectedItem()
4: draw(dataValues)
3: new HistogramaAndCumulativeFrequencyPolygon(this,
"Histogramas y distribucin de frecuencias acumuladas de protocolos de trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
1: createDataValues(value)
6: setVisible(true)
alt
[dataValues.length>=10]
[else]
162


Grfico 3.156 Diagrama de colaboracin para obtener un histograma de frecuencias, frecuencias
acumuladas y resumen de estadstica de descriptiva de los valores de bitrate calculados

OpcionesHistogramaTraficoInternet
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de datos
para realizar la representacin
grfica de Histogramas y distribucin
de frecuencias acumuladas de
protocolos de trfico de Internet
2: getSelectedItem() Retorna el tipo de protocolo para
realizar la consulta a la base de
datos de los hosts seleccionados
por el usuario.
3: new
HistogramaAndCumulativeFrequencyPolygon(this,
"Histogramas y distribucin de frecuencias
acumuladas de protocolos de trfico de Internet "
+
this.encapsuladoIPComboBox.getSelectedItem() ,
true)
Instancia un objeto que permite
realizar la graficacin de
Histogramas y distribucin de
frecuencias acumuladas de
protocolos de trfico de Internet para
los distintos protocolos y estaciones
de trabajo.
4: draw(dataSet) Instancia un panel principal que
contendr al grfico obtenido de los
datos de la coleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo
o la representacin grfica en el
centro del objeto padre graficado.
6: setVisible(true) Permite a los diferentes objetos
grficos ser visibles para el usuario.
Tabla 3.27 Mensajes del diagrama de colaboracin del grfico 3.156

graph:HistogramaAndCumulativeFrequencyPolygon
encapsuladoIPComboBox:javax.swing.JComboBox :OpcionesHistogramaTraficoInternet
2: getSelectedItem()
1: createDataValues(value)
3: new HistogramaAndCumulativeFrequencyPolygon(this,
"Histogramas y distribucin de frecuencias acumuladas de protocolos de trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
4: draw(dataValues)
6: setVisible(true)
163


Grfico 3.157 Diagrama de secuencia para obtener una grfica de series de tiempo


Grfico 3.158 Diagrama de colaboracin para obtener una grfica de series de tiempo

OpcionesSeriesTiempoProtocolos
Mensaje Significado
1: clone()
2: clone()
Retorna una copia de un objeto
Calendar con los mismos atributos y
valores pero asignado en un diferente
espacio de memoria.
:OpcionesSeriesTiempoProtocolos encapsuladoIPComboBox:javax.swing.JComboBox
graph:SerieDeTiempoGraficoLineas
fin:Calendar ini:Calendar
SerieDeTiempoGraficoLineas graph = new SerieDeTiempoGraficoLineas(this, "Series de Tiempo " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
TimeSeriesCollection dataSet = (TimeSeriesCollection) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
calInicio = (Calendar) ini.clone()
calFin = (Calendar) fin.clone()
7: setLocationRelativeTo(this)
4: getSelectedItem()
2: clone()
8: pack()
5: new SerieDeTiempoGraficoLineas(this, "Series de Tiempo " + this.encapsuladoIPComboBox.getSelectedItem() , true)
9: setVisible(true)
1: clone()
6: draw(dataSet)
3: createDataSet(value)
encapsuladoIPComboBox:javax.swing.JComboBox
graph:SerieDeTiempoGraficoLineas
:OpcionesSeriesTiempoProtocolos
fin:Calendar
ini:Calendar
5: new SerieDeTiempoGraficoLineas(this, "Series de Tiempo " + this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setLocationRelativeTo(this)
9: setVisible(true)
6: draw(dataSet)
8: pack()
1: clone()
3: createDataSet(value)
2: clone()
4: getSelectedItem()
164

3: createDataSet(value) Instancia una coleccin de datos para
realizar la representacin grfica de
las series de tiempo lneas.
4: getSelectedItem() Retorna el tipo de protocolo para
realizar la consulta a la base de datos
de los hosts seleccionados por el
usuario
5: new SerieDeTiempoGraficoLineas(this,
"Series de Tiempo "
this.encapsuladoIPComboBox.getSelectedItem()
, true)
Instancia un objeto que permite
realizar la graficacin de series de
tiempo lneas para los distintos
protocolos y estaciones de trabajo.
6: draw(dataSet) Instancia un panel principal que
contendr al grfico obtenido de los
datos de la coleccin
7: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o
la representacin grfica en el centro
del objeto padre graficado.
8: pack() Organiza y empaqueta los
componentes grficos para su
representacin.
9: setVisible(true) Permite a los diferentes objetos
grficos ser visibles para el usuario.
Tabla 3.28 Mensajes del diagrama de colaboracin del grfico 3.158


Grfico 3.159 Diagrama de secuencia para obtener una grfica de series de tiempo que usa pasos
para cada intervalo de tiempo regular

:OpcionesPasosPromedioProtocolos encapsuladoIPComboBox:javax.swing.JComboBox
graph:SerieDeTiempoGraficoPasos
fin:Calendar ini:Calendar
SerieDeTiempoGraficoPasos graph = new SerieDeTiempoGraficoPasos(this, "Series de Tiempo en Pasos " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
TimeSeriesCollection dataSet = (TimeSeriesCollection) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
calInicio = (Calendar) ini.clone()
calFin = (Calendar) fin.clone()
7: setLocationRelativeTo(this)
4: getSelectedItem()
2: clone()
8: pack()
5: new SerieDeTiempoGraficoPasos(this, "Series de Tiempo en Pasos " + this.encapsuladoIPComboBox.getSelectedItem() , true)
9: setVisible(true)
1: clone()
6: draw(dataSet)
3: createDataSet(value)
165



Grfico 3.160 Diagrama de colaboracin para obtener una grfica de series de tiempo que usa
pasos para cada intervalo de tiempo regular



OpcionesPasosPromedioProtocolos
Mensaje Significado
1: clone()
2: clone()
Retorna una copia de un objeto Calendar con los
mismos atributos y valores pero asignado en un
diferente espacio de memoria.
3: createDataSet(value) Instancia una coleccin de datos para realizar la
representacin grfica de las series de tiempo
en pasos.
4: getSelectedItem() Retorna el tipo de protocolo para realizar la
consulta a la base de datos de los hosts
seleccionados por el usuario
5: new SerieDeTiempoGraficoPasos(this,
"Series de Tiempo en Pasos " +
this.encapsuladoIPComboBox.getSelected
Item() , true)
Instancia un objeto que permite realizar la
graficacin de series de tiempo en pasos para
los distintos protocolos y estaciones de trabajo.
6: draw(dataSet) Instancia un panel principal que contendr al
grfico obtenido de los datos de la coleccin
7: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o la
representacin grfica en el centro del objeto
padre graficado.
8: pack() Organiza y empaqueta los componentes grficos
para su representacin.
9: setVisible(true) Permite a los diferentes objetos grficos ser
visibles para el usuario.
Tabla 3.29 Mensajes del diagrama de colaboracin del grfico 3.160

encapsuladoIPComboBox:javax.swing.JComboBox
:OpcionesPasosPromedioProtocolos
graph:SerieDeTiempoGraficoPasos
fin:Calendar
ini:Calendar
1: clone()
2: clone()
3: createDataSet(value)
4: getSelectedItem()
5: new SerieDeTiempoGraficoPasos(this, "Series de Tiempo en Pasos " + this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setLocationRelativeTo(this)
9: setVisible(true)
6: draw(dataSet)
8: pack()
166


Grfico 3.161 Diagrama de secuencia de la generacin de un pastel 2D de porcentajes de trfico
de Internet


Grfico 3.162 Diagrama de secuencia de la generacin de un pastel 2D de porcentajes de trfico
de Internet








:OpcionesPorcentajeGraficoPastel2D encapsuladoIPComboBox:javax.swing.JComboBox
graph:PercentagePieGraph2D
PercentagePieGraph2D graph = new PercentagePieGraph2D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
DefaultPieDataset dataSet = (DefaultPieDataset) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
1: createDataSet(value)
2: getSelectedItem()
3: new PercentagePieGraph2D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setVisible(true)
5: setLocationRelativeTo(this)
6: pack()
4: draw(dataSet)
encapsuladoIPComboBox:javax.swing.JComboBox
:OpcionesPorcentajeGraficoPastel2D
graph:PercentagePieGraph2D
3: new PercentagePieGraph2D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
7: setVisible(true)
4: draw(dataSet)
6: graph.pack()
1: createDataSet(value)
2: getSelectedItem()
167

OpcionesPorcentajeGraficoPastel2D
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de datos para realizar
la representacin grfica de Tasa Promedio
de Transferencia.
2: getSelectedItem() Retorna el tipo de protocolo para realizar la
consulta a la base de datos de los hosts
seleccionados por el usuario.
3: new PercentagePieGraph2D(this,
"Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelect
edItem() , true)
Instancia un objeto que permite realizar la
graficacin Porcentajes de Trfico de Internet
2D para los distintos protocolos y estaciones
de trabajo.
4: draw(dataSet) Instancia un panel principal que contendr al
grfico obtenido de los datos de la coleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de dilogo o la
representacin grfica en el centro del objeto
padre graficado.
6: pack() Organiza y empaqueta los componentes
grficos para su representacin.
7: setVisible(true) Permite a los diferentes objetos grficos ser
visibles para el usuario.
Tabla 3.30 Mensajes del diagrama de colaboracin del grfico 3.162


Grfico 3.163 Diagrama de secuencia de la generacin de un pastel 3D de porcentajes de trfico
de Internet
:OpcionesPorcentajeGraficoPastel3D encapsuladoIPComboBox:javax.swing.JComboBox
graph:PercentagePieGraph3D
PercentagePieGraph3D graph = new PercentagePieGraph3D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true);
DefaultPieDataset dataSet = (DefaultPieDataset) createDataSet(value);
RefineryUtilities.centerFrameOnScreen(graph)
1: createDataSet(value)
2: getSelectedItem()
3: new PercentagePieGraph3D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
7: setVisible(true)
5: setLocationRelativeTo(this)
6: pack()
4: draw(dataSet)
168



Grfico 3.164 Diagrama de colaboracin de la generacin de un pastel 3D de porcentajes de
trfico de Internet

OpcionesPorcentajeGraficoPastel3D
Mensaje Significado
1: createDataSet(value) Instancia una coleccin de
datos para realizar la
representacin grfica de Tasa
Promedio de Transferencia.
2: getSelectedItem() Retorna el tipo de protocolo
para realizar la consulta a la
base de datos de los hosts
seleccionados por el usuario.
3: new PercentagePieGraph3D(this, "Porcentajes de
Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
Instancia un objeto que
permite realizar la graficacin
Porcentajes de Trfico de
Internet 3D para los distintos
protocolos y estaciones de
trabajo.
4: draw(dataSet) Instancia un panel principal
que contendr al grfico
obtenido de los datos de la
colleccin
5: setLocationRelativeTo(this) Permite graficar el cuadro de
dilogo o la representacin
grfica en el centro del objeto
padre graficado.
6: pack() Organiza y empaqueta los
componentes grficos para su
representacin.
7: setVisible(true) Permite a los diferentes
objetos grficos ser visibles
para el usuario.
Tabla 3.31 Mensajes del diagrama de colaboracin del grfico 3.164






encapsuladoIPComboBox:javax.swing.JComboBox
:OpcionesPorcentajeGraficoPastel3D
graph:PercentagePieGraph3D
2: getSelectedItem()
1: createDataSet(value)
3: new PercentagePieGraph3D(this, "Porcentajes de Trfico de Internet " +
this.encapsuladoIPComboBox.getSelectedItem() , true)
5: setLocationRelativeTo(this)
7: setVisible(true)
4: draw(dataSet)
6: pack()
169

Caso de uso:
Diferenciar trfico (host, protocolos, puertos)
La diferenciacin de trfico est dada por las distintas opciones que el usuario
puede seleccionar en la ventana de dilogo que aparece una vez que se ha
elegido el grfico que se desea obtener. Una vez terminado el proceso de
seleccin de opciones y se hace clic en aceptar se genera un evento que es
capturado por la aplicacin y tratado como se observa en el siguiente
diagrama del grfico 3.165.

Grfico 3.165 Diagrama de secuencia que muestra la diferenciacin de trfico segn las opciones
seleccionadas por el usuario, en la generacin de una consulta SQL para la base de datos
(mtodo generarConsultaGrafico() de todas la clases que heredan de DialogoDeOpciones)
noWellKPortComboBox:javax.swing.JComboBox :DialogoDeOpciones tablaConsulta:SqlEntry: wellKPortComboBox:javax.swing.JComboBox :Administrador encapsuladoIPComboBox:javax.swing.JComboBox query:QueryGetter in_OutComboBox:javax.swing.JComboBox
String consultaInOut = "SELECT * FROM ("+consultaHostSeleccionados +") a WHERE a.`TRAFFICTYPEID` = " +
in_OutComboBox. getSelectedIndex();
String consultaHostSeleccionados = "SELECT * FROM INTERNETRAFFIC.DATATRAFFIC a WHERE "+
hostSeleccionados + " ORDER BY a.`KEYNUMBER`";
String consultaIP_ProtocolID = "SELECT * FROM ("+ consultaHorasSeleccionadas+") a WHERE a.`IP_PROTOCOLID`=" + IP_ProtocolID;
String portNumber = portNumberToQuery(this.wellKPortComboBox. getSelectedItem(),this.noWellKPortComboBox.getSelectedItem());
String consultaHorasSeleccionadas = "SELECT * FROM ("+consultaInOut +") a WHERE " + horasSeleccionadas;
String IP_ProtocolID = protocolStringToQuery(encapsuladoIPComboBox. getSelectedItem());
String consultaPortNumber = "SELECT * FROM ("+consultaIP_ProtocolID+")"+ portNumber;
drawChart(tablaConsulta.getValue(),getCalendarioInicio(), getCalendarioFin())
SqlEntry tablaConsulta = query.consultaDatabase(consultaPortNumber);
String hostSeleccionados = hostsSeleccionados();
String horasSeleccionadas = getDateString();
drawChart(tablaConsulta.getValue())
System.gc()
1.4: getSelectedItem()
1.9:
1.15:
1.1:
1.11:
1.5:
1.7: getSelectedItem()
1.10:
1.2:
1.3: getSelectedIndex()
1.8:
1.12:
1.13:
1.6: getSelectedItem()
1: generarConsultaGrafico()
1.14:
170



Grfico 3.166 Diagrama de colaboracin que muestra la diferenciacin de trfico segn las
opciones seleccionadas por el usuario, en la generacin de una consulta SQL para la base de
datos (mtodo generarConsultaGrafico() de todas la clases que heredan de DialogoDeOpciones)


generarConsultaGrafico()
Mensaje Significado
1: generarConsultaGrafico() Genera una cadena de caracteres con hosts,
protocolos, encapsulado IP, tipo de trfico,
hora de inicio y fin en forma de consulta
necesario para obtener los datos requeridos
de la base de datos para cada diagrama
estadstico.
1.1: hostsSeleccionados() Retorna un objeto del tipo String que
representa una cadena de caracteres de
todos los hosts seleccionados lista para
aadir a la sentencia de consulta para la
base de datos.
1.2: getDateString() Retorna un objeto del tipo String con el da
inicio y fin en milisegundos para armar la
consulta a la base de datos.
1.3: getSelectedIndex() Retorna el ndice del valor seleccionado del
comboBox Seleccione el tipo de trfico
para diferenciar si es incoming o outgoing
traffic.
1.4: getSelectedItem() Retorna el ndice del valor seleccionado del
comboBox para diferenciar el tipo de
protocolo ya sea UDP, TCP, ICMP.
1.5: protocolStringToQuery(
encapsuladoIPComboBox.
getSelectedItem())
Transforma el item seleccionado del
ComboBox Protocolo encapsulado IP a una
cadena de caracteres para la consulta a la
base de datos.
1.6: getSelectedItem() Retorna el ndice del valor seleccionado del
comboBox Ptos Well Known TCP/UDP
para diferenciar el tipo de puertos bien
conocidos.
1.7: getSelectedItem() Retorna el ndice del valor seleccionado del
comboBox Ptos No Well Known TCP/UDP
para diferenciar el tipo de puertos no bien
conocidos.
1.8: portNumberToQuery( Arma una cadena de caracteres para la
encapsuladoIPComboBox:javax.swing.JComboBox
noWellKPortComboBox:javax.swing.JComboBox
wellKPortComboBox:javax.swing.JComboBox
in_OutComboBox:javax.swing.JComboBox
tablaConsulta:SqlEntry:
:DialogoDeOpciones
query:QueryGetter
:Administrador
1.8: portNumberToQuery(this.wellKPortComboBox. getSelectedItem(),this.noWellKPortComboBox.getSelectedItem())
1.13: drawChart(tablaConsulta.getValue(),getCalendarioInicio(),getCalendarioFin())
1.5: protocolStringToQuery(encapsuladoIPComboBox. getSelectedItem())
1.15: drawChart(tablaConsulta.getValue())
1.11: getCalendarioInicio()
1.1: hostsSeleccionados()
1.12: getCalendarioFin()
1.2: getDateString()
1.3: getSelectedIndex()
1.4: getSelectedItem()
1.6: getSelectedItem()
1.7: getSelectedItem()
1.9: consultaDatabase(consultaPortNumber)
1.10: getValue()
1.14: getValue()
1: generarConsultaGrafico()
171

this.wellKPortComboBox.
getSelectedItem(),
this.noWellKPortComboBox.
getSelectedItem())
consulta a la base de datos de acuerdo a la
seleccin de puertos que el usuario haya
elegido en el cuadro de dilogo.
1.9:
consultaDatabase(consultaPortNumber)
Consulta a la base de datos para obtener un
objeto del tipo Statement y otro objeto del
tipo ResultSet relacionados unvocamente
en un tercer objeto del tipo SqlEntry.
1.10: getValue()
1.14: getValue()
Retorna el ResultSet asociado.
1.11: getCalendarioInicio() Retorna un objeto del tipo Calendar que
representa al calendario inicio del cuadro de
dilogo.
1.12: getCalendarioFin() Retorna un objeto del tipo Calendar que
representa al calendario fin del cuadro de
dilogo.

1.13:
drawChart(tablaConsulta.getValue(),getC
alendarioInicio(),getCalendarioFin())
Mtodos a implementar segn requiera el
diagrama elegido por el usuario (abstract).
Se encargar de organizar los datos de la
consulta para representarlos grficamente,
especialmente para los diagramas
temporales.
1.15: drawChart(tablaConsulta.getValue()) Mtodos a implementar segn requiera el
diagrama elegido por el usuario (abstract).
Se encargar de organizar los datos de la
consulta para representarlos grficamente.
Tabla 3.32 Mensajes del diagrama de colaboracin del grfico 3.166

Caso de uso:
Almacenar y recuperar de disco
El proceso de adquisicin de datos desde la base es usado casi de manera
implcita durante la generacin de los grficos, como paso posterior e
inmediato a la obtencin de la cadena de texto de consulta. Este importante
proceso para el cumplimiento del presente caso de uso es realizado
usando los mtodos del paquete database.
172


Grfico 3.167 Diagrama de secuencia para la realizacin de una consulta previo establecimiento
de la conexin con la base en QueryStatistics por medio del mtodo consultaDatabase(String
consulta) de QueryGetter.

Grfico 3.168 Diagrama de secuencia para la realizacin de una consulta previo establecimiento
de la conexin con la base en QueryStatistics por medio del mtodo consultaDatabase(String
consulta) de QueryGetter.
consultaDatabase(in consulta:String)
Mensaje Significado
1: getSqlExecutor() Retorna un objeto del tipo
Statement de la base de datos
actual.
2: consultaDatabase(sqlExecutor,consulta) Consulta a la base de datos a
travs de un objeto Statement.
3: new SqlEntry<Statement,ResultSet>(sqlExecutor,rs) Instancia un objeto SqlEntry
que mantiene una relacin
unvoca entre un objeto
Statement y un objeto
ResultSet.
Tabla 3.33 Mensajes del diagrama de colaboracin del grfico 3.168
databaseInstance:Database
:QueryGetter
entry:SqlEntry
SqlEntry<Statement,ResultSet> entry = new SqlEntry<Statement,ResultSet>(sqlExecutor,rs);
ResultSet rs = databaseInstance.consultaDatabase(sqlExecutor,consulta);
Statement sqlExecutor = getSqlExecutor();
return entry
1: getSqlExecutor()
2: consultaDatabase(sqlExecutor,consulta)
3: new SqlEntry<Statement,ResultSet>(sqlExecutor,rs)
databaseInstance:Database
entry:SqlEntry
:QueryGetter
1: getSqlExecutor()
2: consultaDatabase(sqlExecutor,consulta)
3: new SqlEntry<Statement,ResultSet>(sqlExecutor,rs)
173

CAPTULO 4
4. IMPLEMENTACIN DEL PROTOTIPO, PRUEBAS DE
MONITOREO Y ANLISIS DE COSTOS
Concluido el proceso de diseo y desarrollo se gener una versin distribuible del
proyecto. Posteriormente se describirn las respectivas pruebas de
funcionamiento para verificar el cumplimiento de los objetivos y corregir posibles
errores. Tambin se presentan varios escenarios para demostrar la utilidad del
proyecto. De acuerdo al plan propuesto tambin se mostrar comparaciones con
respecto a otro software similar junto con un anlisis de costos de desarrollo del
proyecto.
4.1. DESCRIPCIN DE LOS PAQUETES EJECUTABLES Y LOS
PAQUETES DE BIBLIOTECAS EN LA DISTRIBUCIN FINAL
DEL SOFTWARE DEL PROYECTO DE TITULACIN
El paquete distribuible consta de los siguientes elementos:

Windows:

TrafficAndQueryStatistics
+
+-->TrafficStatistics.jar: Aplicacin para la captura de paquetes y sniffer.
+
+-->QueryStatistics.jar: Aplicacin para generar grficos estadsticos.
+
+-->jnetpcap.dll: Intrprete entre jNetPcap y Windows.
+
+--lib: Bibliotecas.
+--> TrafficStatisticsLibrary.jar: Biblioteca desarrollada en el proyecto.
+
+--> appframework-1.0.3.jar: Swing Application Framework NetBeans.
+
+--> DJNativeSwing-SWT.jar: Provee componentes para NativeSwing.
+
+--> DJNativeSwing.jar: Integracin de componentes nativos y
+ aplicaciones Swing.
+--> jna-3.0.7.jar: Acceso de Java a libreras compartidas de Windows.
+
+--> jna_WindowUtils.jar: Encapsula varias utilidades para Windows.
+
174

+--> jnetpcap-1.2.rc5.jar: Biblioteca Java intrprete WinPcap y libpcap.
+--> jsc.jar: Biblioteca estadstica.
+
+--> MozillaInterfaces-1.8.1.3.jar: Biblioteca para interactuar con el
+ navegador MozillaFirefox.
+--> mysql-connector-java-5.1.7-bin.jar: Administra base de datos
+ MySQL desde Java.
+--> mysql-connector-mxj-gpl-5-0-9-db-files.jar: Binarios de la base de
+ datos MySQL para diferentes sistemas operativos.
+
+--> mysql-connector-mxj-gpl-5-0-9-fixed.jar: Embebe una base de
+ datos MySQL en una aplicacin Java.
+
+--> substance.jar: Plantillas visuales para aplicaciones Java.
+
+--> swing-worker-1.1.jar: Manejo de eventos.
+
+--> swt-3.6M3-win32-win32-x86.jar: Interfaz grfica dependiente de la
+ plataforma.
+--> gnujaxp.jar: Implementacin del estndar XML para APIs de Java.
+
+--> iText-2.1.5.jar: Biblioteca base para JFreeChart.
+
+--> JCalendar.jar: Calendario visual para aplicaciones Java.
+
+--> jcommon-1.0.16.jar: Biblioteca base para JFreeChart.
+
+--> jfreechart-1.0.13-experimental.jar: Biblioteca base para
+ JFreeChart.
+--> jfreechart-1.0.13-swt.jar: Biblioteca base para JFreeChart.
+
+--> jfreechart-1.0.13.jar: Biblioteca gratuita para generacin de
+ grficos en aplicaciones Java.
+--> junit.jar: Unidad de prueba para framework.
+
+--> swtgraphics2d.jar: Extensin de Graphics2D usado por
JFreeChart.
Para la distribucin de CentOS 5.2 y Ubuntu 8.04 se incluyen los paquetes
jnetpcap-1.2.rc5-fc8.i386.rpm y jnetpcap-1.2.rc5-deb.i386.deb respectivamente
que contiene a jNetPcap.
Una biblioteca adicional comn para Linux es swt-3.6-gtk-linux-x86.jar para el uso
de elementos nativos de sistemas operativos basados en Unix.
175

4.2. COMPARACIN DEL SOFTWARE DESARROLLADO CON
WIRESHARK WIN32-1.2.8 Y COLASOFT CAPSA 7.1
La necesidad de los administradores de red para alcanzar el mximo rendimiento
con los menores recursos posibles, ha llevado a los desarrolladores de soluciones
de software orientados a la red a implementar herramientas que permitan suplir
esta necesidad, para administrar eficientemente los recursos de red.
En la actualidad el Internet se ha convertido en un valioso recurso y para su
monitoreo, existen un sin nmero de aplicaciones de las cuales se elegirn dos
para realizar la respectiva comparacin con el proyecto de titulacin. Siguiendo el
plan propuesto anteriormente las aplicaciones elegidas son Wireshark win32-1.2.8
y Colasoft Capsa 7.1 Full Demo 30 Days.
Se comparar todas las caractersticas afines entre los dos programas y el
proyecto de titulacin de manera general por medio de tablas.
4.2.1. Comparacin de requerimientos mnimos de hardware y software.

La tabla 4.1 muestra los requerimientos mnimos de las tres aplicaciones,


detallando el sistema operativo, hardware y software adicional que no venga en
sus instaladores.
Items Proyecto de
Titulacin
Wireshark win32-
1.2.8
Colasoft Capsa 7.1
Procesador P4 1.6 GHz/ AMD
Atlon 1.2 GHz
P3 700 MHz P4 2.8 GHz
Memoria RAM 1 GB 128 MB 2 GB
Browser Mozilla o Internet
Explorer 6.0
Mozilla o Internet
Explorer 6.0
Internet Explorer 6
Aplicaciones
Adicionales
Abode Flash Player
10 ActiveX
Ninguna Ninguna
Sistema
Operativo
Windows XP SP2
Windows 2003 server
Windows Vista
Windows 7
CentOS 5.2
Ubuntu 8.02
Windows XP SP2
Windows 2003 server
Windows Vista
Windows 7
CentOS 5.2
Ubuntu 8.02
Windows XP SP2
Windows 2003
server
Windows Vista
Windows 7
Tabla 4.1 Requerimientos Mnimos del Sistema


176

4.2.2. Comparacin de caractersticas afines del software desarrollado con
Wireshark win32-1.2.8 y Colasoft Capsa 7.1
La tabla 4.2 se muestra una breve comparacin de las caractersticas afines entre
las tres aplicaciones. Para profundizar ms en las caractersticas de comparacin
se sugiere leer el anexo D.
Caractersticas Proyectode
Titulacin
CapsaColasoft
7.1
Wiresharkwin32
1.2.8
CAPTURADEDATOS
SeleccinInterfazdered SI SI SI
Listadeestacionesde
trabajomonitoreadas
SI SI NO
Browser SI NO NO
FiltroporProtocolo SI SI SI
FiltroporPuerto SI SI SI
Descripcindecamposde
cabecerasdepaquetes
SI SI SI
GrficosenTiemporealdel
trficototal
SI SI SI(Limitado)
GrficosenTiemporealdel
trficoporhosts
seleccionados
SI(Eleccin
Simple)
SI(Configurando
Subredes)
SI(Implementando
filtros)
Gradientedecolorpara
graficacindelbitrateen
tiemporeal.
SI NO NO
Trayiconsparatrficototal
entiemporeal
SI NO NO
Trayiconsparatrficopor
hostsseleccionados.
SI SI SI
Diferenciacindetrfico
entranteysalienteen
graficacindetiemporeal
SI NO NO
Reiniciodegrficosen
tiemporealparatrafico
entranteysaliente
SI NO NO
Capturadegrficosen
tiemporeal
SI SI NO
Alarmas SI SI NO
Asignacindevalores
crticosdebitrate
SI NO NO
Guardarcontenidode
paquetesdecodificados
SI SI SI
Importaryexportarbase
dedatos
SI NO NO
ANLISISDEDATOS
Tasadetransferencia
promediodeusode
Internet
SI SI NO
Porcentajedeusode
trficodeInternet2D
SI SI NO
Porcentajedeusode SI NO NO
177

trficodeInternet3D
Histogramadefrecuencias
debitratescalculadosen
unrangodetiempo
SI NO NO
Distribucindefrecuencias
acumuladasdeprotocolos
detrficodeInternet.

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.

Grfico 4.23 Tabla de frecuencias para el escenario 1.



El grfico 4.23 muestra los valores de frecuencia del grfico 4.21 con mayor
detalle para los valores de densidad de frecuencia.

Grfico 4.24 Tabla de estadstica descriptiva para el escenario 1.



El grfico 4.24 muestra que los datos no se han concentrado en la media sino que
existen varios valores dispersos.
El administrador de red deber implementar la solucin pertinente por medio de
herramientas de control de red especializadas para este escenario.
4.4.2. Segundo Escenario Deteccin de posibles envos de spam
10
o replicacin de
gusanos
11
informticos.
Con los datos obtenidos del monitoreo de trfico se requiere conocer las tasas de
transferencia de conexin a Internet de las estaciones de trabajo a fin de localizar
anomalas o comportamientos inusuales.
Las consecuencias de un ataque informtico pueden ser visibles cuando una
estacin de trabajo infectada est siendo utilizada, ya sea para enviar spam o por
un gusano informtico de red que se est reproduciendo y enviando copias de s
mismo.
Para este tipo de anlisis se requiere utilizar la herramienta Tasa de transferencia
promedio de uso de Internet .

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

Grfico 4.26 Tasa de transferencia de trfico de Internet para escenario 2.


197

Como se muestra en el grfico 4.26 existen 5 estaciones de trabajo con altos
valores de tasa de transferencia de datos recibidos por el puerto 80. Las
direcciones IPs correspondientes a estos hosts son:
- 172.31.18.159 - 172.31.18.58 - 172.31.18.161 - 172.31.18.166 - 172.31.18.164
Este trfico puede ser ocasionado por descargas de archivos, en consecuencia se
revisar el trfico de salida para ver si las estaciones de trabajo antes sealadas
poseen cantidades de tasa de transferencia considerables y descartar o afirmar
una posible infeccin.
Para ello se asigna el filtro con los mismos valores de la anterior consulta a
excepcin del tipo de trfico que en este caso ser outgoing o saliente.

Grfico 4.27 Cuadro para seleccin de hosts, puertos e intervalo de tiempo para la consulta a la
base de datos outgoing (Tasa de transferencia promedio de uso de Internet).


Puerto: 80 Keyword: www-http
198


Grfico 4.28 Tasa promedio de transferencia de trfico de Internet para escenario 2.
Como se pueden apreciar en el grfico 4.28 las estaciones de trabajo con mayor
tasa de transferencia de salida son:
- 172.31.18.159 - 172.31.18.58 - 172.31.18.161 - 172.31.18.166 - 172.31.18.164
- 172.31.18.155
Los valores de bitrate para estas estaciones de trabajo son relativamente bajos
por lo que se concluye que estos hosts no han sido infectados ni propagan la
infeccin a otras mquinas.
En el caso de que los valores de bitrate sean altos, el administrador de red debe
realizar la verificacin de cada uno de los equipos y cerciorarse del uso que le dan
los usuarios.
Puerto: 80 Keyword: www-http
199

Por ejemplo, si se trata de una estacin de trabajo que usa el correo electrnico
para enviar notificaciones, informes y reportes de las actividades de la empresa,
una tasa de transferencia de salida alta no es un caso inusual, pero si es una
estacin de trabajo sin estos privilegios el administrador debe tomar las acciones
necesarias para corregir este problema.
4.4.3. Tercer Escenario Direcciones IP sospechosas.

A partir de los datos obtenidos del monitoreo de trfico de Internet se requiere


saber si existe algn comportamiento inusual de una o de varias estaciones de
trabajo. Siendo un comportamiento sospecho iniciar una conexin repetitiva a una
direccin IP. Este tipo de anomala describira un posible ataque, ya que estara
conectndose con la estacin de trabajo remotamente infectada para as causar
dao en la red local. Para este tipo de anlisis se requiere utilizar la herramienta
DNS reverso y ranking para IPs ms utilizadas.
Se asigna la fecha y las horas en donde existi utilizacin del acceso a Internet
para todas las estaciones de trabajo.

Grfico 4.29 Cuadro para seleccin de hosts, puertos e intervalo de tiempo para la consulta a la
base de datos outgoing (DNS reverso y ranking para IPs ms utilizadas).

200


Grfico 4.30 Trfico de red por host y direccin IP pblica para escenario 3.
Estacin con la mayor cantidad de trfico
enviado
201

Como se puede ver en el grfico 4.30 la mayor cantidad de informacin
transferida corresponde a la estacin de trabajo con direccin IP 172.31.18.164
que oscila entre los 6 MB. Por ello se seleccionar esta estacin de trabajo y se
descartara un posible ataque ya que la cantidad de datos enviados es mnima.

Grfico 4.31 Trfico de red por host y direccin IP pblica con tabla de IP Ranking para el
escenario 3.

En el grfico 4.31 se observa que no se resuelven todas las direcciones IP ya que
no existen registros de estas direcciones en el servidor DNS.
El administrador de red debera bloquear el acceso a direcciones IP que
correspondan a trfico no deseado de acuerdo a las polticas de la empresa.
4.4.4. Cuarto Escenario Deteccin de patrones de comportamiento.

Con los datos obtenidos del monitoreo de trfico de Internet se requiere saber si
existe algn comportamiento inusual de la estacin de trabajo con direccin IP
172.31.18.159 donde las descargas de grandes archivos no estn permitidas. El
objetivo es verificar si existe un patrn de conexiones repetitivas en horas y

p
h
S
I

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

Para los costos de diseo e implementacin se necesitaron 2 programadores


trabajando 8 horas diarias y 5 das a la semana por alrededor de 11 meses y
medio.
El costo para un programador promedio con conocimientos en Java, MySQL,
sistemas operativos, animacin flash, conocimientos de bsicos de Estadsticas y
redes de datos est alrededor de 7.50 dlares americanos por hora. Este dato se
obtuvo realizando una consulta del salario promedio para programadores en java
en la conocida pgina web multitrabajos
12
.

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

También podría gustarte