UDP 是哪一层协议?为什么它不是网络层协议

简介: UDP是传输层协议,位于OSI第四层和TCP/IP模型的传输层。它通过端口号实现进程间通信,与IP(网络层)协同工作:IP寻址主机,UDP定位应用。首部仅8字节,无连接、不可靠,但低延迟、高效率,适用于实时音视频、游戏等场景。

UDP 是传输层协议。

在 OSI 七层网络模型中,UDP 位于第四层;在 TCP/IP 模型中,它同样位于传输层。TCP 也在这一层,两者负责的都是应用进程之间的数据传输。

有人看到 UDP 可以直接发包,不需要提前建立连接,就把它归到网络层。这个判断混淆了“工作方式”和“协议职责”。无连接是 UDP 的传输方式,不代表它负责网络寻址和路由。

先区分 IP 地址和端口号

理解 UDP 所在层级,关键是分清 IP 地址与端口号各自解决什么问题。

IP 协议通过 IP 地址定位目标设备,主要负责主机之间的寻址与路由,属于网络层。

UDP 通过端口号定位设备中的具体应用程序,负责进程之间的数据交付,属于传输层。

例如,一条数据发往某台服务器时:

  • IP 地址负责找到服务器;
  • 目标端口负责找到服务器上的具体服务;
  • UDP 负责承载应用数据并提供端口信息。

数据进入网络时,会经过下面几步:

应用数据 → UDP 首部 → IP 首部 → 数据链路层帧

从封装关系也能看出,UDP 位于应用数据与 IP 协议之间。

UDP 为什么叫用户数据报协议

UDP 的全称是 User Datagram Protocol,也就是用户数据报协议。

“数据报”意味着 UDP 面向一条条独立消息。应用程序发送一次数据,UDP 就把这段数据视为一个完整数据报。接收端同样按数据报接收,消息边界会被保留。

这和 TCP 不同。TCP 面向字节流,应用程序连续发送的数据进入 TCP 后,会被视为一串连续字节。接收端一次读到多少字节,不一定与发送端每次写入的数据长度一致。

因此,使用 UDP 时,应用程序更容易区分每条消息;使用 TCP 时,应用层往往需要自行设计消息长度或分隔规则。

UDP 首部为什么只有 8 字节

UDP 首部固定为 8 字节,包含四个字段:

  • 源端口;
  • 目标端口;
  • 长度;
  • 校验和。

UDP 不维护连接状态,也没有序号、确认号和窗口等字段,所以首部比 TCP 简单。

简单带来的结果是固定开销较小,但协议本身不提供以下保证:

  • 数据一定送达;
  • 数据只到达一次;
  • 数据按照发送顺序到达;
  • 网络拥塞时自动降低发送速度;
  • 接收方来不及处理时自动协调发送速度。

这也是 UDP 被称为“不可靠传输协议”的原因。这里的“不可靠”是一个技术定义,不等于 UDP 不能用于重要业务。

如果应用层自行增加确认、重传、排序和拥塞控制,仍然可以在 UDP 之上实现可靠传输。

TCP 比 UDP 多做了什么

TCP 是面向连接的可靠传输协议。

正式传输数据前,TCP 通常需要建立连接。传输过程中,它会使用序号与确认机制判断数据是否到达;发现数据丢失时,可以进行重传;收到乱序数据后,会按照序号重新整理。

功能 UDP TCP
建立连接 不需要 需要
确认数据送达 不提供 提供
丢包重传 不提供 提供
数据排序 不提供 提供
流量控制 不提供 提供
拥塞控制 不提供 提供
消息边界 保留 不保留
首部大小 8 字节 最少 20 字节

两者的差别不只是速度。TCP 替应用程序处理了大量可靠性问题,UDP 则让应用程序自己决定哪些问题需要处理。

UDP 为什么适合实时场景

直播、语音和在线游戏中的部分数据具有很强的时效性。

例如,一个表示游戏角色位置的数据包晚了两秒才到。即使它完整无误,也可能已经没有使用价值,因为角色早已移动到新位置。

对于这类数据,等待重传未必是好事。应用程序更可能选择跳过旧数据,直接处理最新状态。

UDP 不会因为前面的数据没有到达,就强制后面的数据等待,因此适合对实时性敏感的场景。但应用层仍然需要处理网络波动,不能认为换成 UDP 就能自动解决延迟问题。

实际性能还取决于:

  • 网络是否拥塞;
  • 路由是否稳定;
  • 单个数据报是否过大;
  • 应用是否控制发送速率;
  • 是否实现必要的丢包恢复。

DNS 为什么经常使用 UDP

