如果出现一个数据包丢失,所有事情都需要停下来等待这个数据包重发。客户端会出现等待接收数据,然而玩家并不关心过期的数据,相信大家玩CF 的时候,如果激战中卡 1 秒,是不是就有拍键盘的冲动?
游戏对实时要求较为严格的情况下,采用自定义的 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性能造成的影响。
“城会玩” 四:IoT物联网一方面,物联网领域终端资源少,很可能只是内存非常小的嵌入式系统,而维护 TCP 协议代价太大。另一方面,物联网对实时性要求也很高。Google 旗下的 Nest 建立 Thread Group,推出了物联网通信协议 Thread,就是基于 UDP 协议的。
“城会玩” 五:移动通信领域在 4G 网络里,移动流量上网的数据协议 GTP-U 也是基于 UDP 的。因为移动网络协议比较复杂,而 GTP 协议本身就包含复杂的手机上线下线的通信协议。
总结如果把 TCP 比作成熟的社会人,那么 UDP 就是头脑简单的小朋友。TCP 复杂,UDP 简单;TCP 维护连接,UDP 谁都相信;TCP 会知进退,UDP 愣头青一个,勇往直前;
UDP 虽然简单,但是它可以用在环境简单、需要多播、应用层自己控制传输的地方。例如 DHCP、QUIC 等。
参考:
百度百科-UDP 词条;
刘超-趣谈网络协议系列课;