我在计算机(C#)和微控制器(C++)之间发送/接收非常短的UDP数据包。与速度无关,我的UDP数据包大约损失了50%,有时甚至更多,有时甚至更少。50%udp数据包丢失
在c#中我使用UDPClient发送到IPEndPoint(同步)并异步接收。
我的缓冲区足够大,我看到损失是在计算机中发送和接收(微发送尽可能多的数据包)。我试图每秒发送/接收大约60个数据包,但是我可以调整,甚至每秒丢失10个数据包。例如,我每秒发送20个数据包,微型接收和发送15个数据,而我的计算机每秒接收10个数据包。
我们正在谈论1千兆位,非常短(可能是10英尺)的本地有线以太网连接。我正在发送单播数据包,但在网络中我也有一个多播视频(12 Mbps)。最大的数据包大约为120个字节,其中大部分大约为30-40个字节
有关如何调试问题或可能导致问题的任何建议?
谢谢。
感谢您的回答。刚刚编辑添加额外信息的问题。 – chourizo
@chourizo我遇到了多播/ udp广播数据包的问题,我也遇到了+ 60%的损失,我将回报任何可能有用的有关此问题的帮助/信息。与此同时,我将发送重复数据包,即发送每个数据包2次,首先是“丢失” – KGCybeX
我希望我错了,但恐怕增加数据包的数量只会使事情变得更糟。我的部分问题是由于有两个网络接口的优先级不正确。请确保不是这种情况(禁用其中一个)。另外,为了减少开销,尝试使用更少数据的数据包。通过这样做我解决了我的问题。 – chourizo