普通 DNS 查询的数据量通常较小,而且一次查询只需要一问一答。使用 UDP 可以直接发送请求,减少单次查询的连接开销。

但“DNS 使用 UDP”不是绝对规则。当响应被截断、数据量较大或者进行区域传送时,DNS 也可能使用 TCP。

现在还有不同的加密 DNS 方案,例如 DoH、DoT 和 DoQ,它们的底层传输方式也不完全相同。因此,不能把某个应用层协议永远固定到 TCP 或 UDP 中。

UDP 和 TCP 的选择标准

可以用两个问题来判断:

第一,数据丢失或乱序是否可以接受?

第二,业务是否愿意在应用层自行处理可靠性?

文件下载、邮件传输和数据库连接要求数据完整,通常更适合 TCP。实时语音、视频和游戏状态同步更看重时效性,可以考虑 UDP。

如果业务既需要低延迟,又需要可靠传输,也不一定只能选择 TCP。QUIC 就构建在 UDP 之上,并在应用协议中实现了可靠传输、拥塞控制和加密。

所以,UDP 属于传输层而不是网络层。它与 TCP 的根本区别,在于 UDP 只提供较基础的数据报传输能力,TCP 则在传输层加入了连接管理与可靠性机制。

相关文章
|
2月前
|
缓存 开发工具 数据安全/隐私保护
Windows PowerShell 设置 HTTP 代理:系统级配置完整教程
Windows代理无“总开关”!浏览器、PowerShell、后台服务各走一套配置:WinINET(用户级)、WinHTTP(系统级)、环境变量(跨平台工具)。本文详解三者 PowerShell 配置、验证与恢复,助你精准穿透代理迷雾。
|
机器学习/深度学习 数据采集 算法
残差分析| 学习笔记
快速学习残差分析。
残差分析| 学习笔记
|
XML Web App开发 人工智能
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
2869 0
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
|
安全 前端开发 JavaScript
Java精品视频全套资源汇总,自学Java人手一套!
发现有很多粉丝是学java的,为了大家能够快速成长,所以我今天精心挑选了一些java相关的视频资源分享给大家,大家一定好好利用起来,这些技术学会之后,进大厂指日可待,加油。
8869 0
|
2月前
|
人工智能 Java BI
【AI】Agent 全栈进阶|大模型基础与对话调用
本文开启Agent代码实操,先讲解大语言模型底层原理,依托LangChain框架搭配阿里百炼接口,演示基础对话、系统提示词角色扮演、图片多模态识别与多轮上下文会话,附带完整可运行Python代码
268 3
|
2月前
|
人工智能 自然语言处理 API
阿里云百炼Token Plan:AI 模型订阅计划,Qwen3.8-Max 首发尝鲜、上新deepseek-v4-flash,个人版39元起
阿里云推出的百炼Token Plan全新升级活动,是面向全类型AI生产力用户的重磅订阅服务升级,核心权益包含Qwen3.8-Max-Preview首发尝鲜限时加量10倍福利,覆盖文本、视觉、视频等全模态旗舰模型,支持个人版与企业版多档位灵活选择,早鸟优惠低至39元/月,每晚22点到次日8点夜间调用还可享qwen3.7系列低至2折起的超大折扣,同时开放多款组合购套餐将算力、工具、部署环境一站式配齐,帮助用户高效开启全链路AI生产力。
|
2月前
|
数据采集 人工智能 自然语言处理
大模型知识蒸馏实战:用小模型替代大模型的企业级方案
知识蒸馏是企业降本增效的关键技术:通过大模型(Teacher)指导小模型(Student),在保持垂直领域高精度的同时,显著降低推理成本(↓50%–90%)、缩短延迟、支持私有化部署与边缘运行,结合LoRA微调、RAG增强及量化优化,构建低成本、高可靠、可落地的AI生产体系。
495 0
|
数据采集 API C++
Python爬虫进阶实战:用海外代理ip批量采集 eBay 爆款商品
在跨境电商竞争激烈的当下,掌握爆款商品数据是选品和营销的关键。本文详解如何通过 Python 自动采集 eBay 商品信息,包括标题、价格、销量、链接和图片,并保存为 Excel 文件用于分析。重点介绍了使用海外代理 IP 避免封禁的策略,以及如何结合代理池、随机 UA、请求重试等手段提升采集稳定性。内容适合跨境电商从业者及数据采集初学者参考实践。
|
数据采集 人工智能 安全
5分钟,学会自建海外代理IP池
本文详解如何从0到1搭建实用的海外代理IP池,适合跨境、爬虫、AI数据等业务。摒弃免费IP风险与自建高成本,推荐使用成熟商业服务,结合Python实现IP自动获取、验证与管理,安全高效,新手友好。