【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也可以用于一些加密的场景,很多网站都会采取密码加密存储的方式,防止密码的明文泄露
相关推荐
pengyi87101523 分钟前
共享 IP 池多人使用 分层权限与配额管理方案
运维·服务器·网络
S1998_1997111609•X29 分钟前
论next/js在打击省份及犯罪行为集团的系统分析[特殊字符]设计
网络·数据库·百度·ssh·开闭原则
不做无法实现的梦~1 小时前
PX4 机载电脑 Linux 环境安装、串口、网络、ROS 完整配置
linux·运维·网络
byoass1 小时前
企业云盘权限管理深度对比:巴别鸟、联想Filez、腾讯企微云盘
网络·安全·云计算·企业微信
Bytenerd_02 小时前
【中级软件设计师】传输层协议 —— TCP/UDP (附软考真题)
udp·tcp·传输层协议·中级软件设计师·软考真题
忡黑梨2 小时前
eNSP_路由策略
运维·服务器·网络·华为·智能路由器·负载均衡
_F_y3 小时前
仿RabbitMQ实现消息队列-服务端核心模块实现(2)
网络·rabbitmq
Chengbei113 小时前
面向红队的 AI 赋能全场景流量分析仪 网页 / APP / 终端 / IoT 全域 HTTPS 抓包解密利器
人工智能·物联网·网络协议·web安全·网络安全·https·系统安全
Hello_Embed3 小时前
【无标题】
网络·笔记·网络协议·tcp/ip·嵌入式
路溪非溪3 小时前
详解下DNS协议
网络·网络协议·tcp/ip·智能路由器