我在dsp开发板上用udp传输数据,向PC发送,然后再PC上用wireshark抓包,用程序测试时发现了奇怪的问题,测试程序发送5000包,每个包的大小为1K,不同速率下都测试了15次。当传输速率为260KB时,有一次丢包,丢了一包。当传输速率为260KB时,有一次丢包,丢了一包。当传输速率为2M时,反而没有丢包了,开发板和pc机之间是直连的,udp的发送缓冲区我设成了最大,按道理来说是不应该有丢包了,现在我想不出来下一步该怎么做了,大家有碰到这种情况的吗?PS:并且我用ping测试时,也发现了会有丢包。
------解决方案--------------------------------------------------------
UDP丢包是正常的,所以没必要纠结于概率的问题,不管这个软件产品的使用环境如何,需要可靠的数据,要么采用TCP,要么加一些Qos的功能到UDP里,或者使用些开源的可靠的UDP库。
至于具体的一些检错纠错机制,像crc,fec等。