C#18 12.9

1. 无连接协议

UDP 是一种无连接的协议,这意味着在数据传输之前,发送方和接收方之间不需要建立连接。这种特性使得 UDP 能够快速启动数据传输,减少了延迟。

2. 面向数据报

UDP 将应用程序的数据封装成一个个独立的数据报(Datagram),每个数据报都包含完整的源地址、目的地址、长度和校验和等信息。数据报之间没有关联,每个数据报独立传输,互不干扰。

3. 不可靠传输

UDP 不提供可靠性保证,即不保证数据报能够按顺序到达、不丢失、不重复、不损坏。如果数据报在传输过程中丢失或损坏,UDP 本身不会进行重传或纠正。这种不可靠性使得 UDP 的开销较小,适用于对实时性要求高而对数据完整性要求不高的应用。

4. 校验和

尽管 UDP 不提供可靠性保证,但它为每个数据报提供了一个可选的校验和字段。发送方在发送数据报之前,可以计算数据报的校验和并将其附加在数据报末尾。接收方在收到数据报后,可以重新计算校验和并与发送方的校验和进行比较,以检测数据报是否在传输过程中被损坏。

5. 头部开销小

UDP 的头部开销非常小,只有 8 个字节(包括源端口号、目的端口号、长度和校验和)。这使得 UDP 在传输大量数据时具有较高的效率。

6. 支持多播和广播

UDP 支持多播(Multicast)和广播(Broadcast)功能。多播允许一个数据报同时发送给多个接收方,而广播则允许一个数据报发送给网络中的所有接收方。这些功能使得 UDP 在某些应用场景(如视频会议、实时游戏等)中具有独特的优势。

7. 应用场景

由于 UDP 的上述特性,它通常用于那些对实时性要求较高而可靠性要求相对较低的应用场景,如实时视频传输、在线游戏、DNS 查询等。在这些场景中,即使数据报偶尔丢失或损坏,也不会对整体性能产生太大影响。

综上所述,UDP 是一种简单、高效、面向数据报的传输层协议,它适用于那些对实时性要求较高而可靠性要求相对较低的应用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值