UDP(用户数据报协议)是传输层的一种无连接、不可靠、轻量级的协议,适用于对实时性要求高、能容忍少量数据丢失的场景(如视频流、DNS查询等)。以下是UDP的详细解析:


1. UDP的核心特点

特性说明
无连接通信前无需建立连接(无握手过程),直接发送数据。
不可靠传输不保证数据到达、不保证顺序、不重传丢失报文。
无拥塞控制无论网络状况如何,始终以恒定速率发送数据。
面向报文对应用层交下来的报文直接封装,不拆分也不合并(保留报文边界)。
头部开销小仅8字节头部(TCP至少20字节),传输效率高。

2. UDP报文格式

UDP数据报由头部数据部分组成,头部固定为8字节

text

0      7 8     15 16    23 24    31
+--------+--------+--------+--------+
| 源端口 | 目的端口 |               |
+--------+--------+--------+--------+
| 长度   | 校验和  | 数据部分(可选)|
+--------+--------+--------+--------+
  • 源端口(2字节):发送方端口号(可选,可为0)。

  • 目的端口(2字节):接收方端口号。

  • 长度(2字节):整个UDP数据报的长度(头部+数据,最小为8字节)。

  • 校验和(2字节):检测数据是否出错(可选,IPv6强制要求)。


3. UDP的工作原理

(1)发送数据

  1. 应用进程将数据交给UDP。

  2. UDP添加头部(源端口、目的端口、长度、校验和)。

  3. 直接交给网络层(IP)发送,无需建立连接。

(2)接收数据

  1. 网络层(IP)将数据报传递给UDP。

  2. UDP检查目的端口,将数据交给对应的应用进程。

  3. 不发送确认,即使数据丢失也不会重传。


4. UDP的适用场景

场景原因
实时应用视频/音频流(如Zoom、VoIP)、在线游戏(低延迟比可靠性更重要)。
DNS查询只需一次请求-响应,TCP的握手开销太大。
DHCP局域网动态分配IP地址,UDP的广播/组播特性更适合。
SNMP网络管理协议,通常使用UDP发送轻量级监控数据。
TFTP简单文件传输协议,基于UDP实现。

5. UDP的优缺点

✅ 优点

  • 低延迟:无连接、无握手,适合实时通信。

  • 低开销:头部仅8字节,比TCP更节省带宽。

  • 无拥塞控制:适合恒定速率传输(如直播)。

  • 支持广播/组播:可同时向多个主机发送数据(TCP仅支持单播)。

❌ 缺点

  • 不可靠:数据可能丢失、乱序、重复。

  • 无流量控制:发送速率过快可能导致接收方丢包。

  • 易受攻击:UDP Flooding等DDoS攻击较难防范。


6. UDP vs TCP

特性UDPTCP
连接方式无连接面向连接(三次握手)
可靠性不可靠可靠(确认、重传、排序)
头部大小8字节20~60字节
传输效率高(无额外控制)较低(有拥塞控制、流量控制)
适用场景实时应用、DNS、广播/组播网页、邮件、文件传输

7. UDP的典型应用

  1. DNS(域名解析)

    • 查询请求和响应通常使用UDP(端口53),因为只需一次往返。

  2. VoIP(网络电话)

    • 如Skype、Zoom,少量丢包不影响通话质量,但延迟必须低。

  3. 在线游戏

    • 游戏状态更新需要低延迟,偶尔丢包可接受(如UDP+自定义重传)。

  4. 视频流(如RTP)

    • 基于UDP的RTP协议用于实时视频传输(如YouTube直播)。


8. UDP的增强方案

由于UDP本身不可靠,某些应用会在UDP之上实现可靠性

  • QUIC(Google开发的协议,用于HTTP/3,结合UDP+TLS+重传机制)。

  • RTSP/RTP(流媒体协议,部分使用UDP+自定义丢包恢复)。

  • DTLS(基于UDP的TLS,用于安全通信)。


