本质
- 协议简单,搭建在IP协议之上
- 尽可能的减少通信机制,允许用户直接发送报文的情况下最大限度的简化应用的设计,速度非常快
- 目的为了更快传输,发送报文,无法拆分数据(因为无序,拆分可能导致报文不可用)
概念
在传输层提供直接发送报文(Datagram)的能力。Datagram是数据传输的最小单位。
为什么不直接用IP协议传输报文
IP协议只能吧数据从一个网络接口发送到另一个网络接口,无法寻址到应用。
封包格式
从封包格式可以看出,UDP头比TCP头简单很多,并且客户端不需要等待ACK确认,服务端不需要按照顺序接收报文。这都是一个目的:允许用户直接发送报文的情况下最大限度的简化应用的设计!
- Source Port:源端口号
- Destination Port:目标端口号
- Length:消息体长度
- Checksum:检查封包是否出错
- Data octets:一个字节一个字节的数据。Octet是8位
UDP 对比 TCP
聊天室是否适合UDP协议
不合适,聊天室并发高但流量不大,依赖可靠性。
聊天室发送图片等,会将图片保存到图片服务器,聊天室发送的是一个地址,因此,这种情况下,流量也不大。
HTTP协议是否适合UDP
合适。用到HTTP的场景往往需要消息可靠传输。HTTP3.0就是建立在UDP之上的,在应用层保证数据可靠。在这个思路上来说,是可以的。
日常使用的哪些命令是基于UDP协议的
ping 命令