【UDP的报文结构】

特点

  • 无连接:无需建联断联,发完即走,就像发消息一样,不需要建立连接,只需要消息发出和被收到
  • 不可靠传输:不提供任何传输层的可靠性保障机制,后面说到TCP的时候会提到什么是可靠什么是不可靠
  • 面向数据报:保边界,一次发送一次接收,整包交付,应用层交给UDP多长的报文,UDP都原样照发
  • 全双工:同一端口对可同时收发数据。半双工就像单向车道一样,只能单车通行,不能双车对向行驶。全双工就是双向车道

结构

  • UDP数据报 = 报头 + 载荷(应用层数据包)
  • 报头和载荷之间可以想象成字符串拼接的过程
  • UDP的载荷就负责承载数据包里的内容
  • UDP报头一共4个字段,一个字段2字节,一共8字节
  • 两个端口号都是2个字节来表示的,所以取值是0到65535
  • 数据报长度:使用两个字节来表示,用这一个数据来表示,一个UDP数据报有多长。
  • 由于是两个字节来表示的,所以这里能表示的最大值就是64KB(65535),因此一个UDP数据报最大长度就是64KB,无法更长了。
  • 一旦整个数据报的长度超出了64KB此时就可能会出现数据截断,导致原本数据是完整的,但是后面的部分表示不出来,没了

总的UDP数据报能表示的最大长度是64KB,载荷部分实际能够承担的最大长度应该是64KB - 8(自身的),64KB - 8 约等于 64KB,我们使用语言描述的时候就会采取近似值

  • 校验和:在网络传输的过程中,数据可能受到外界环境的干扰,发生比特反转,然后坏掉。网络中的校验和并非是简单的按照长度或者数量作为校验的标准,而是一定要让数据的内容能够参与进去。
  • UDP中,校验和,使用比较简单的方式-->CRC算法(循环冗余校验)来完成校验
  • 比如,要生产一个两个字节的校验和,这里我们写一段伪代码
short 复制代码
for(遍历取出数据报中的每个字节的数据){
      checksum += 当前字节的数据
 }
  • 在加的过程中,数据可能比较大,会超出short两个字节的范围,我们也不需要在意,因为最后都是一个固定的结果
  • UDP数据报发送方,在发送前,先计算一遍CRC,然后把算好的CRC值放到UDP数据报的校验和中,接下来数据包到达对端,对端接收数据之后,也会再计算一般CRC,然后对比两边计算出来的校验和是否一致,如果不一致,说明在传输的过程中损坏了
  • 严格来说,校验和只能用来证明真伪,如果数据出错了,是无法确保这个数据100%正确。但在实践中可以近似的认为校验和一致,原来的数据就一致
  • ⚠️如果有多个比特位发生了,校验和是有小概率出现,恰好还和之前算出的校验和一样的情况。这样的情况概率比较低,可以忽略不计,如果希望这里有更高的检查精度,就需要用到其他更为严格的校验和算法了

高精度校验和算法

  • md5算法是业界常用的校验和算法
  • md5的背后有一系列的数学公式,来进行计算,不同于CRC这么简单
  • 认识一下md5的特点
  • 1.定长:无论原始数据有多长,计算出来的md5的最终值都是固定长度
  • 2.分散:计算md5的过程中,原始数据,只需要变化一点点,算出的md5值就会有很大的差异,在网络传输中,如果出现了比特翻转,意味着只是极少的比特位翻转了,也会导致最终的md5差异很大
  • 3.不可逆:把数据计算成md5值的过程很简单,但是给你一个算好的md5值,让你还原回原始的字符串,理论上是无法完成的。从原始的字符串到md5这个过程,有很多的信息量损失了,就像是木头到纸的过程,你看着一张纸很难想象到它是由木头制作而来的。
  • 由于这些特性,md5也可以用于一些加密的场景,很多网站都会采取密码加密存储的方式,防止密码的明文泄露
相关推荐
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅2 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
gihigo19982 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
2501_946205522 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel2 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)2 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
~远在太平洋~2 天前
Debian系统如何删除多余的kernel
linux·网络·debian
unfeeling_2 天前
Keepalived实验
linux·服务器·网络
坐吃山猪2 天前
OpenClaw04_Gateway常见问题
网络·gateway·openclaw
上海云盾商务经理杨杨2 天前
2025年重大网络安全事件回顾与趋势分析
网络·安全·web安全