UDP 协议学习笔记
文章目录
UDP协议定义
RFC768 User Datagram Protocol 【点我查看】
UDP(User Datagram Protocol) 用户数据报协议,是一个简单的面向数据报的通讯协议。
UDP是一个传输层协议,是基友IP协议的,UDP提供不可靠的传递。
UDP是属于无连接协议。
UDP的结构
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...
Source Port [16 bit] 源端口
发送的源端口
Destination Port [16 bit] 目标端口
发送的目标端口
Length [16 bit] 长度
UDP报文长度
Checksum [16 bit] 校验位
略
UDP伪报头(可以忽略)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| source address |
+--------+--------+--------+--------+
| destination address |
+--------+--------+--------+--------+
| zero |protocol| UDP length |
+--------+--------+--------+--------+
source address [32 bit]: 源地址
destination address [32 bit]: 目标地址
zero [8 bit]: 全零
protocol [8 bit]:协议
UDP length [8 bit]: UDP报文长度
UDP优势
- 协议简单,协议长度只有8个字节,不会因为UDP封包,增加过多传输数据。(TCP要搞20个字节)
- 无连接,不需要进行连接,可以直接发送数据。
- 无状态,不需要关心连接的状态,数据想发送就发送。
- 无延迟,不管接收方收到的数据是否完整,反正我收到的是最新的数据,接收端无需考虑数据的时效性。
- 无慢启动,开始发送时就速度飙满,不用小心翼翼的慢慢发,生怕对方没有收到自己的数据。
- 无流量控制,不需要关网络情况,只要你电脑撑得住,可以一直向网络中倾斜数据。
- 能广播数据,不强制只有一个终端接收数据,反正数据发出去,只要愿意,谁都可以接。
- 永远不会粘包,TCP处理过粘包问题的,你会发现,这个优点真香。