UDP协议

UDP概述
UDP在IP的数据报服务之上增加了复用和分用以及差错检测的功能。

UDP优点:

  1. UDP无需建立连接,因此UDP不会引入建立连接的时延。
  2. 无连接状态。TCP需要在端系统中维护连接状态,此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数,而UDP不维护连接状态,也不跟踪这些参数,可以支持更多的客户机。
  3. 分组首部开销小。TCP有20B的首部开销,而UDP仅有8B的首部开销。
  4. 应用层能更好地控制要发送的数据和发送时间。UDP没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。
  5. UDP支持一对一、一对多、多对一和多对多的交互通信。

UDP常用于一次性传输较少数据的网络应用,如DNS、SNMP等,对于这些应用,若采用TCP,则将为连接创建、维护和拆除带来不小的开销。

UDP的首部格式
UDP数据报由UDP首部和用户数据两部分组成。
UDP首部有8B,由四个字段组成,每个字段2B。

  • 源端口:源端口号,需要在对方回信时使用,不需要时可用全0.
  • 目的端口:目的端口号,在终点交付报文时必须使用到。
  • 长度:UDP数据报的长度,包括首部和数据,最小值是8(仅包括首部)。
  • 校验和:检测UDP数据报在传输中是否有错,有错就丢弃。该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0.

UDP数据报格式如下:
在这里插入图片描述
UDP校验
在计算校验和时,要在UDP数据报之前增加12B的伪首部。伪首部既不向下传送又不向上提交,只是为了计算校验和。

UDP数据报的首部和伪首部如下所示。其中17指的是封装UDP报文的IP数据报首部协议字段是1。UDP长度为8B加上数据部分长度。
在这里插入图片描述
计算UDP校验和的例子如下:
在这里插入图片描述

在发送端:

  1. 填上伪首部
  2. 全0填充校验和字段
  3. 全0填充数据部分(因为UDP数据报要看成许多4B的字串接起来)
  4. 伪首部+首部+数据部分采用二进制反码求和
  5. 把求和反码填入校验和字段
  6. 去掉伪首部,发送

在接收端:

  1. 填上伪首部
  2. 伪首部+首部+数据部分采用二进制反码求和
  3. 结果全为1则无错,否则丢弃数据报或交给应用层附上出错警告
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值