已复制
全屏展示
复制代码

计算机网络传输层 UDP 数据报总结

· 3 min read

一. UDP数据报格式

用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能。UDP的主要特点是:

  • UDP是无连接的
    即发送数据之前不需要建立连接,发送完也不需要释放连接,因此减少了开销和发送延时
  • UDP使用尽最大努力交付
    即不保证可靠交付,不需要维持复杂的连续状态表
  • UDP是面向报文的
    发送方的UDP对应的应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交给上层的应用程序。也就是说,UDP一次交付一个完成的报文,因此,应用程序必须选择合适大小的报文,若报文太长,UDP交给IP层以后,IP层在传送时可能要分片,这会降低IP层的效率。反之,若报文太短,UDP把它交给IP层后,会使数据报的首部的相对长度太大,这也降低了IP层的效率。
  • UDP没有用塞控制
    很多实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并允许在网络发生拥塞控制时丢失一些数据,但却不允许有太大的时延。
  • UDP支持一对一、一对多、多对一、多对多的交互通信。
  • UDP的首部开销小
    只有8字节,比TCP的20个字节的首部要短。
udp数据报

二. UDP首部

  • 源端口
    在需要对方回信时选用,不需要时可用全0
  • 目的端口
    终点交付时必须要使用到
  • 长度
    UDP数据报的总长度,最小值为8(只有首部)
  • 检验和
    检测UDP数据报在传输中是否有错,有错就丢掉

三. UDP伪首部

伪首部的作用

在UDP首部中检验和的计算方法有些特殊,在计算检验和时,要在UDP数据报之前加上12个字节的伪首部,所谓伪首部,是因为这种伪首部并不是UDP用户数据报正真的首部,只是在计算检验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报,检验和就是按照这个临时的UDP用户数据报来计算的,伪首部既不向下传送、也不向上递交,而是仅仅为了计算检验和。

检验和计算方法

UDP的检验和是把首部和数据部分一起都检验,加上伪首部以后,既检查了UDP用户数据报的源端口和目的端口以及UDP的数据部分,又检查了IP数据报的源IP地址和目的地址。

伪首部字段

  • 源IP地址
  • 目的IP地址
  • 全0
  • 17表示IP首部中的协议字段的值,对于UDP来说为17
  • UDP长度
🔗

文章推荐