请教大牛, Windows下有办法获取包的timestamps么?

时间:2023-02-06 02:28:09
发送有设置选项,但是接收端并不能获得包的时间戳.
难道必须另起一个RAW原始套接字去侦听吗?这会额外造成很大的资源负担,因为只能RCVALL.

请用过的大神指教一二,谢谢!

5 个解决方案

#1


什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。

#2


引用 1 楼 maguiwa 的回复:
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。


Socket TCP包, 想获取每个收到的包的时间戳. 包的数据部分没有办法添加时间信息,所以想用timestamps, 可是windows并不如linux那么*方便. 除非原始套接字.

#3


windows上没有开放那么多权限。底层的包需要网络层filter才能获取

#4


raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。

wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表 
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据 
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去

wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。

#5


引用 4 楼 smwhotjay 的回复:
raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。

wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表 
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据 
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去

wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。

多谢多谢! 我自己用RAW实现了过滤和抓包, 然后发包使用正常的socket发送,虽然结果和我要实现的目的相去甚远, 不过也从中学到了许多.
我本来想的是实现相对比较准确的RTT功能,结果发现获取包头的时间戳是个大坑阿.

#1


什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。

#2


引用 1 楼 maguiwa 的回复:
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。


Socket TCP包, 想获取每个收到的包的时间戳. 包的数据部分没有办法添加时间信息,所以想用timestamps, 可是windows并不如linux那么*方便. 除非原始套接字.

#3


windows上没有开放那么多权限。底层的包需要网络层filter才能获取

#4


raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。

wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表 
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据 
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去

wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。

#5


引用 4 楼 smwhotjay 的回复:
raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。

wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表 
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据 
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去

wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。

多谢多谢! 我自己用RAW实现了过滤和抓包, 然后发包使用正常的socket发送,虽然结果和我要实现的目的相去甚远, 不过也从中学到了许多.
我本来想的是实现相对比较准确的RTT功能,结果发现获取包头的时间戳是个大坑阿.