首页 理论教育UDP协议:计算机网络技术及应用的用户数据报通信方式

UDP协议:计算机网络技术及应用的用户数据报通信方式

【摘要】:UDP是在计算机上规定用户以数据报方式进行通信的协议。UDP与IP的差别在于,IP对于系统管理的网络软件可以使用,一般用户无法直接使用,而UDP是普通用户可以直接使用的,故称为用户数据报协议。UDP必须挂在IP上运行,它的下层协议是以IP作为前提的。最小值是8字节,即UDP数据报报头长度。使用伪报头的目的在于验证UDP数据报是否已到达它的正确报宿。在地址方面,UDP报头本身只是确定了协议端口的编号。

UDP(User Datagram Protocol)用户数据报文协议是一种简单的数据报传输协议,可以提供无连接的、不可靠的数据流服务。UDP是在计算机上规定用户以数据报方式进行通信的协议。UDP与IP的差别在于,IP对于系统管理的网络软件可以使用,一般用户无法直接使用,而UDP是普通用户可以直接使用的,故称为用户数据报协议。UDP必须挂在IP上运行,它的下层协议是以IP作为前提的。

UDP报文由UDP报头和数据域两部分组成,其格式如图2-17所示。

图2-17 UDP数据报文格式

在UDP报文格式中,各字段的含义如下。

UDP源端口号:源端口号是任选项。该端口号若被指定,当接收进程返回数据时,这些应用数据就不会被别人得到,不指定这个域时,其值设置为0。

UDP目的端口号:该端口号用以在等待数据报的进程之间进行多路分离,可以作为接收主机与特定应用进程相关联的地址

UDP报文长度:表示数据报头及其后面数据的总长度。最小值是8字节,即UDP数据报报头长度。用来告诉计算机信息的大小。

UDP校验和:根据IP分组头中的信息做出伪数据报头,跟UDP数据报头和数据一起进行16位的检验和计算。对数据为奇数字节的情况,增加全0字节使其成为偶数字节后再进行计算。检验和计算的方法与IP中所使用的相同。当检验和的结果为0时,将它的所有位都置成1(对1求补)。当检验和域的所有位都是0时,对接收方而言就不再具有检验和的意义,这在debug和高层协议认为检验和没有问题的情况下使用。(www.chuimin.cn)

伪报头是放在UDP报文前边的,其格式如图2-18所示。

图2-18 计算UDP检验和时使用的12个字节的伪报头

它取自IP数据报报头中的源IP地址、目的IP地址、协议号及UDP长度(UDP报头中的UDP长度),不足用0填充。使用伪报头的目的在于验证UDP数据报是否已到达它的正确报宿。正确报宿的组成包括互联网中一个唯一的计算机和这个计算机上唯一的协议端口。

在地址方面,UDP报头本身只是确定了协议端口的编号。因而,为验证报宿,发送计算机的UDP要计算一个检验和,这个检验和既包含了UDP数据报,也包含了报宿主机的IP地址。

在获取目的IP地址时,发生了UDP与IP之间的交互作用,这违背了分层原则。但出于实际的需求,这种伪报头结构成了原有分层结构上的折中产物。

用户数据报协议UDP,特别适用交互式短信息,它效率高,尤其是在通信子网已经相当可靠的环境中,UDP有其用武之地。