-
Notifications
You must be signed in to change notification settings - Fork 381
/
UDP协议.md
42 lines (24 loc) · 2.21 KB
/
UDP协议.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# UDP(用户数据报协议)
> 用户数据报协议(User Datagram Protocol,UDP)UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成 ,提供面向事务的简单不可靠信息传送服务。
## 一、UDP协议
1、面向事物,不是面向链接
2、UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地
简单的可以理解UDP就是类似一个邮寄员的角色。你只要告诉它,对方的地址和电话。邮递员就把你的快递送到对应的地方,但是中间可能会丢失。对方收到没有,就不管了。
## UDP头部信息
> 指定通信的源端端口号、目的端端口号、UDP长度、校验和、数据
![udp-1](./images/udp-1.png)
![udp-2](./images/udp-2.png)
UDP报文各个位置详解:
- 1、源端口号,16bit
- 2、目的端口号:数据接收者的端口号,16bit
- 3、UDP长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节
- 4、UPD校验和:UDP检验和覆盖UDP首部和UDP数据
- 5、首部长度:首部中32bit字的数目,可表示15*32bit=60字节的首部。一般首部长度为20字节。
- 6、数据
使用**wireshark**抓包查看对应的字段信息。
![](./images/udp-3.png)
UDP 是一个简单的传输层协议。和 TCP 相比,UDP 有下面几个显著特性:
- UDP 缺乏可靠性。UDP 本身不提供确认,序列号,超时重传等机制。UDP 数据报可能在网络中被复制,被重新排序。即 UDP 不保证数据报会到达其最终目的地,也不保证各个数据报的先后顺序,也不保证每个数据报只到达一次
- UDP 数据报是有长度的。每个 UDP 数据报都有长度,如果一个数据报正确地到达目的地,那么该数据报的长度将随数据一起传递给接收方。而 TCP 是一个字节流协议,没有任何(协议上的)记录边界。
- UDP 是无连接的。UDP 客户和服务器之前不必存在长期的关系。UDP 发送数据报之前也不需要经过握手创建连接的过程。
- UDP 支持多播和广播。