UDP优于TCP的优势?

Posted

技术标签:

【中文标题】UDP优于TCP的优势?【英文标题】:Advantages of UDP over TCP? 【发布时间】:2013-09-11 22:19:06 【问题描述】:

TCP 具有更大的计算开销以确保数据包的可靠传递。但是,由于现代网络速度很快,是否存在 UDP 的性能超过 TCP 的可靠性的情况?

UDP 与 TCP 相比还有什么其他特别的优势吗?

【问题讨论】:

When is it appropriate to use UDP instead of TCP? 的可能重复项 【参考方案1】:

我可以看到两种情况,其中 UDP 会比 TCP 占上风。

首先,UDP 的一个吸引人的特性是,由于它不需要重新传输丢失的数据包,也不需要进行任何连接设置,因此发送数据会产生更少的延迟。这种较低的延迟使 UDP 成为对延迟敏感的应用程序(如音频和视频)的有吸引力的选择。

其次,多播应用程序是建立在 UDP 之上的,因为它们必须做点对多点。将 TCP 用于多播应用程序会很困难,因为现在发送方必须跟踪多个接收方的重传/发送速率。

【讨论】:

【参考方案2】:

这取决于您的使用情况。如果您的应用程序对时间敏感,例如 IP 语音,那么您不必担心丢失数据包。你关心的是这种情况下的延迟。

你应该看看这个答案:What are examples of TCP and UDP in real life?

您也可以查看***相关部分:http://en.wikipedia.org/wiki/User_Datagram_Protocol#Comparison_of_UDP_and_TCP

【讨论】:

【参考方案3】:

需要恒定数据流、批量数据以及需要速度而不是可靠性的应用程序使用 UDP over TCP。

【讨论】:

【参考方案4】:

udp 对发送的数据提供了更好的应用程序级别控制......因为数据被打包在一个 udp 段中并立即传递到网络层......因此可以观察到简洁的段交付服务.

不需要建立连接,因此没有延迟(不像 tcp...在实际数据传输之前需要握手)

不需要在终端系统中维护连接状态(即不需要发送和接收缓冲区、拥塞控制参数以及序列和确认号参数)..因此可以支持更多的活动客户端

udp 的小包头开销(只有 8 个字节),其中 tcp 有 20 个字节的头

【讨论】:

【参考方案5】:

Facebook 使用 UDP 连接而不是 TCP/IP 连接到他们的 Memcached 服务器

【讨论】:

以上是关于UDP优于TCP的优势?的主要内容,如果未能解决你的问题,请参考以下文章

为什么 UDP 有时比 TCP 更有优势

为什么说UDP有时比TCP更有优势

使用 UTF-8 优于 UTF-16 有啥优势? [复制]

线程优于可运行的优势[重复]

Qt资源系统中前缀优于文件系统路径的优势是啥?

使用 URLField 优于 TextField 的优势?