当前位置: 首页 > news >正文

计算机网络 - UDP协议

通过一些问题来讨论 UDP 协议

  • 什么是 UDP?举几个应用了 UDP 协议的例子
  • UDP 与 TCP 有啥区别?(PS:介绍三四个就可以了,不用说太多)
  • 具体 UDP 是不可靠的,那你觉得如何实现一个可靠的 UDP ?

1. 什么是 UDP?举几个应用了 UDP 协议的例子

UDP是用户数据报协议,它是一种无连接的传输层协议,它没有可靠性保证,但是正因为 UDP 协议的控制字段较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的服务

比如视频会议、直播等,少量视频帧丢失不会明显影响体验,但延迟太高会卡顿

还有 DNS ,TCP 三次握手太耗时,而 UDP 一次往返即可完成

我们平时玩的射击类/MOBA 游戏也是使用的UDP,因为玩家位置和动作需实时同步,偶尔丢包可通过其他功能补偿

2. UDP 与 TCP 有啥区别?

UDP无连接,直接发送数据;TCP通信需要三次握手建立连接

同时 TCP 只支持一对一,两个端点的服务;而 UDP 同时支持 一对一,一对多和多对多的服务

UDP发送报文不太可靠,不保证送达和顺序;TCP发送报文比较可靠,有丢包重传等机制

因为 UDP 无须建立连接等额外控制开销,所以使用速度较快;而 TCP 速度就较慢,因为存在确认机制和流量控制等

UDP保留原始数据包边界,发多少,收多少;TCP是基于字节流服务的,不保留原始数据边界

TCP 像寄挂号信(必须签收,丢件会补发)

UDP 像发传单(只管发,不管对方是否收到)

3. 具体 UDP 是不可靠的,那你觉得如何实现一个可靠的 UDP ?

嗯,可以参考 TCP 的可靠性是如何保证的

TCP 的可靠性由多方面保证,比如序列号解决乱序问题,ACK 确保接收方成功接收,超时重传解决丢包问题,流量控制防止发送方压垮接收方,拥塞控制避免网络堵塞

所以,依照 TCP 的可靠性保证,使用 UDP 的时候,可以为每个数据包附加序号,接收方返回 ACK,发送后启动计时器,利用滑动窗口机制控制发送速率,同时动态调整发送速率

按照这样的设计思路,就能实现一个较为可靠的 UDP。不过是在应用层上额外设计的,UDP 本身并没有改变。比喻下,原生 UDP 就像一个没有 GPS 和 保险的货车,只管发车,不保证货物到达;在这个货车(UDP)的基础上,自己装上 GPS(序号 + ACK)和备用车俩(重传),由货主(应用层)管理物流可靠性

实际应用中,Google 的 QUIC 协议正是基于这一思路:在 UDP 上实现 TCP 的可靠性机制,同时优化了握手延迟。HTTP3 采用 QUIC 后,显著提升了网络不太好环境下的性能


诚恳欢迎大家提出意见

......(待续未完

相关文章:

  • 图像预处理-添加水印
  • 端侧大模型综述On-Device Language Models: A Comprehensive Review
  • 23种设计模式-创建型模式之工厂方法模式(Java版本)
  • TCP连接建立:为什么是三次握手?
  • nohup命令使用说明
  • R4打卡——tensorflow实现火灾预测
  • 【软考-系统架构设计师】ATAM方法及效用树
  • JVM考古现场(二十二):降维打击·用二向箔优化内存模型
  • UE学习记录part18
  • rk算力集群usb做网卡
  • 数据一致性问题剖析与实践(一)——冗余数据存储分布式共识决策中的一致性问题
  • 生成树协议的构成(STP)
  • 贝叶斯均衡
  • 快速认识:数据库、数仓(数据仓库)、数据湖与数据运河
  • 2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享
  • 【技术派后端篇】canal实现MySQL/Redis缓存一致性
  • OpenAI 推出一对 AI 推理模型 o3 和 o4-mini
  • 【数据结构_10】二叉树(1)
  • 解析检验平板:设备还是非设备?深入了解其功能与应用(北重铸铁平台厂家)
  • 三、小白如何用Pygame制作一款跑酷类游戏(按键图片和距离的计算)
  • 印方称若巴方决定升级局势,印方已做好反击准备
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓
  • 这个五月,有三部纪录电影值得一看
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 上海车展侧记|中国汽车产业的韧性从何而来
  • 五一假期,新任杭州市委书记刘非到嘉兴南湖瞻仰红船