RFC 768 - 用户数据报协议 (User Datagram Protocol)
- 状态: Internet Standard
- 发布日期: August 1980
- Stream: Legacy
- 勘误: 无勘误
简介
本用户数据报协议 (User Datagram Protocol, UDP) 的定义是为了在互联计算机网络环境中提供分组交换计算机通信的数据报模式。本协议假设使用互联网协议 (Internet Protocol, IP) [1] 作为底层协议。
本协议为应用程序提供了一种以最少协议机制向其他程序发送消息的过程。该协议面向事务, 不保证传递和重复保护。需要有序可靠传递数据流的应用程序应使用传输控制协议 (Transmission Control Protocol, TCP) [2]。
格式
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...
用户数据报头部格式 (User Datagram Header Format)
字段
源端口 (Source Port)
源端口是一个可选字段, 当有意义时, 它指示发送进程的端口, 在没有任何其他信息的情况下, 可以假定为应将回复发送到的端口。如果不使用, 则插入零值。
目的端口 (Destination Port)
目的端口在特定互联网目的地址的上下文中具有意义。
长度 (Length)
长度是此用户数据报的八位字节长度, 包括此头部和数据。(这意味着长度的最小值为八。)
校验和 (Checksum)
校验和是来自 IP 头部信息的伪头部、UDP 头部和数据的反码和的 16 位反码, 在末尾填充零八位字节 (如有必要) 以使其成为两个八位字节的倍数。
概念上前缀到 UDP 头部的伪头部包含源地址、目的地址、协议和 UDP 长度。此信息提供了对错误路由数据报的保护。此校验和过程与 TCP 中使用的相同。
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| source address |
+--------+--------+--------+--------+
| destination address |
+--------+--------+--------+--------+
| zero |protocol| UDP length |
+--------+--------+--------+--------+
如果计算出的校验和为零, 则以全一传输 (反码算术中的等价值)。全零传输的校验和值意味着发送方未生成校验和 (用于调试或用于不关心的高层协议)。
用户接口
用户接口应允许:
-
创建新的接收端口,
-
对接收端口执行接收操作, 返回数据八位字节以及源端口和源地址的指示,
-
以及允许发送数据报的操作, 指定要发送的数据、源端口和目的端口以及地址。
IP 接口
UDP 模块必须能够从互联网头部确定源和目的互联网地址以及协议字段。一种可能的 UDP/IP 接口将在响应接收操作时返回整个互联网数据报, 包括所有互联网头部。这样的接口还允许 UDP 将带有头部的完整互联网数据报传递给 IP 进行发送。IP 将验证某些字段的一致性并计算互联网头部校验和。
协议应用
本协议的主要用途是互联网名称服务器 [3] 和简单文件传输 [4]。
协议号
在互联网协议中使用时, 本协议号为 17 (八进制 21)。其他协议号列于 [5]。
参考文献
[1] Postel, J., "Internet Protocol," RFC 760, USC/Information Sciences Institute, January 1980.
[2] Postel, J., "Transmission Control Protocol," RFC 761, USC/Information Sciences Institute, January 1980.
[3] Postel, J., "Internet Name Server," USC/Information Sciences Institute, IEN 116, August 1979.
[4] Sollins, K., "The TFTP Protocol," Massachusetts Institute of Technology, IEN 133, January 1980.
[5] Postel, J., "Assigned Numbers," USC/Information Sciences Institute, RFC 762, January 1980.
相关资源
- 官方文本:
https://www.rfc-editor.org/rfc/rfc768.txt - 官方页面:
https://datatracker.ietf.org/doc/html/rfc768