UDP报文格式

UDP是传输层的一个重要协议,他的特性有面向数据报、无连接、不可靠传输、全双工。

下面是UDP报文格式:

1,报头

UDP的报头长度位8个字节,包含源端口、目的端口、长度和校验和,其中每个属性均为两个字节。报头格式为二进制。

2.源端口、目的端口

源端口和目的端口是五元组中重要的两个性质,源端口即数据是从哪里来的,目的端口即数据要发送到哪去。

一般情况下,端口号都是两个字节,即16个bit位,可以表示0-65535的数字,通常使用1024-65535之间的数字作为端口号。

在编写代码时,服务器的端口号通常是程序员自定义的,但客户端的端口号是由操作系统自己生成的。

3.长度

UDP报文中的长度表示报头长度与载荷长度之和,单位是字节。长度属性的最大值也是两个字节,UDP报文长度最大值是64KB。由于报头长度8字节对于64KB是一个很小的数字,所以通常称UDP的载荷长度达到64KB上限。

4.校验和

HTTPS的加密原理中也提到了校验和,但这两个校验和的用途是不一样的。加密原理中的校验和是为了防黑客的,这里的校验和是为了防止比特翻转的。

由于数据在传输的过程中是以电信号或光信号等进行传输的,那么在传输过程中就容易受到外界的干扰,导致某个比特位从0翻转到1或从1翻转到0.

引入校验和后,在传输数据之前,会将UDP报文中的所有数据放到一个算法中进行计算,得到校验和1,将这个校验和放入报文中一并发送。接收方收到报文后,就会将原来参与计算的数据再通过同样的算法计算一遍,得到校验和2,并将校验和1与校验和2进行比较,如果二者相等,就说明没有发生比特翻转,发送过来的数据是有效的,如果不一样,就说明发生了比特翻转,这个数据是无效的,就会被丢弃。

注意:可能存在发生了比特翻转但校验和不变的情况,即前一位翻转导致校验和变小,后一位翻转导致校验和变大,而这效果一叠加,就可能会使得校验和不变。但实际上,数据在传输过程中发生比特翻转的概率是很小的,发生两次比特翻转并且翻转的结果正好抵消了的概率就更小了,通常可以忽略不计。

相关推荐
一只小白00010 分钟前
一篇讲清TCP的三次握手&四次挥手
服务器·网络·tcp/ip
tang7778918 分钟前
2026年国内代理IP服务商横向测评:企业级爬虫如何选型?
运维·服务器·网络·爬虫·python·代理
上海云盾-小余18 分钟前
网站木马植入原理与彻底清除、长效防御方案
网络·网络协议·tcp/ip·系统安全
Be reborn29 分钟前
用 Playwright 做自动化测试:如何验证网络请求并做断言
网络·python·自动化·pytest
VOOHU-沃虎42 分钟前
工业以太网接口的隐形门槛:网络变压器选型失当的故障分析与系统性验证
网络
广州灵眸科技有限公司1 小时前
瑞芯微(EASY EAI)RV1126B yolov11-track多目标跟踪部署教程
linux·开发语言·网络·人工智能·yolo·机器学习·目标跟踪
牵牛老人1 小时前
CAN通讯实战:Qt基于周立功 USBCAN 的 CAN 总线通信开发全攻略
网络·qt·系统架构
xiaoxiaoxiaolll1 小时前
《Nature Communications》论文解读:皮秒级单光子偏振测量如何绘制多模光纤中的模态动态图谱
网络·人工智能
Inhand陈工1 小时前
城投公司地面与停车场监控改造实战:映翰通IR302 + GRE隧道实现RFID与视频数据远程汇聚
网络·人工智能·物联网·网络安全·智能路由器·信息与通信
其实防守也摸鱼2 小时前
DVWA--Brute Force (暴力破解)通关指南
服务器·网络·安全·靶场·教程·工具·dvwa