Redes de ordenadores

5º de Ingeniería de Telecomunicación. Curso 2002/2003

Práctica 1 - Decodificación de protocolos (1 punto)

En esta práctica se pretende que el alumno comprenda cómo se encapsulan los protocolos típicos de la pila TCP/IP. Para ello se va a realizar un programa que capturando tramas del nivel de enlace Ethernet (vea el uso de la librería sockpromis) reconozca los diferentes protocolos que transportan y obtenga unas simples estadísticas. Ninguna de las estadísticas propuestas requiere más que llevar contadores paquete a paquete.

Las estadísticas a obtener son las siguientes:
  1. Número de tramas Ethernet II
  2. Número de tramas 802.3
  3. Bytes totales a nivel Ethernet (trama completa, es decir, incluyendo cabecera, posible padding y checksum, tanto estándar DIX como IEEE)
  4. Número de paquetes de ARP
  5. Número de paquetes IP
  6. Número de tramas Ethernet (DIX o IEEE) que no son ni ARP ni IP
  7. Número de bytes a nivel Ethernet debidos a paquetes IP
  8. Número de bytes a nivel IP (PDU de IP, es decir, incluyendo cabecera IP)
  9. Número de paquetes IP que son fragmentos
  10. Número de bytes de datos IP
  11. Número de bytes de cabeceras IP
  12. Número de bytes IP cuya dirección origen sea 1.1.1.253
  13. Número de segmentos TCP
  14. Número de bytes TCP (PDU de TCP completa, segmento incluyendo cabecera TCP)
  15. Número de paquetes UDP
  16. Número de bytes UDP (PDU de UDP completa, datagrama incluyendo cabecera UDP)
  17. Número de paquetes ICMP
  18. Número de bytes ICMP
  19. Número de paquetes IP que no son ni TCP ni UDP ni ICMP
  20. Número de bytes de datos IP debidos a esos otros protocolos
  21. Número de segmentos TCP con el flag SYN activo
  22. Número de bytes TCP (PDU completa) de segmentos cuyo origen sea el puerto 1080
  23. Número de datagramas UDP cuyo puerto origen sea el del servicio de DNS

La sintaxis del programa es muy simple:

redestat [-f file_path]

El programa terminará cuando la librería de captura dé un error o cuando se reciba la señal SIGINT (enviada ante un Ctrl+C). En ese momento volcará las estadísticas definidas, cada una en una línea individual, como un entero, sin tabuladores ni espacios, en el orden establecido arriba. Si la opción -f no está presente leerá las tramas del interfaz de red de la máquina pero si lo está entonces las lee del fichero file_path (ver la función sp_defichero() de la librería sockpromis).

Formato de entrega: En el $HOME del grupo de prácticas se debe crear un directorio llamado practica1 y en él dejar las fuentes y un makefile para obtener redestat con solo hacer make.


Notas:
- Recuerde que las tramas Ethernet entregadas por la librería no incluyen (ni en los datos ni en el tamaño) el checksum de Ethernet.
- Tenga en cuenta que se pueden encontrar tanto tramas Ethernet II como 802.3
- Mantenga estrictamente el formato especificado para la ejecución del programa y para su salida de resultados. La corrección se realizará mediante script que comparará la salida del programa con la esperada.
- Se relizará un proceso de detección de copias. Ante una copia en las prácticas tanto el grupo que copia como el que se deje copiar suspenderá la asignatura completa.
- Se dejará disponible una versión compilada de la solución a esta práctica, así como ficheros de traza ejemplo para comprobar el correcto funcionamiento del programa realizado. Visite frecuentemente esta página (http://www.tlm.unavarra.es/asignaturas/ro/ro02/practica_1.html) para encontrar actualizaciones.


Estas páginas pueden sufrir modificaciones frecuentes
Última actualización 12:24 13/02/2003