Quando il pacchetto arriva, la NIC genera un interrupt e il kernel prende il controllo. Voglio misurare l'ora in cui arriva un pacchetto di un particolare flusso TCP.
Come posso farlo in Linux? Questo è ciò che fanno strumenti come tcpdump.
Risposta accettata:
tcpdump
timestamp di tutti i pacchetti. Quindi dovresti essere in grado di usare tcpdump. Altrimenti potresti provare wireshark, che controlla anche il traffico di rete, ma con una GUI bella e potente. Se non hai bisogno di scrivere questo processo, direi che Wireshark è tuo amico in questa situazione.
Puoi dare un'occhiata a http://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/ per maggiori informazioni su come usare Wireshark.
Se sei più interessato a come misurarlo tu stesso, puoi controllare tcpdump
con strace
oppure, come suggerito, leggi la fonte. strace
ti fornirà un elenco di chiamate di sistema che puoi utilizzare nella tua applicazione. La soluzione più semplice, tuttavia, sarebbe eseguire tcpdump
, quindi filtra l'output tramite awk
o qualche altro strumento in grado di filtrare la colonna timestamp.
Inoltre, puoi trovare maggiori informazioni su come usare tcpdump
su http://danielmiessler.com/study/tcpdump/