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

一、UDP概述

1、UDP是一种基本的通信协议,只在发送的报文中增加了端口寻址和可选的差错检测功能。

2、UDP不是一种握手信息协议,不能确认接收到的数据或交换其他流量控制信息。

3、UDP是一种非连接协议,计算机在使用UDP发送报文之前,不要求远程已联网或指定的目的端口可

用于通信。正因为如此,将UDP称为不可靠协议,即如果只使用

UDP,则发送方不知道目的主机何时是否接收到报文。

4、定义UDP的文档是RFC0768:User Datagram Protacal。在标准STD0006中也获得通过。

5、使用UDP发送报文的计算机将报文置于UDP数据报中。UDP数据报由报头及其后面包含报文的报文

组成。

6、发送计算机将UDP数据报置于IP数据报的数据字段中。在以太网中,IP数据报存放在以太网帧的

数据字段中。接收到以太网帧后,目的计算机网络栈将UDP数据报的数据部分传递给数据报报头指定的端

口或进程。

7、UDP的大多数功能不如TCP,所以UDP的实现要简单些,更适合于特定的应用场合。如果需要,则

可在使用UDP进行通信时自定义握手协议。例如:接收接口在接收到报文之后,将返回包含确认代码或其

他请求信息的响应。如果发送方在合理的时间内没有接收到响应信息,就会重新发送报文。但是,如果应

用程序需要的不仅仅是最基本的握手或流量控制,则应该考虑使用TCP而不是UDP进行重构。

8、UDP有一个TCP没有的功能,就是可将报文发送到多个目的主机,包括向局域网内所有的IP地址以

广播方式发送,或者向指定的IP地址以组播方式发送。对于TCP而言,广播和组播都不现实,因为源主机

必须与所有目的主机握手。

二、UDP报头

UDP报头由4个字段组成,后面紧接着是要传输的数据。

1、源端口号:源端口号标识发送报文的计算机端口或进程。长度2字节,可选,如果接收进程不需要

知道发送数据报的进程,则该字段可置为0。

2、目的端口号:目的端口号标识接收报文的目的主机端口或进程。2字节。

3、数据报长度:指整个数据报的长度,以字节为单位,包括报头,最大值为65535。该字段为2字节。

4、UDP检验和:是根据UDP数据报 和伪报头计算得到的差错检测值,可选,该字段伪为2个字节。

伪报头包含源和目的IP地址,以及来自IP数据报报头的协议值。IP数据报在网络中传送时包含UDP数

据报。伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误地接收错误路由的

数据报。校验和值的计算方法和IP报头检验和的计算方法类似。

仅在局域网内部传输报文不需要UDP校验和,因为以太网帧的校验和已经提供了差错控制。而对于那些

需要通过不同的、也许未知网络传输的报文而言,校验和可以让目的主机能检测到错误数据。

三、UDP数据

1、一个UDP数据报最大可达到65535个字节,且报头为8字节,因此一个数据报最多可以携带65527

个字节的数据。

2、实际上,源计算机常将数据报限制在较短的长度内。使用较短的数据报的一个原因是,过大的数据

报可能不适合目的主机的接收缓冲器大小;或者因为接收数据的应用程序可能需要特定长度的报文。

3、较短数据报也许更高效。当大的数据报经过不同能力的网络时,网络协议可能会将数据报拆分为报

片,要求目的主机将这些报片重组。所有数据都会到达目的主机,但一般来说,在源主机处拆分数据,然

后在目的主机处重组,会比依赖IP进行这项工作更高效。

4、IP标准要求主机能接收最大长度为576字节的数据报。没有可选项的IP报头长度为20字节,UDP

报头为8字节,因此一个最大长度为548字节且没有IP选项的UDP数据报不经过拆分便可到达目的主机。

UDP协议简介

源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了

在没有其它信息的情况下,返回信息应该向什么地方发送。如果不使用它,则在

此域中填

0。目的端口在有特定的目的网络地址时有意义。长度指的是此用户

数据报长度的八进制表示。(这表明最小的数据报长度是8。)校验码有16位,

是对IP头,UDP头和数据中信息包头的数位取反之和再取反得到的。

包头从概念上说是在UDP头信息之前的,它包括有源地址,目的地地址,

所使用的协议和UDP

长度。这些信息使信息不能被错误地接收。这个校验过程

TCP中使用的过程一致。如果计算出的校验码为零,它将被全零发送。全零的

校验值意味着发送者未产生校验码。

用户接口

用户接口应该允许创建新的接收端口,在接收端口的接收操作有:应该返回

一个八进制数说明源端口和源地址,允许数据报传送,指定数据,源和目标端口

和目的地地址。

IP层接口

UDP模块必须能够决定源和目标的网络地址,而且必须能够从包头中得知所

使用的协议。一个可能的接口方式是返回整个数据报,包括接收操作返回的包头。

这样的接口还应该允许UDP向IP传送完整的带包头的数据报用于传送。由IP来

确定一致性并计算校验码。

协议应用

此协议的最主要的用途是网际名称服务器和小文件传输协议。

协议号

在IP中使用它时,它的协议号是17(八进制中是21)。