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

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

相关推荐
earthzhang202118 分钟前
《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)
网络·网络协议·算法·https·1024程序员节
YannSea19 分钟前
ubuntu系统生成SSL证书配置https
网络协议·https·ssl
EQUINOX11 小时前
四、网络层:数据平面,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》
计算机网络·平面·智能路由器
下雪了 ~1 小时前
HTTP和HTTPS的区别有哪些?
服务器·前端·笔记·网络协议·计算机网络
记得多喝水o1 小时前
docker环境部署zabbix
运维·网络·网络协议·tcp/ip·信息与通信
Yan-英杰3 小时前
利用代理IP爬取Zillow房产数据用于数据分析
网络·python·网络协议·tcp/ip·数据分析
御风@户外3 小时前
学习笔记:从ncsi/nc-si协议和代码了解网络协议的设计范式
网络协议·ncsi
丶Darling.4 小时前
Linux高性能服务器编程中的TCP带外数据梳理总结
linux·服务器·tcp/ip
EQUINOX14 小时前
三、传输层,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》
网络·计算机网络
冰红茶兑滴水5 小时前
HTTP 协议
linux·网络·c++·网络协议·http