本地主机 UDP 协议丢失数据的可能原因?
Possible causes for lack of data loss over my localhost UDP protocol?
我刚刚实现了我的第一个 UDP server/client。服务器位于本地主机上。
我从客户端向服务器发送 64kb 的数据,服务器应该发回这些数据。然后,客户端检查 64kb 中有多少仍然完好无损,它们都是完整的。总是。
这种行为的可能原因是什么?我期待至少 - 一些 - 数据丢失。
客户代码:http://pastebin.com/5HLkfcqS
服务器代码:http://pastebin.com/YrhfJAGb
PS: 网络编程新手,请勿苛求。我找不到问题的答案。
您没有看到任何丢失的数据报的原因是您的网络堆栈根本 运行 没有遇到任何麻烦。
您的本地主机连接可以轻松应对您提供的内容,本地主机连接能够在体面的 CPU.
上每秒处理数百兆字节的数据
要查看丢失的数据报,您应该增加干扰的可能性。你有几个机会:
- 增加网络负载
- 忙于 cpu 其他任务
- 使用 "real" 网络并在真实机器之间传输数据
- 运行 通过 dsl 线路的代码
- 设置虚拟机并模拟网络中断(Vmware Workstation 可以做到)
这可能是一篇有趣的读物:What would cause UDP packets to be dropped when being sent to localhost?
我刚刚实现了我的第一个 UDP server/client。服务器位于本地主机上。 我从客户端向服务器发送 64kb 的数据,服务器应该发回这些数据。然后,客户端检查 64kb 中有多少仍然完好无损,它们都是完整的。总是。 这种行为的可能原因是什么?我期待至少 - 一些 - 数据丢失。
客户代码:http://pastebin.com/5HLkfcqS 服务器代码:http://pastebin.com/YrhfJAGb
PS: 网络编程新手,请勿苛求。我找不到问题的答案。
您没有看到任何丢失的数据报的原因是您的网络堆栈根本 运行 没有遇到任何麻烦。 您的本地主机连接可以轻松应对您提供的内容,本地主机连接能够在体面的 CPU.
上每秒处理数百兆字节的数据要查看丢失的数据报,您应该增加干扰的可能性。你有几个机会:
- 增加网络负载
- 忙于 cpu 其他任务
- 使用 "real" 网络并在真实机器之间传输数据
- 运行 通过 dsl 线路的代码
- 设置虚拟机并模拟网络中断(Vmware Workstation 可以做到)
这可能是一篇有趣的读物:What would cause UDP packets to be dropped when being sent to localhost?