难道必须另起一个RAW原始套接字去侦听吗?这会额外造成很大的资源负担,因为只能RCVALL.
请用过的大神指教一二,谢谢!
5 个解决方案
#1
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。
#2
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兼容的机器上。
wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去
wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。
#5
多谢多谢! 我自己用RAW实现了过滤和抓包, 然后发包使用正常的socket发送,虽然结果和我要实现的目的相去甚远, 不过也从中学到了许多.
我本来想的是实现相对比较准确的RTT功能,结果发现获取包头的时间戳是个大坑阿.
#1
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。
#2
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兼容的机器上。
wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有:
?获取网络适配器列表
?获取网络适配器的不同信息,比如网卡描述和地址的列表
?使用PC的一个网卡来捕获数据包
?向网络上发送数据
?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样
?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去
wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。
#5
多谢多谢! 我自己用RAW实现了过滤和抓包, 然后发包使用正常的socket发送,虽然结果和我要实现的目的相去甚远, 不过也从中学到了许多.
我本来想的是实现相对比较准确的RTT功能,结果发现获取包头的时间戳是个大坑阿.