用户数据报协议UDP
介绍
用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议。此协议默认认为网路协议(IP)是其下层协议。此协议提供了向另一用户程序发送信息的最简便的协议机制。此协议是面向操作的,未提供提交和复制保护。如果应用程序要求可靠的数据传送应该使用传输控制协议(TCP)。数据报格式如下:
    0     7 8    15 16   23 24     31 
    +-----------+-----------+----------+------------+
    |    源端口     |   目的端口     |
    +-----------+-----------+----------+------------+
    |     长 度     |    校验码     |
    +-----------+-----------+----------+------------+
    |     数 据          ......
    +-----------+----------.......
             用户数据报格式
用户数据报头格式
源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了在没有其它信息的情况下,返回信息应该向什么地方发送。如果不使用它,则在此域中填0。目的端口在有特定的目的网络地址时有意义。长度指的是此用户数据报长度的八进制表示。(这表明最小的数据报长度是 8。)校验码有16位,是对IP头,UDP头和数据中信息包头的数位取反之和再取反得到的。
包头从概念上说是在UDP头信息之前的,它包括有源地址,目的地地址,所使用的协议UDP长度。这些信息使信息不能被错误地接收。这个校验过程与TCP中使用的过程一致。
    0     7 8    15 16   23 24     31 
    +-----------+-----------+----------+------------+
    |          源地址           |
    +-----------+-----------+----------+------------+
    |          目的地址          |
    +-----------+-----------+----------+------------+
    |  0   | 
协议   |   UDP长度     |
    +-----+-----+----+------+-----+-----+----+------+
如果计算出的校验码为零,它将被全零发送。全零的校验值意味着发送者未产生校验码。
用户接口
用户接口应该允许创建新的接收端口,在接收端口的接收操作有:应该返回一个八进制数说明源端口和源地址,允许数据报传送,指定数据,
源和目标端口和目的地地址。
IP层接口
UDP模块必须能够决定源和目标的网络地址,而且必须能够从包头中得知所使用的协议。一个可能的接口方式是返回整个数据报,包括接收操作返回的包头。这样的接口还应该允许UDP向IP传送完整的带包头的数据报用于传送。由IP来确定一致性并计算校验码。
协议应用
协议的最主要的用途是网际名称服务器和小文件传输协议(TFTP)。
协议
在IP中使用它时,它的协议号是17(八进制中是21)。