什么是 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 协议做了个简单的对比,希望帮助到有需要的小伙伴。

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

相关推荐
CS创新实验室9 小时前
《计算机网络深入学》:“互联网”与“互连网”
计算机网络·408·计算机考研
傻啦嘿哟11 小时前
2026代理IP服务商深度测评:8家主流厂商的“极限压力测试“全记录
网络协议·tcp/ip·压力测试
%小农11 小时前
在cursor中使用server
网络·网络协议·http
ivy1598683771513 小时前
芯锦科技 HP9117 多协议USB Type-A快充识别芯片
网络·科技·网络协议·5g·信号处理·p2p
西红市杰出青年13 小时前
MCP 的三种数据传输模式教程(stdio / SSE / Streamable HTTP)
网络·网络协议·http·ai
.select.13 小时前
HTTPS 如何优化?
网络协议·http·https
三三有猫16 小时前
HTTP、HTTPS和SOCKS代理怎么选?
网络协议·http·https
yy_xzz18 小时前
【Linux开发】 04 Linux UDP 网络编程
linux·网络·udp
北京耐用通信18 小时前
工业级抗干扰!耐达讯自动化CC-Link IE转Modbus RTU网关,稳定运行,让数据不丢包
人工智能·科技·物联网·网络协议·自动化·信息与通信
牛奶19 小时前
为什么关掉浏览器再打开,你还是登录状态?
前端·网络协议·https