为什么 QQ 采用 UDP 协议?

这是多年前的经典问题了,让我们一起怀怀旧。

  • 首先,需要指出的是 QQ 并不完全基于 UDP。当进行文件传输等活动时,QQ 使用 TCP 来提供可靠传输的保证。
  • 使用 UDP 进行交互通信的好处在于延迟较低,且对数据丢失的处理较为简单。相比之下,TCP 是全双工的协议,需要建立连接,因此会有更大的网络开销。
  • 在使用 QQ 语音和 QQ 视频时,UDP 的优势更加突出。首先,UDP 提供较低的延迟。最重要的是,UDP 是不可靠传输的,这意味着如果数据丢失,不会进行重传。对于用户来说,宁愿接受图像稍微模糊、声音稍微不清晰,也不愿意在几秒钟后才看到之前丢失的画面和声音,这是无法接受的。
  • 由于 QQ 的服务器设计容量是海量级应用,一台服务器需要同时容纳数十万的并发连接,因此服务器端只能使用 UDP 协议与客户端进行通信,以确保这种超大规模的服务。

简单总结一下:UDP 是一种无连接的协议,具有高效、快速、资源占用较少以及对服务器压力较小的特点。然而,UDP 的传输机制是不可靠的,需要依靠辅助算法来完成传输控制。QQ 主要采用 UDP 作为通信协议,并辅以 TCP 协议的使用。

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题, 计算机网络, 计算机网络面试题