我目前正在为我公司正在开发的设备(无线电编码器)开发单元测试。
可以通过 SNMP(仅限 v1)访问各种统计信息,其中您可以获取由于各种原因丢弃的 UDP 数据报的数量等。
我希望能够发送一个包含在错误 UDP 标头中的数据包,其中包含各种错误(校验和错误、标头中的错误 IP 地址等),以确保错误计数器正常运行。
我无法找到有关如何完成此操作的任何信息,我能够找到的大多数高级网络功能(显然)正确且自动地计算校验和。
我目前正在为我公司正在开发的设备(无线电编码器)开发单元测试。
可以通过 SNMP(仅限 v1)访问各种统计信息,其中您可以获取由于各种原因丢弃的 UDP 数据报的数量等。
我希望能够发送一个包含在错误 UDP 标头中的数据包,其中包含各种错误(校验和错误、标头中的错误 IP 地址等),以确保错误计数器正常运行。
我无法找到有关如何完成此操作的任何信息,我能够找到的大多数高级网络功能(显然)正确且自动地计算校验和。
你必须求助于原始套接字:
http://www.winsocketdotnetworkprogramming.com/clientserversocketnetworkcommunication8f_3.html 和 http://www.winsocketdotnetworkprogramming.com/clientserversocketnetworkcommunication8h.html
请注意限制: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms740548 (v=vs.85).aspx
在 Windows 7、Windows Vista、带有 Service Pack 2 (SP2) 的 Windows XP 和带有 Service Pack 3 (SP3) 的 Windows XP 上,通过原始套接字发送流量的能力受到以下几种方式的限制:
TCP 数据不能通过原始套接字发送。无法通过原始套接字发送具有无效源地址的 UDP 数据报。任何传出 UDP 数据报的 IP 源地址必须存在于网络接口上,否则数据报将被丢弃。进行此更改是为了限制恶意代码创建分布式拒绝服务攻击的能力,并限制发送欺骗数据包(具有伪造源 IP 地址的 TCP/IP 数据包)的能力。不允许使用 IPPROTO_TCP 协议的原始套接字调用绑定函数。注意 其他协议(例如 IPPROTO_IP、IPPROTO_UDP 或 IPPROTO_SCTP)允许使用原始套接字的绑定函数