news 2026/7/19 2:49:53

UDP传输协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UDP传输协议

UDP(User Datagram Protocol),用户数据报协议。是传输层面向数据报不可靠传输协议,在传输数据时,不需要通信双方建立连接,发完就结束,时典型的面向报文协议。

UDP协议特点

无连接

无连接的含义就是收发双方不需要像TCP协议一样在通信前要建立连接,不需要确认应答,不需要超时重传。与TCP相比:

  • TCP:TCP就像拨通电话,一定要电话接通(建立连接)后,才能互通消息;
  • UDP:UDP就像发邮件,不管对方有没有在线,邮件发给对方就不管事儿了;

不可靠

所谓不可靠,即是指发送方要发送数据就一个劲儿的不断发送数据报,不管是否会因为网络出错等问题而造成的数据报文丢失的问题。简单来说,就是收发双方无法得知是否接收?是否发送?是否丢失?

❗注意:只要数据报成功到达接收方,那么这个数据一定就是正确的,即没有被篡改过的。为什么?因为UDP协议格式中的校验和字段就是用来校验数据在发送过程中是否出错的,如果检验出错,那么就会直接丢弃这个数据报。

全双工

所谓全双工,通俗地来讲就是收发双方可以同时发送数据,同时接收数据,双方不受影响。

与半双工的区别:半双工双方都可以互相发送和接收数据,但不能同时发送数据。

实际应用:

  • 全双工:电话、视频、直播等。
  • 半双工:对讲机等。

面向数据报

简单说,面向数据报就是发多少,收多少,不分装、不合并、不缓存

UDP传输数据的单元是数据报,发送一次数据就是一个数据报文,不需要像TCP一样需要分装、合并,不断将报文发送到接收缓冲区。

UDP协议格式

UDP协议格式,一般在教材中看到的图都是像下图这样画的:

源端口和目的端口

源端口和目的端口都是各占2各字节(16位)。源端口表示发送的数据报来自发送方的哪个进程,目的端口表示要将数据报发送致接收方的哪个进程。

UDP长度

UDP长度用来表示整个数据报的长度,即UDP首部长度与载荷长度之和。内核靠这个长度字段,精准切分出单个完整 UDP 报文

UDP校验和

校验和的作用是校验数据报是否在传输过程中发生比特错误、数据篡改,保证 UDP 数据的完整性。如果校验和验证失败,直接丢弃整个数据报,不会交给应用层。

使用注意事项

  • UDP 校验和校验范围非常广,包含伪头部、UDP 头部、UDP 数据三部分,不只是校验报文本身,还能校验 IP 地址是否被篡改。
  • IPv4 中 UDP 校验和可选关闭,校验和字段填 0 代表不校验;但在 IPv6 中强制开启,不允许关闭。
  • 参与校验的数据字节必须为偶数,若原始数据为奇数,会在末尾临时补 0 字节参与计算,补齐字节不会发送到网络中。
  • 校验和为0时特殊处理:计算结果为全 0 时,报文写入0xFFFF,避免和 “不校验” 的 0 冲突。
  • UDP 校验和只能检测错误,无法纠错,一旦校验失败直接丢包,不会重传、不会修复数据。
  • 校验和可以防止比特翻转、数据损坏,但无法防止中间人攻击,只能保证数据完整性,不保证保密性与真实性。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 2:48:07

Android开发必备:20+高效开源库实战指南

1. Android开源库全景概览在Android开发领域,开源库就像建筑工地上的预制构件,能让我们避免重复造轮子。从网络请求到图片加载,从数据库操作到UI动画,几乎每个功能模块都有成熟的开源解决方案。我整理了这些年实际项目中验证过的2…

作者头像 李华
网站建设 2026/7/19 2:47:53

使用content直接写入内容

rootmaster:~# ansible web -m copy -a ‘dest/data00/check.sh backupyes content123’ 10.37.120.9 | CHANGED > { “ansible_facts”: { “discovered_interpreter_python”: “/usr/local/bin/python3.13” }, # 可以看到这里已经备份了 “backup_file”: “/data00/che…

作者头像 李华
网站建设 2026/7/19 2:47:50

告别繁琐搜索:百度网盘提取码智能获取工具使用指南

告别繁琐搜索:百度网盘提取码智能获取工具使用指南 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗&#xff1f…

作者头像 李华
网站建设 2026/7/19 2:45:34

【新闻】675!艾为官网应用方案数量再创新高!深耕端侧 AI 多元应用

艾为官网应用方案数量再创新高!目前官网应用中心场景适配框图数量已有675个,端侧AI方案框图:54个,本周新增框图7个(家用燃气报警器、家用烟雾报警器、AI智能风扇、除螨仪、手持吸尘器、电动拖把、AI办公平板电脑&#…

作者头像 李华
网站建设 2026/7/19 2:45:16

Java开发环境配置与核心语法精要

1. Java编程语言概述 Java作为一门面向对象的编程语言,自1995年由Sun Microsystems发布以来,已经成为全球最流行的开发平台之一。它的"一次编写,到处运行"特性通过Java虚拟机(JVM)实现,使得开发者可以构建跨平台的应用…

作者头像 李华