UDP为什么不可靠

本文详细介绍了UDP(用户数据报协议)的主要特点与应用场景。包括其无连接特性、尽最大努力交付而不保证可靠性的服务方式,以及如何不受网络拥堵的影响来保持数据的实时性。此外还提到了UDP支持多种通信模式,并具有较小的首部开销。
摘要由CSDN通过智能技术生成

   UDP:用户数据包协议。提供无连接、尽最大努力的数据传输服务(不保证数据传输的可靠性),既然不保证那肯定谈不上可靠一说。

           • 无连接:不需要建立连接,也不需要释放连接,减少了开销和发送数据的时延。

           • 尽最大努力的数据传输服务:不保证数据传输的可靠性,没有超时和重传功能。

           • 面向报文:发送方对应用程序交下来的服务,添加首部后就向下交付给IP层,不合并,也不拆分,保留文本的边界。UDP一次性交付一个完整的报文,因此应用程序一定要选择合适大小的报文,报文太长IP层需要进行分片,太短会导致IP数据包的相对长度过大,效率过低。接收方,去除首部后就交给应用程序。

           • 不受网络拥堵影响:网络出现的拥塞不会使源主机的发送速率降低。对实时应用非常重要。例如:IP电话、实时视频会议、允许丢失数据但不允许有太大时延(即这些应用可以卡一下,但是要保证其实时性),可能会导致丢包现象发生,可靠性低。

           • 支持一对一、一对多、多对一、多对多的操作。(稍后会出专门博客讲解,代码已经实现最后测试一下就好)

           • 首部开销小:只有8个字节,TCP首部需要20个字节。

           • 发生丢包:UDP不会补发,但是会自动检测是否丢(包)失某些内容,如果有错误就会直接丢包,返回发送失败。

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)都是传输层的协议,它们的主要区别在于可靠性、流量控制和拥塞控制。 1. 可靠性:TCP是一个可靠的协议,它通过三次握手建立连接,并在整个通信过程中维护数据的有序性和完整性。如果数据包丢失或损坏,TCP会自动重传缺失的数据,保证数据到达目的地。而UDP是无连接的,不保证数据的顺序和完整性,一旦数据包发送出去,就不再关心其是否到达或出错。 2. 流量控制和拥塞控制:TCP提供了流量控制机制,即接收端告诉发送端可以接收多少数据,防止发送方过快导致接收方无法处理。同时还有拥塞控制,当网络拥堵时,TCP会减慢发送速率。UDP则没有这些机制,数据发送的速度取决于应用程序,可能会造成网络拥塞。 3. 速度和开销:由于这些额外的确认、重传和控制信息,TCP通常比UDP更慢,但提供更强的可靠性。UDP的头部较小,适合对延迟敏感的应用,如实时音视频流和在线游戏。 UDP之所以不可靠是因为它牺牲了可靠性来换取更高的效率和更快的数据传输速度,适用于那些对数据包的完整性和顺序要求不高,但需要快速响应的情况,例如DNS查询、网络游戏和一些实时应用。然而,这种不可靠性也意味着如果数据包丢失,可能需要应用层自行处理错误检测和恢复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红目香薰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值