UDP是用户数据报协议(User Datagram Protocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。UDP协议提供的是面向无连接的、不可靠的数据报投递服务。当使用UDP协议传输信息流时,用户应用程序必须负责解决数据报丢失、重复、排序,差错确认等问题。
udp协议_UDP协议 -简介
用户数据报格式
UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UDP协议直接利用IP协议进行UDP数据报的传输,UDP提供的是面向无连接的、不可靠的数据报投递服务。当使用UDP协议传输信息流时,用户应用程序必须负责解决数据报丢失、重复、排序,差错确认等问题。
用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议。此协议默认认为网路协议(IP)是其下层协议。此协议提供了向另一用户程序发送信息的最简便的协议机制。此协议是面向操作的,未提供提交和复制保护。如果应用程序要求可靠的数据传送应该使用传输控制协议(TCP)。
udp协议_UDP协议 -数据报格式
如下:
0 7 8 15 16 23 24 31
+-----------+-----------+----------+------------+
| 源端口 | 目的端口 |
+-----------+-----------+----------+------------+
| 长 度 | 校验码 |
+-----------+-----------+----------+------------+
| 数 据 ......
+-----------+----------.......
udp协议_UDP协议 -域
源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了在没有其它信息的情况下,返回信息应该向什么地方发送。如果不使用它,则在此域中填0。目的端口在有特定的目的网络地址时有意义。长度指的是此用户数据报长度的八进制表示。(这表明最小的数据报长度是 8。)校验码有16位,是对IP头,UDP头和数据中信息包头的数位取反之和再取反得到的。
包头从概念上说是在UDP头信息之前的,它包括有源地址,目的地地址,所使用的协议和UDP长度。这些信息使信息不能被错误地接收。这个校验过程与TCP中使用的过程一致。
0 7 8 15 16 23 24 31
+-----------+-----------+----------+------------+
| 源地址 |
+-----------+-----------+----------+------------+
| 目的地址 |
+-----------+-----------+----------+------------+
|0 | 协议 | UDP长度 |
+-----+-----+----+------+-----+-----+----+------+
如果计算出的校验码为零,它将被全零发送。全零的校验值意味着发送者未产生校验码。
用户接口
用户接口应该允许创建新的接收端口,在接收端口的接收操作有:应该返回一个八进制数说明源端口和源地址,允许数据报传送,指定数据,
源和目标端口和目的地地址。
IP层接口
UDP模块必须能够决定源和目标的网络地址,而且必须能够从包头中得知所使用的协议。一个可能的接口方式是返回整个数据报,包括接收操作返回的包头。这样的接口还应该允许UDP向IP传送完整的带包头的数据报用于传送。由IP来确定一致性并计算校验码。
udp协议_UDP协议 -协议应用
此协议的最主要的用途是网际名称服务器和小文件传输协议(TFTP)。
协议号
在IP中使用它时,它的协议号是17(八进制中是21)。
udp协议_UDP协议 -特征
(1)UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。(2)UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息,而且报文不一定按顺序到达的,所以接收端无从排起。
(3)UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。
(4)UDP传送数据较TCP快速,系统开销也少。
UDP比较简单,UDP头包含了源端口、目的端口、消息长度和校验和等很少的字节。由于UDP比TCP简单、灵活,常用于少量数据的传输,如域名系统(DNS)以及简单文件传输系统(TFTP)等。TCP则适用于可靠性要求很高但实时性要求不高的应用,如文件传输协议FTP、超文本传输协议HTTP、简单邮件传输协议SMTP等。