2024年6月1日发(作者:)

UDP协议

UDP协议 是User Datagram Protocol的简称, 中文名是用户数据包

协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简

单不可靠信息传送服务。在网络中它与TCP协议一样用于处理 UDP数

据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。

UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就

是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来

支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系

统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。

比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是

否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然

后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回

来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送

4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,

收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。

这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正

因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,

它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收

不到消息的情况。

UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经

被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常

实用和可行的网络传输层协议。

与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于

IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP

和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压

缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单

位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包

含具体的传输数据。

1、Udp协议报头

UDP报头由4个域组成,其中每个域各占用2个字节,具体如下: