说明
- UDP 是不可靠协议,使用UDP编程时需要注意一些问题。
丢包
- UDP丢包可能性有两种:
- 传输过程中
- 接收设备缓存不足
传输过程丢包
- 传输过程丢包一般出现在广域网的情况下,由于路由路径,网线和路由器等处理硬件,以及网络情况等各种原因都有可能导致丢包;局域网内一般不容易出现(特殊原因:网络情况差有大量数据要发送,路由器和网线硬件问题)。
- 局域网内使用网线传输一般不会出现丢包,wifi等弱网环境还是有可能丢包的。
- 传输过程中丢包,软件几乎无法做什么,只能通过其它手段改善。
接收设备缓存
- UDP数据包正常传输到接收设备,也有可能出现由于缓存不足导致丢包。
- 在发送大量数据情况下,由于服务器和客户端的处理速率的差别,可能导致客户端处理不及时,缓存不断减少,当缓存大小为0,数据包就直接丢了,这种情况可以在服务器做适当延时来确认。
乱序
- 乱序一般出现在广域网的情况下,主要是由于路由路径的不同导致数据包到达的顺序不同;局域网一般不会出现。