总结

  • UDP = 无连接 + 不可靠 + 高效 + 低延迟

  • 适合实时性 > 可靠性的场景(如视频、语音、游戏)。

  • 不适合要求数据完整的场景(如文件下载、网页浏览)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90951.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90951.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90951.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

子域名收集和c段查询

子域名收集方法一、sitesite: 要查询的域名可以查到相关网站二、oneforall (子域名查找工具)下载后解压的文件夹在当前文件夹打开终端然后运行命令 python oneforall.py --target xxxxxxxx(这里放你要查的网址) run最…

计网-TCP拥塞控制

TCP的拥塞控制(Congestion Control)是核心机制之一,用于动态调整发送方的数据传输速率,避免网络因过载而出现性能急剧下降(如丢包、延迟激增)。其核心思想是探测网络可用带宽,并在拥塞发生时主动…

依赖倒置原则 Dependency Inversion Principle - DIP

基本知识 1.依赖倒置原则(DIP)是面向对象设计(OOD)中的五个基本原则之一,通常被称为 SOLID 原则中的 D 2.核心思想: 高层模块不应该依赖低层模块,两者都应该依赖抽象。 (High-level modules sho…

原生input添加删除图标类似vue里面移入显示删除[jquery]

<input type"text" id"servicer-search" class"form-control" autocomplete"off" />上面是刚开始的input <div class"servicer-search-box"><input type"text" id"servicer-search" cla…

整理分享 | Photoshop 2025 (v26.5) 安装记录

导语&#xff1a; 最近整理资源时&#xff0c;发现有朋友在找新版 Photoshop。正好手边有 Photoshop 2025年7月的版本&#xff08;v26.5&#xff09;&#xff0c;就记录下来分享给大家&#xff0c;供有需要的朋友参考。关于这个版本&#xff1a;这个 Photoshop v26.5 安装包&am…

【Redis】Redis 数据存储原理和结构

一、Redis 存储结构 1.1 KV结构 Redis 本质上是一个 Key-Value&#xff08;键值对&#xff0c;KV&#xff09;数据库&#xff0c;在它丰富多样的数据结构底层&#xff0c;都基于一种统一的键值对存储结构来进行数据的管理和操作 Redis 使用一个全局的哈希表来管理所有的键值对…

【RAG优化】深度剖析OCR错误,从根源修复RAG应用的识别问题

1. 引言:OCR——RAG系统中的关键问题 当我们将一个包含扫描页面的PDF或一张报告截图扔给RAG系统时,我们期望它能“读懂”里面的内容。这个“读懂”的第一步,就是OCR。然而,OCR过程并非100%准确,它受到图像质量、文字布局、字体、语言等多种因素的影响。 一个看似微不足道…

【第六节】方法与事件处理器

方法与事件处理器 方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet">Greet</button></div>绑定一个单击事件处理器到一个方法 greet 。下面在 Vue 实例中定义这个方法 var vm=new V…

大语言模型Claude 4简介

Anthropic公司成立于2021年&#xff0c;由一群OpenAI前员工组成。他们最新发布的大语言模型(Large Language Model, LLM) Claude 4系列包括两个版本&#xff1a;Claude Opus 4和Claude Sonnet 4&#xff1a;(1).Claude Sonnet 4&#xff1a;是Claude Sonnet 3.7的升级&#xff…

国产化PDF处理控件Spire.PDF教程:Python 将 PDF 转换为 Markdown (含批量转换示例)

PDF 是数字文档管理的普遍格式&#xff0c;但其固定布局特性限制了在需要灵活编辑、更新或现代工作流集成场景下的应用。相比之下&#xff0c;Markdown&#xff08;.md&#xff09;语法轻量、易读&#xff0c;非常适合网页发布、文档编写和版本控制。 E-iceblue旗下Spire系列产…

PDF转Markdown - Python 实现方案与代码

PDF作为广泛使用的文档格式&#xff0c;转换为轻量级标记语言Markdown后&#xff0c;可无缝集成到技术文档、博客平台和版本控制系统中&#xff0c;提高内容的可编辑性和可访问性。本文将详细介绍如何使用国产Spire.PDF for Python 库将 PDF 文档转换为 Markdown 格式。 技术优…

深度解析 inaSpeechSegmenter:高效音频语音分割与检测开源工具

项目简介 inaSpeechSegmenter 是法国国家视听研究院(INA)开源的音频分割与检测工具,专为广播、播客、采访、影视等多媒体内容的自动化处理设计。它能够高效地将长音频自动分割为语音、音乐、噪声、静音等片段,并支持性别检测(男声/女声),为后续的语音识别、内容检索、转…

VirtualBox安装Ubuntu 22.04后终端无法打开的解决方案

问题现象在VirtualBox中使用"快速安装"模式安装Ubuntu 22.04后图形终端&#xff08;gnome-terminal&#xff09;无法通过图标或快捷键(CtrlAltT)启动系统其他功能正常根本原因语言环境(Locale)配置异常导致&#xff1a;快速安装模式可能跳过Locale生成步骤gnome-term…

java磁盘操作与IO流(序列化、Properties类)

目录 一、磁盘操作 1、File类&#xff1a; &#xff08;1&#xff09;创建File对象&#xff1a; &#xff08;2&#xff09;获取文件信息&#xff1a; &#xff08;3&#xff09;判断文件 &#xff08;4&#xff09;删除文件 &#xff08;5&#xff09;创建文件&#xff…

【WPF】WPF Prism 开发经验总结:菜单命令删除项时报 InvalidCastException 的问题分析与解决

WPF Prism 开发经验总结&#xff1a;菜单命令删除项时报 InvalidCastException 的问题分析与解决 在 WPF Prism 项目中使用 ContextMenu 执行删除操作时&#xff0c;遇到一个令人疑惑的问题&#xff1a;命令绑定本身没有问题&#xff0c;但点击“删除”菜单后&#xff0c;程序抛…

《WebGL打造高性能3D粒子特效系统:从0到1的技术探秘》

在游戏里,爆炸时四溅的火花、魔法释放时闪烁的光晕;在可视化项目中,数据流动时呈现的璀璨光河,这些令人惊叹的效果,背后离不开强大的技术支撑。而WebGL,作为在浏览器端实现硬件加速3D图形渲染的技术,为我们开启了构建高性能3D粒子特效系统的大门。 WebGL的渲染管线是整…

全国计算机等级考试二级题库【C语言】:程序填空题型——结构体 自制答案详解合辑

二级C语言程序填空题型简介 1、/**********found**********/紧跟的下面一行的程序设空,一般为3个空; 2、常见错误: (1) (2) 3、做题推荐步骤: (1) (2) ---------------一、结构体--------------- 2、题目要求【结构体】 程序通过定义学生结构体变量,存储了学生…

人工智能与城市:城市生活的集成智能

1. 智慧城市的核心价值&#xff1a;从 “硬件堆砌” 到 “智能协同”1.1 传统城市的治理困境全球 55% 的人口居住在城市&#xff0c;到 2050 年这一比例将升至 68%。传统城市管理面临多重挑战&#xff1a;资源分配失衡&#xff1a;早晚高峰主干道拥堵率达 80%&#xff0c;而支线…

Linux下挂载磁盘报superblock错误

Linux下挂载磁盘报superblock错误背景问题现象1、使用fdisk查询设备文件信息2、挂载磁盘&#xff0c;报出fs type错误解决办法1、使用e2fsk命令检查整个磁盘2、resize2fs 命令调整文件系统块大小和物理磁盘块大小3、挂载磁盘&#xff0c;确认修复结果问题思考1、rclone命令做数…

Http证书体系及证书加密流程(通信流程)

一、HTTPS 证书体系&#xff1a;信任的基石 HTTPS 证书体系是保障网络通信安全的核心机制&#xff0c;其本质是一套基于公钥基础设施&#xff08;PKI&#xff0c;Public Key Infrastructure&#xff09; 的信任体系&#xff0c;通过数字证书实现通信双方的身份验证和数据加密&…