什么是 UDP 协议?UDP 协议和 TCP 协议的区别是什么?

前言:

前面我们分享了 TCP 协议相关的知识,谈起 TCP 一般都会谈到 UDP,那 UDP 是什么呢,本篇我们来简单分享一下 UDP 协议。

计算机网络往期文章

TCP 为什么是 3 次握手 4 次挥手?

TCP 数据传输的拆包和粘包了解吗?

什么是 UDP 协议?

UDP 全称:User Datagram Protocol,翻译过来就是用户数据报协议,是一个传输层协议,是 OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。

UDP 协议的特点

  • 无连接:UDP 在发送数据前不进行连接,发送结束时也没有连接可以释放,因此减少了开销和发送数据之前的时延。
  • 不可靠:UDP 不保证数据的可靠性,也不使用拥塞控制,因此主机不需要维持复杂的连接状态表,如果因为网络故障导致报文无法发送到对方,或者对方收到了报文但传输过程中乱序了,UDP 协议层也不会给应用层任何错误反馈信息。
  • 面向报文:UDP 对应用程序给的数据报文,不进行合并拆分处理,原封不动的将报文进行传输,因此应用程序需要选择合适大小的报文进行传输。
  • 无拥塞控制:UDP 没有拥塞控制机制,UDP 协议并不会因为网络出现拥堵而让发送主机的发送速率降低,这个特点适合应用在允许网络发生拥塞时丢失不分数据,但不允许大量数据延迟的场景。
  • 支持多种通信方式:UDP 支持一对一、一对多、多对一和多对多的交互通信方式。

UDP 报文格式

  • 源端口(Source Port):16 位,因为 UDP 是不需要进行 ACK 的,因此这个字段可以省略。
  • 目的端口(Destination Port):16 位,在交付报文时候使用,这个字段不可以省略。
  • 长度(Length):16 位,用户报文数据的长度,包括首部和数据,其最小值是8(仅有首部的情况)。
  • 检验和(Checksum):16 位,用于检测报文数据包在传输中是否有出错丢失等情况,如果有则将报文丢弃。
  • Data octets:8 位,就是字节数据。

UDP 协议的使用场景

  • 网络游戏:尤其是多人在线的游戏,UDP 协议能够快速处理海量数据包,确保游戏的流畅进行。
  • 视频传输:例如视频会议,这些应用对数据的实时性要求高,而少量的数据丢失相对于传输延迟来说是可以容忍的。
  • 直播:直播场景在线人数很多,需要较低的数据延迟,直播聊天信息的少量数据丢失是可以接受的。
  • DNS 查询:DNS 服务基于 UDP 协议,能够快速解析域名。
  • 。。。。。。等等

UDP 的使用可以结合实时性高,少量数据丢失的特性来选择使用。

UDP 协议和 TCP 协议的区别是什么?

TCP UDP
连接类型 有连接,三次握手,四次挥手 无连接
可靠性 可靠 不可靠
头部大小 20-60 字节,最小 20字节,头部较大 固定8字节,头部较小
速度 相对 UDP 慢 相对 TCP 快
顺序性 有序 无序
数据校验机制 有流量控制,拥塞机制 只有最基本的 checksum 机制
使用场景 文件传输、邮件等 网络游戏、视频会议、直播等

总结:本篇简单分享了 UDP 协议的相理论知识,同时对 UDP 协议和 TCP 协议做了个简单的对比,希望帮助到有需要的小伙伴。

如有不正确的地方欢迎各位指出纠正。

相关推荐
extrao8 小时前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
不做菜鸟的网工2 天前
BGP特性
网络协议
MrSYJ3 天前
TCP协议理解
后端·tcp/ip
明月_清风4 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水6 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816086 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水6 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议
用户2530171996277 天前
第6篇:从技术到产品 — Ghost Proxifier 的设计哲学
网络协议