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

12. UDP协议概述

二.UDP协议报文


一、UDP 报文整体结构

UDP报文分为两部分,整体结构非常清晰:

  1. 首部(固定8字节):包含寻址和校验信息,没有可变部分/选项字段
  2. 数据部分:应用层数据,长度可变(可以为0字节,即只有首部)。

和TCP报文相比,UDP首部没有任何复杂的控制字段(如seq/ack、标志位、窗口),是为了追求低延迟、低开销而设计的。


二、首部4个字段详解(按顺序)

每个字段都是16位(2字节),4个字段加起来正好是8字节:

字段名长度核心作用关键细节
源端口号16位发送方进程的端口标识可选字段:如果不需要对方回复,可以设为0;需要回复时,对方会用这个端口作为目的端口
目的端口号16位接收方进程的端口标识必须字段:用来把UDP报文交付给主机上对应的应用进程(比如DNS用53,TFTP用69)
UDP长度16位整个UDP报文的总长度(首部+数据)单位:字节;最小值为8(仅首部,无数据);最大值为65535字节;和IP首部的“总长度”区分:IP总长度是IP包的长度,UDP长度是UDP包的长度
UDP检验和16位校验UDP报文的完整性可选字段:部分实现支持不校验(设为0),但实际网络中通常会校验;计算时会包含IP层的伪首部,防止报文发错主机

三、UDP 与 TCP 的核心区别(结合你之前学的内容)

结合你之前学的TCP报文、三次握手/四次挥手,两者的差异一目了然:

特性UDPTCP
连接性无连接:不建立三次握手,直接发包面向连接:必须三次握手建立连接后再传输
可靠性不保证可靠:不重传、不排序、不确认可靠传输:通过seq/ack、重传、窗口机制保证数据按序不丢
数据模型面向报文:每个UDP包是一条完整消息,无粘包问题面向字节流:数据是连续字节流,存在粘包/拆包问题
首部开销固定8字节,极小可变20-60字节,控制字段多,开销大
适用场景实时性要求高、丢包不敏感的场景(如DNS、视频通话、游戏、直播)可靠性要求高的场景(如网页、文件传输、数据库)

四、补充:UDP 检验和的伪首部(关键细节)

UDP检验和计算时,会额外加上IP层的伪首部,包含:

  • 源IP地址
  • 目的IP地址
  • 协议号(UDP为17)
  • UDP长度

这样做的目的是:

  1. 防止UDP报文被错误转发到其他主机;
  2. 确保UDP报文的IP地址信息没有被篡改;
  3. 虽然UDP本身不可靠,但伪首部校验能减少错误交付的概率。

五、代码层面的UDP首部定义(和C语言结构体对应)

在网络编程中,UDP首部的结构体定义和图里的格式1:1对应:

structudphdr{uint16_tsource;// 源端口号uint16_tdest;// 目的端口号uint16_tlen;// UDP长度(首部+数据)uint16_tcheck;// UDP检验和};

结构体的每个成员正好对应图中的4个字段,总大小固定为8字节,和UDP首部的设计完全一致。


http://www.gsyq.cn/news/1509616.html

相关文章:

  • 中兴光猫工厂模式一键解锁:zteOnu工具深度解析与实战指南
  • 2026 吉安厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 菏泽市中级经济师工商管理/人力资源管理:适配人群、岗位匹配与备考全攻略 - 众智商学院课程中心
  • 【Seatable API实战】Python操作避坑指南:从零到一玩转表格数据
  • 人工涂覆导热硅脂总达不到要求,远甬早已解决这一痛点 - 速递信息
  • 2026深圳黄金回收正规机构测评:主流品牌深度解析,谁值得选? - 奢侈品回收测评
  • 2026东营卫生间漏水不用砸砖?微创补漏靠谱方案 - 苏易修缮
  • 跨越屏幕界限:Sunshine游戏串流服务器的全场景应用指南
  • 遗传算法工程实践:选择交叉变异参数调优与收敛性控制
  • 终极指南:3步解锁网易云NCM音乐,轻松转换MP3格式
  • openclaw数字员工解决方案哪家专业
  • 出生公证双认证,出国使用一步到位! - 慧办好
  • Sunshine游戏串流服务器:构建低延迟跨平台游戏共享生态的完整指南
  • Anthropic 官方 CLI「ant」:把整个 Claude API 搬进终端
  • 如何构建百度网盘直链解析工具:技术实现与架构设计
  • DBX数据库管理工具
  • 告别纯理想仿真:用CGH40010F模型在ADS里手把手搭建Doherty功放(附工程文件)
  • 在哪能找到口碑靠谱的家政清洁上门?|京东自营新客7折起 - 博客万
  • ROC曲线与AUC:二分类模型评估的核心诊断工具
  • 计算机Java毕设实战-基于springboot和vue的校园二手书交易系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 气候数据科学落地七道关:从茶山传感器到老年机决策
  • LLM在数字与生物流行病建模中的创新应用
  • 用Python和PuLP库实战线性规划:从对偶变量到‘影子价格’的经济学解读
  • SLAM 建图与定位 — 领域全景入门
  • 从IEEE-754到Verilog:手把手搞定实数($real)与整数($rtoi/$itor)的转换与存储
  • Python 高手编程系列三千四百零二:处理错误与速率限制
  • 告别电源噪声!用ME6211这颗高PSRR LDO,搞定你的蓝牙耳机/麦克风电路设计
  • Android Java点餐界面源码:带进度页和双样式弹窗的列表实现
  • MuleSoft+LLM企业级AI编排:构建可审计、可治理的智能服务总线
  • 【echo-agent系列文章】给 Agent 加一个可恢复的状态层