时间差以微秒为单位

时间:2014-05-07 07:58:27

标签: c wireshark pcap libpcap epoch

我对EPOCH时间有疑问。

我需要计算两个数据包之间的时差。我不太确定如何:

printf("Epoch Time: %d:%d seconds\n", header->ts.tv_sec, header->ts.tv_usec);

the first packet shows: 1396191661:164162

the second packet shows:  1396191661:164193

我需要变量u_int diff_time将包含两个数据包之间的时间差 - 以微秒为单位。 正如您所看到的,不同之处在于packet_1和packet_2-仅在微秒部分。

如果差异不仅在tv.u_sec中,我该如何计算?

先谢谢。

2 个答案:

答案 0 :(得分:0)

假设您有两次t1.sect1.usect2.sect2.usec,其中t1> t2,那么我想你可以通过(t1.sec - t2.sec) * 1000000 + (t1.usec - t2.usec)来计算差异。

答案 1 :(得分:0)

只需添加秒之间的差异:

udiff = (second.tv_sec - first.tv_sec) * 1000000 + (second.tv_usec - first.tv_usec)

您只需要检查两个数据包之间的差异是否小于〜2000秒,以保持32位int的大小。