udp是什么协议

UDP 这个东西……说实话很有趣。
它位于 OSI 模型的传输层,仅次于 TCP,但其工作原理完全不同。
UDP 是无连接的。
传输数据前无需像TCP那样进行三次握手。
数据包被简单地丢弃。
IP是其底层协议,数据包包含源端口、目的端口、长度、校验和等基本信息。

UDP的核心特点是不可靠。
它不保证数据包按顺序到达,也不保证完整到达,甚至可能重复到达。
丢包、乱序、重复等现象在传输过程中很常见。
例如,如果你正在玩FPS游戏,屏幕是否卡顿可能只是包裹到达前的零点几秒。
这样的话,UDP丢包的时候你根本感觉不到,但是如果使用TCP的话,就得等待重传,游戏体验会直接崩溃。

UDP数据包结构非常简单,头部只有4 个字段,总共8 个字节。
源端口和目的端口告诉你数据是谁发送的以及发送给谁的; 长度是头部加上数据的总长度; 校验和用于检查数据是否有错误,一般使用。
与具有至少2 0个字节的报头和大量各种控制位的TCP相比,UDP特别轻量。

从性能上来说,UDP的传输速度要快得多,因为它省去了连接建立和确认重传的步骤。
低延迟,适合对实时性要求较高的场景。
像网络游戏、视频会议、直播等,你想想看,如果用TCP来传输,每次都要等待对方确认接收,这样会造成很大的滞后。
此外,UDP支持广播和组播。
一个数据包可以同时发送到多个设备,而TCP只能是点对点的。
它还占用少量资源,特别适合嵌入式设备或带宽紧张的环境。

但是UDP的缺点也很明显。
确实是不靠谱的。
如果你需要传输重要的文件或电子邮件,UDP肯定行不通。
如果数据丢失就麻烦了。
这个时候,应用层就只能靠自己来寻找解决方案了。
例如,视频会议软件可以实现自己的重传机制,或者简单地使用基于UDP的改进协议,例如QUIC。

一般来说,UDP 以可靠性换取效率和灵活性。
它体现了“简单即高效”的设计思想,但用户必须意识到,如果数据丢失,可能还得自己携带。

udp是怎么连接的

UDP是无连接的,直接发送数据。

发送前无需握手;完成后无需断开连接。

服务器socket绑定,直接传递给客户端。

数据可能乱序或完全丢失。

不保证可靠性;没有重传,也没有流量控制。

视频游戏被广泛使用并且可以容忍丢包。

端口标识进程;校验和是可选的。

IP层负责路由,UDP只负责传输。

UDP 还用于 DNS 和广播。

快速但不可靠。

计算机网络-运输层-用户数据报协议UDP

HTTP、UDP、TCP区别

HTTP 基于 TCP,一种应用层协议。
UDP传输层,无连接且不可靠。
TCP传输层,面向连接,可靠。

三次握手形成,四次挥手离开。

记住这个场景:HTTP/TCP 用于网站,UDP 用于游戏。