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

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

请用过的大神指教一二,谢谢!
...全文
997 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lastcancer 2017-09-23
  • 打赏
  • 举报
回复
引用 4 楼 smwhotjay 的回复:
raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。 wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有: ?获取网络适配器列表 ?获取网络适配器的不同信息,比如网卡描述和地址的列表 ?使用PC的一个网卡来捕获数据包 ?向网络上发送数据 ?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样 ?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去 wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。
多谢多谢! 我自己用RAW实现了过滤和抓包, 然后发包使用正常的socket发送,虽然结果和我要实现的目的相去甚远, 不过也从中学到了许多. 我本来想的是实现相对比较准确的RTT功能,结果发现获取包头的时间戳是个大坑阿.
smwhotjay 2017-09-22
  • 打赏
  • 举报
回复
raw xp可以,linux不知道,win7 win8肯定不行了,但可以用winpcap 嗅探 , 发包貌似也行。 可以获得ip头 tcp头那些。 wpcap.dll是一个包含了公共WinPcap API的动态链接库,它输出了一组依赖于系统的函数,用来捕获和分析网络流量。这些函数的用途有: ?获取网络适配器列表 ?获取网络适配器的不同信息,比如网卡描述和地址的列表 ?使用PC的一个网卡来捕获数据包 ?向网络上发送数据 ?有效保存数据包到磁盘,并通过一个接口捕获数据包,就如同从网卡捕获数据一样 ?使用高级语言创建一个数据包过滤器,并把它们应用到数据捕获中去 wpcap.dll 与 libpcap 兼容,后者是Unix平台下知名的数据包捕获库。这个兼容性意味着你可以开发可移植的网络工具,这些工具既可以运行在Win32系列的操作系统,也可以运行在与Unix兼容的机器上。
oyljerry 2017-09-22
  • 打赏
  • 举报
回复
windows上没有开放那么多权限。底层的包需要网络层filter才能获取
酱油党 2017-09-21
  • 打赏
  • 举报
回复
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。
lastcancer 2017-09-21
  • 打赏
  • 举报
回复
引用 1 楼 maguiwa 的回复:
什么包?socket包?TCP /UDP?要是自定义的格式的话,你自己加一个时间字段就可以了。
Socket TCP包, 想获取每个收到的包的时间戳. 包的数据部分没有办法添加时间信息,所以想用timestamps, 可是windows并不如linux那么自由方便. 除非原始套接字.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