Lorsque le paquet arrive, la carte réseau génère une interruption et le noyau prend alors le relais. Je souhaite mesurer l'heure à laquelle un paquet d'un flux TCP particulier arrive.
Comment puis-je faire cela sous Linux? C'est ce que font des outils comme tcpdump.
Réponse acceptée :
tcpdump
horodatage de tous les paquets. Vous devriez donc pouvoir utiliser tcpdump. Sinon, vous pouvez essayer wireshark, qui surveille également le trafic réseau, mais avec une interface graphique agréable et puissante. Si vous n'avez pas besoin de scripter ce processus, je dirais que Wireshark est votre ami dans cette situation.
Vous pouvez jeter un œil à http://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/ pour plus d'informations sur l'utilisation de Wireshark.
Si vous êtes plus intéressé par la façon de mesurer cela vous-même, vous pouvez soit inspecter tcpdump
avec strace
ou, comme suggéré, lisez la source. strace
vous donnera une liste d'appels système que vous pouvez utiliser dans votre propre application. La solution la plus simple serait cependant d'exécuter tcpdump
, puis filtrez la sortie via awk
ou un autre outil capable de filtrer la colonne d'horodatage.
Vous pouvez également trouver plus d'informations sur l'utilisation de tcpdump
sur http://danielmiessler.com/study/tcpdump/