计算机网络学习(六)——UDP

发布于:2025-05-27 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、UDP

UDP(User Datagram Protocol,用户数据报协议)是传输层的一种协议,和 TCP 并列。与 TCP 不同,UDP 是无连接、不可靠、面向报文的协议,它的设计目标是追求更快的数据传输速度和更小的开销

UDP 为应用程序提供尽最大努力交付(best-effort delivery)的数据传输服务,它不保证:

  • 数据可靠送达;
  • 数据到达顺序正确;
  • 数据不被重复。

核心特点:

特性 说明
无连接 不进行握手,通信前无需建立连接
不可靠 不重传、无确认、无流量控制
面向报文 每个UDP报文独立,不进行分段重组
支持多播广播 可用于局域网广播或多播通信
开销小速度快 头部仅8字节,传输效率高

注:

  • UDP和TCP,都属于传输层协议

二、UDP 报文结构(仅 8 字节头部)

参考书——计算机网络 (第8版)- 谢希仁。

用户数据报UDP有两个字段: 数据字段和首部字段
首部字段很简单, 只有8个字节, 由4个字段组成, 每个字段的长度都是2字节。
各字段意义如下:

  1. 源端口:源端口号。在需要对方回信时选用,不需要时可用全0 。
  2. 目的端口:目的端口号。这在终点交付报文时必须使用。
  3. 长度:UDP用户数据报的长度, 其最小值是8(仅有首部)。
  4. 检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。

在这里插入图片描述
注:

  • 相比 TCP 的复杂报头(20 字节起),UDP 简洁快速。

三、UDP vs TCP

比较项 UDP TCP
是否连接 无连接(无需握手 面向连接(三次握手
是否可靠 不可靠(无确认、无重传) 可靠(确认、重传、排序)
数据结构 面向报文 面向字节流
报文大小 最多 65,535 字节(通常小于 MTU) 不限,但需拆分
头部开销 小(8 字节) 大(20 字节起)
传输速度 相对较慢
应用场景 实时通信、多播、DNS、视频等 HTTP、SSH、文件传输、数据库等

四、UDP 实现可靠性的方法(由应用层补充)

虽然 UDP 不可靠,但很多应用通过在应用层设计可靠机制来实现“可靠UDP”:

技术手段 说明
应用层ACK确认 对关键数据加ACK机制
序列号机制 检测乱序或重传
超时重传 定时检测未确认数据重新发送
FEC 前向纠错 通过冗余数据修复丢失内容
QUIC 协议 Google开发的基于UDP的可靠协议

五、UDP 常配合的协议

UDP 是传输层协议,很多高层协议基于它:

协议 描述
DNS 域名解析协议,UDP端口53
DHCP 动态主机配置协议,UDP端口 67/68
SNMP 网络管理协议,UDP端口 161/162
TFTP 简单文件传输协议,UDP端口 69
RTP/RTCP 实时音视频协议

六、典型应用场景

场景 使用说明
视频/音频通话 容忍部分丢包,优先保证低延迟(如 WebRTC)
网络游戏 游戏位置、状态频繁更新,丢几个包不影响体验
DNS 查询 请求简单、短小、允许偶尔失败再重试
实时监控 安防摄像头、远程传感器数据流
广播/多播 如局域网设备发现、直播推流

网站公告

今日签到

点亮在社区的每一天
去签到