UDP协议报文结构

UDP报文格式:

在这里插入图片描述
许多书上画成上面的方式,只是为了排版方便,读起来不是很方便.
在这里插入图片描述
UDP的封装如图:

  • 伪头部 : 只是为了提取 IP 数据报中的源IP,目的IP信息并加上协议等字段构造的数据。在实际传输中并不会发送,仅起到校验和计算使用,因此称之为伪首部。

  • 源端口号 : 一般是客户端程序请求时,由系统自动指定,端口号范围是 0 ~ 65535,0~ 1023为知名端口号。

  • 目的端口 : 一般是服务器的端口,一般是由编写程序的程序员自己指定,这样客户端才能根据ip地址和 port 成功访问服务器

  • UDP 长度 : 是指整个UDP数据报的长度 , 包括 报头 + 载荷,

  • UDP校验和 : 用于检查数据在传输中是否出错,是否出现bit反转的问题,当进行校验时,需要在UDP数据报之前增加临时的 伪首部。

UDP长度:

在这里插入图片描述

都知道UDP 数据传输的长度是受限制的,这是因为表示数据长度的数据只有 ”2字节“,能表示的数据范围是 0 ~ 2^16 = 0 ~ 65535 范围,是63.999KB,也就是约 64 KB的内容。

校验和:

在网络传输过程中,本质上是以 0 , 1 表示的,都是通过光信号或者电信号传输的,受环境、辐射等干扰,是会出现一些问题的,如果在传输过程中,收到一些干扰,就容易出现 bit反转的情况(0 --> 1 , 1 -->0),校验和就是为了验证,数据传输的前后,数据是否发生了改变。

但是检验和也不能 100% 保证数据一定是正确的,

  • 校验和正确,数据不一定是正确的,
  • 但是检验和如果不正确,数据一定是不正确的

校验和更多的用处不是“证实”,而是为了证伪,判断数据是不是错的

常用的校验和方式:

CRC循环冗余校验,

在发送数据前将校验和一同发送给目标,目标接收到数据,在以同样的方式进行 CRC校验,判断两个校验结果是否相同,由于CRC校验方式的特性,是由可能出现数据改变,但是校验和相同的情况的,如果校验和相同数据不一定正确,如果不相同,数据一定不正确

MD5校验:

本质上是 “非对称的哈希算法”,本身具有定长,分散,不可逆的特性,数据只要改变一点,校验和就会改变很多,数据不同,校验和相同的情况基本没有,微乎其微,这种验证方式是非常可靠的。

TCP和UDP是两种常用的传输层协议,它们的报文结构有一些不同之处。 TCP报文段的报文结构如下: - 前20个字节是固定的,包括源端口号、目的端口号、序列号、确认号、首部长度、6个控制位等字段。 - 后面根据需要而增加的部分,可以包括可选字段和数据。 UDP报文报文结构相对简单: - 8个字节的固定长度,包括源端口号、目的端口号、长度和校验和。 - 数据部分包含应用层传输的数据。 其中,TCP报文段的首部各字段起到了关键的作用。例如,校验和字段被用来检验报文段在传输过程中是否损坏,以保证可靠传输。而复位标志(RST)用于表示TCP连接中出现严重错误,需要释放并重新建立连接。同步标志(SYN)用于在建立连接时进行同步操作。 总结起来,TCP和UDP报文结构在某些细节上存在差异。TCP报文段的报文结构更为复杂,包括较多的控制位和可选字段。而UDP报文结构相对简单,只包含必要的字段和数据部分。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [理解 TCP(二):报文结构](https://blog.csdn.net/weixin_33919941/article/details/88004104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值