1 Capítulo 1: Introducción
1.1 Motivación
1.2 Objetivos
1.3 Comienzo del desarrollo
1.4 Estructura de la Tesina
2 Capítulo 2: Conceptos de redes
2.1 Modelo TCP/IP
2.1.1 Capa 1 (física)
2.1.2 Capa 2 (capa de enlace)
2.1.3 Capa 3 (capa de red)
2.1.4 Capa 4 (capa de transporte)
2.1.5 Capa 5 (capa de aplicación)
2.2 Estructuras de los protocolos
2.2.1 Opciones en formato TLV
2.2.2 Endian de las estructuras
2.2.3 Apilamiento de PDUs
2.2.4 Chequeo de errores
2.3 Documentación de los protocolos
3 Capítulo 3: Criterios de diseño
3.1 Lenguaje de programación
3.2 Eficiencia
3.3 Dependencias
3.3.1 Captura de paquetes
3.3.2 Build system
3.4 Portabilidad
3.5 Documentación
3.6 Licencia
4 Capítulo 4: Diseño de la librería
4.1 Representación de campos: utilizando abstracciones
4.1.1 Ventajas
4.1.2 Desventajas
4.2 Representación de campos: utilización de bitfields
4.2.1 Incompatibilidad de endianness
4.2.2 Ventajas
4.2.3 Desventajas
4.3 Representación de PDUs
4.4 Serialización de paquetes
4.5 Interpretación de paquetes
4.6 Representación de opciones TLV
4.7 Captura de paquetes
4.7.1 Captura de a un paquete
4.7.2 Captura usando un callback
4.8 Análisis automático de las capas de un paquete
4.9 Testing
4.10 Portabilidad entre sistemas operativos
4.10.1 GNU/Linux
4.10.2 BSD
4.10.3 Windows
4.11 Portabilidad entre diferentes arquitecturas
4.11.1 x86
4.11.2 x86-64
4.11.3 ARM
4.11.4 MIPS
5 Capítulo 5: Benchmarks
5.1 Librería probar
5.2 Características del ambiente de pruebas
5.3 Código fuente datos
5.4 Resultados generados
5.5 Primer benchmark : TCP + datos
5.5.1 Resultados
5.6 Segundo benchmark : TCP + opciones + datos
5.6.1 Resultados
5.7 Tercer benchmark : respuestas DNS
5.7.1 Resultados
5.8 Conclusiones
6 Capítulo 6: Ejemplos y casos de uso
6.1 Detección de tráfico malicioso
6.1.1 Explotación de vulnerabilidades
6.1.2 Ataques de fuerza bruta
6.2 Monitoreo de redes
7 Capítulo 7: Conclusiones y trabajo futuro
7.1 Conclusiones
7.2 Trabajo futuro