当前位置: 首页 > news >正文

传输层:UDP协议

1.UDP协议特点

2.UDP报文格式

如下:

校验和的计算:

3.例子

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,其报文格式简单高效,适用于对实时性要求高但允许少量丢包的应用(如视频流、DNS查询等)。以下是UDP报文的详细格式说明:


​UDP报文格式​
UDP报文由头部(Header)和数据部分(Data)组成,头部固定为8字节,结构如下:

 0      7 8     15 16    23 24    31
+--------+--------+--------+--------+
|   源端口号(Source Port)       |  
+--------+--------+--------+--------+
|   目的端口号(Destination Port)  |  
+--------+--------+--------+--------+
|   报文长度(Length)             |  
+--------+--------+--------+--------+
|   校验和(Checksum)             |  
+--------+--------+--------+--------+
|         数据(Data,可变长度)     |  
+-----------------------------------+

​字段详解​

  1. 源端口号(Source Port)
    • 16位,取值范围:0~65535。

    • 发送方的端口号,可选字段(若无需回复可设为0)。

  2. 目的端口号(Destination Port)
    • 16位,取值范围:0~65535。

    • 接收方的端口号,用于标识目标应用程序(如DNS服务默认端口53)。

  3. 报文长度(Length)
    • 16位,表示整个UDP报文的字节数(包括头部和数据)。

    • 最小值为8(仅头部),最大理论值为65535,但实际受MTU限制(如以太网MTU通常为1500字节)。

  4. 校验和(Checksum)
    • 16位,用于检测报文在传输中的错误(可选,IPv4中可置0,IPv6中必须启用)。

    • 计算范围:伪头部(Pseudo-Header) + UDP头部 + 数据(若数据长度为奇数,补0对齐)。

  5. 数据部分(Data)
    • 可变长度,承载上层应用数据(如DNS查询、音视频流等)。


​伪头部(Pseudo-Header)​
校验和计算时临时添加的12字节结构,用于确保数据正确到达目标主机(不实际传输):

 0      7 8     15 16    23 24    31
+--------+--------+--------+--------+
|           源IP地址(32位)         |
+--------+--------+--------+--------+
|           目的IP地址(32位)       |
+--------+--------+--------+--------+
|  零填充 | 协议号(17)| UDP长度    |
+--------+--------+--------+--------+

• 协议号(Protocol):固定为17(表示UDP)。


​特点与注意事项​

  1. 无连接:无需建立/释放连接,直接发送数据。
  2. 不可靠:不保证顺序、不重传丢失报文。
  3. 轻量级:头部开销小(仅8字节),适合低延迟场景。
  4. 应用场景:DNS、DHCP、SNMP、QUIC(HTTP/3)、实时音视频等。

​示例报文(十六进制)​
假设发送一个UDP报文:
• 源端口:1234 → 0x04D2

• 目的端口:53 → 0x0035

• 数据:"test"(4字节)

• 长度:8(头) + 4(数据) = 12 → 0x000C

• 校验和:0x0000(禁用)

报文内容:

04 D2 00 35 00 0C 00 00 74 65 73 74

 

相关文章:

  • 迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记
  • 仿正点原子驱动BMP280气压传感器实例
  • 深度学习 自然语言处理(RNN) day_02
  • JavaWeb 前端开发
  • 极限学习机进行电厂相关数据预测
  • Tomcat与纯 Java Socket 实现远程通信的区别
  • SD-HOST Controller design-----SD CLK 设计
  • python中的单例与实例
  • 紫光同创FPGA实现AD7606数据采集转UDP网络传输,提供PDS工程源码和技术支持和QT上位机
  • 基于C#+SQL Server开发(WinForm)租房管理系统
  • (2)python开发经验
  • 【React中函数组件和类组件区别】
  • 无需翻墙!3D 优质前端模板分享
  • el-select 结合 el-tree:树形下拉数据
  • AI 检测原创论文:技术迷思与教育本质的悖论思考
  • 部署安装git-2.49.0.tar.xz
  • Profibus DP主站转Modbus RTU/TCP如何把E+H流量计接入到modbus
  • BGP联邦实验
  • 【deekseek】TCP Offload Engine
  • Ozon平台产品关键词优化指南:精准引流与转化提升实战策略
  • 反犹、资金与抗议:特朗普的施压如何撕裂美国大学?|907编辑部
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能
  • 为惩戒“工贼”,美国编剧工会“痛下杀手”
  • 广东省人大教科文卫委原主任委员梁万里被开除党籍:退休后受贿仍不知止
  • 7月打卡乐高乐园,还可以去千年古镇枫泾参加这个漫画艺术季
  • 宣布停火后,印控克什米尔地区再次传出爆炸声