每日一个计算机小知识:UDP

每日分享一个有趣的计算机小知识,今日话题:UDP

UDP是User Datagram Protocol的缩写,用户数据报协议,它是一种无连接协议,以"数据报"为单位传输数据,轻量、传输速度快但不可靠。

UDP与TCP协议都是诞生于1980年(RFC768),UDP主要满足网络对于高效传输的需求,TCP虽然传输数据可靠但开销高,于是UDP作为补充,满足对数据实时性高于可靠性的场景,也是网络核心传输协议之一。

主要特点:

无连接

传输数据前不需要建立连接(如TCP需要三次握手建立了连接后才能开始传输数据),直接发送数据,减少开销。

低延迟

没有建立连接、断开连接、重传等步骤,传输延迟低,实时性强。

面向数据报

每个数据报独立传输,包含完整的源/目的端口信息,长度固定。

不可靠

不保证数据送达、顺序正确,数据丢失也不会进行重传和流量控制,所以可能出现丢包、乱序。

需要实时通信相关场景应用比较多,如视频通话、语音通话、直播、游戏数据同步...视频通话或直播偶尔画面卡顿一下、游戏里瞬间技能延迟了一下,顶多造成轻微卡顿不会影响整体使用。

如果换成TCP追求数据的可靠性,数据延迟就会比较高,通话就会断断续续,游戏操作也会慢半拍。

举个形象点的例子,TCP就像一名严谨靠谱的快递员,遵守交通规则从不闯红灯,路上间隙都要各种确认核对,确保所有包裹都万无一失。而UDP则是一名追求速度的快递员,每次拿到包裹也不确认就马不停蹄地派送,遇到红灯也不管直接闯,快递丢了也不会下车捡,一心只想着最快把包裹送到。

相关推荐
Victor35615 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor35615 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术17 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
Gogo81618 小时前
BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?
后端
fuquxiaoguang18 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
毕设源码_廖学姐19 小时前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计
野犬寒鸦20 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
逍遥德21 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
MX_935921 小时前
Spring的bean工厂后处理器和Bean后处理器
java·后端·spring
程序员泠零澪回家种桔子1 天前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构