捕获具有准确时间戳的网络数据包

时间:2012-06-02 18:42:42

标签: visual-c++ network-programming packet-capture hardware-interface transport-stream

我正在使用winpcap库捕获网络数据包(传输流)及其到达时间。但是我遇到了一些问题。无论何时我在我的机器上播放音频或从网络上复制大文件,我捕获的数据包的时序信息都会失真。有些数据包时间戳彼此非常接近,而其他数据包有点远.Is有任何解决方案(软件/硬件)来纠正这个问题。我需要准确的网络数据包时间戳。

1 个答案:

答案 0 :(得分:0)

您可以使用任务管理器将捕获应用程序的进程优先级提高到高。

但你真的需要考虑你想要实现的目标和原因。你想知道数据包何时到达NIC,当内核处理它时,当内核将它放入捕获程序的套接字缓冲区时,当捕获程序从缓冲区中读取它时,内核将其放入一些其他程序的套接字缓冲区,或者当其他程序从其套接字缓冲区中读取它时?

所有这些时间戳都不同,当系统负载不足时,差异必然会变大。来自捕获程序的定时信息很可能反映了捕获程序从其自己的套接字缓冲区中读取数据包的时间。增加捕获应用程序的进程优先级将使这种情况更加顺利,但它会使任何其他应用程序对数据包的处理不太可靠。