UDP 的报文结构

UDP的报文结构:

其中前面的源端口号和目的端口号,UDP长度和UDP检验和,它们都是2个字节。

那么什么是UDP长度呢,它指的是后面的数据的长度,换算单位也就是64kb,因此一个数据报(数据)最大也就64kb。因此传输的数据不能超过64kb

UDP校验和则是检验数据在传输过程中,是否出错(如数据发生改变,比特翻转等)。因此,接收方在收到数据后,就要确认一下,这个数据是否是一个错误的数据。而校验和就是一个简单有效的方法。实际的校验和会根据数据的内容生成,当内容发生改变,就能够感知到出错。那么UDP的检验和具体是怎么实现的呢?其实是使用了一种简单除暴的CRC校验算法(循环冗余校验和),把UDP数据报中的每个字节都依次累加,把累加的结果,都保存到2个字节的变量中,虽然在累加的过程中会溢出,但这并不重要,因为不需要准确的结果,当所有的字节都加了一遍后,最终就得到了校验和(与检验和一个意思),传输数据时,就会把原始数据和校验和一起传输过去,接收方收到数据,同时也收到发来的校验和,接收方再根据同样的方式在算一遍,得到新的校验和,如果旧的校验和与新的校验和相同,就可以视为数据传输过程中,是正确的,如果不同,则视为传输过程中数据出错了。所以数据相同,校验和一定相同,数据不相同,校验和一定不相同。不过校验和相同,数据不一定相同,如一个字节少了一个,另一个字节多了一个,不过这个概率小,但可以忽略不计,因此UDP校验和可以检验数据在传输过程中是否出错。

相关推荐
w_outlier19 分钟前
UDP_TCP
linux·c++·网络协议·udp·tcp
Mr.kanglong33 分钟前
【Linux】传输层协议UDP
linux·运维·udp
cui_win1 小时前
Linux性能优化-系列文章-汇总
linux·网络·安全·性能优化
秋说1 小时前
【网络协议】开放式最短路径优先协议OSPF详解(三)
网络协议·ospf
新知图书1 小时前
Linux C/C++编程-网络程序架构与套接字类型
网络·socket
网络安全(华哥)2 小时前
网络安全等级保护系统定级流程与示例
网络·安全·web安全
明达技术2 小时前
MR20强抗干扰一体式IO模块的革新力量
网络
ybq195133454313 小时前
javaEE-网络原理-1初识
网络
dazhong20123 小时前
Windows 环境配置 HTTPS 服务实战
windows·网络协议·https
大丈夫立于天地间4 小时前
OSPF - 邻居的建立过程
网络·网络协议·学习·信息与通信