TCP具有更大的计算开销,以确保可靠的数据包传输。但是,由于现代网络速度很快,是否有任何情况下UDP的性能超过TCP的可靠性?
UDP over TCP还有其他特殊优势吗?
答案 0 :(得分:8)
我可以看到两种情况,其中UDP会优先于TCP。
首先,UDP的一个吸引人的特性是,由于它不需要重新传输丢失的数据包,也不进行任何连接设置,因此发送数据会产生较少的延迟。这种较低的延迟使UDP成为音频和视频等延迟敏感应用的理想选择。
其次,多播应用程序构建在UDP之上,因为它们必须指向多点。使用TCP进行多播应用程序将很困难,因为现在发送方必须跟踪多个接收方的重传/发送速率。
答案 1 :(得分:3)
这取决于您的使用情况。如果您的应用程序对时间敏感,例如IP语音,那么您不关心丢失数据包。你关心的是那种情况下的延迟。
您应该看一下这个答案:What are examples of TCP and UDP in real life?
您还可以查看维基百科相关部分:http://en.wikipedia.org/wiki/User_Datagram_Protocol#Comparison_of_UDP_and_TCP
答案 2 :(得分:2)
需要持续数据流,批量数据且需要快于可靠性的应用程序使用UDP over TCP。
答案 3 :(得分:2)
udp为发送的数据提供了更好的应用程序级别控制....因为数据打包在udp段中并立即传递到网络层......因此,观察到了无褶边的段传送服务
不需要建立连接,因此没有延迟(与tcp ...不同,它需要在实际数据传输之前进行握手)
无需在终端系统中维护连接状态(即不需要发送和接收缓冲区,拥塞控制参数以及序列和确认号参数)。因此可以支持更多活动客户端
udp的小数据包头开销(仅8个字节),其中tcp具有20个字节的头
答案 4 :(得分:0)
Facebook使用UDP连接而不是TCP / IP连接到他们的Memcached服务器