Cuando llega el paquete, la NIC genera una interrupción y el núcleo se hace cargo. Quiero medir el tiempo en el que llega un paquete de un determinado flujo TCP.
¿Cómo hago esto en Linux? Esto es lo que hacen herramientas como tcpdump.
Respuesta aceptada:
tcpdump
marca de tiempo todos los paquetes. Entonces debería poder usar tcpdump. De lo contrario, podría probar wireshark, que también monitorea el tráfico de red, pero con una interfaz gráfica de usuario agradable y potente. Si no necesita escribir este proceso, diría que Wireshark es su amigo en esta situación.
Puede echar un vistazo a http://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/ para obtener más información sobre cómo usar Wireshark.
Si está más interesado en cómo medir esto usted mismo, puede inspeccionar tcpdump
con strace
o, como se sugiere, lea la fuente. strace
will le dará una lista de llamadas al sistema que puede usar en su propia aplicación. Sin embargo, la solución más fácil sería ejecutar tcpdump
y luego filtre la salida a través de awk
o alguna otra herramienta capaz de filtrar la columna de marca de tiempo.
Además, puede encontrar más información sobre cómo usar tcpdump
en http://danielmiessler.com/study/tcpdump/