vis*_*hal 6 windows timestamp udp
我想在windows中为UDP数据包实现SO_TIMESTAMP,这样我们就可以在内核队列中获取UDP数据包的到达时间。请告诉 Windows C++ 中的等效项以获取 SO_TIMESTAMP 等效项。
刚刚发现这个:
接收时间戳
您可以通过 SIO_TIMESTAMPING IOCTL 配置接收时间戳接收。使用该 IOCTL 启用接收时间戳接收。当您使用 LPFN_WSARECVMSG (WSARecvMsg) 函数接收数据报时,其时间戳(如果可用)包含在 SO_TIMESTAMP 控制消息中。
SO_TIMESTAMP (0x300A) 在 mstcpip.h 中定义。控制消息数据以 UINT64 形式返回。
请参阅Windows Developer:Winsock 时间戳和Windows Developer:数据包时间戳
Greyware Automation Products, Inc在其知识库文章“常见问题解答:域时间和 NDIS 软件时间戳”中解释了一些详细信息:
他们表示,从 Windows 10(版本 1803 或更高版本)和 Windows Server 2019 开始,微软在 TCP/IP 网络堆栈的 NDIS 层引入了对 UDP 数据包软件时间戳的内核级支持。
必须在适当的 NIC 上启用软件时间戳,例如通过以下 Powershell 脚本启用: https: //www.powershellgallery.com/packages/SoftwareTimestamping/1.0
IOCTL 和结构在 Windows 10 SDK 版本 2104 最低版本的 mstcpip.h 中定义!
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |