2. 一般问题 (GENERAL ISSUES)
本节讨论与所有应用层和支持协议相关的几个主题。
2.1 主机名和地址 (Host Names and Numbers)
互联网系统有一个层次化的主机名系统, 即域名系统 (Domain Name System, DNS)。每台互联网主机有一个或多个 IP 地址, 并且可能有一个或多个名称。
主机名由一系列用句点分隔的"标签"组成。例如: venera.isi.edu。最右边的标签称为"顶级域 (top-level domain, TLD)"。
要求
- 主机名不得 (MUST NOT) 由全数字标签组成。
- 主机软件必须 (MUST) 处理长度至少为 255 个字符的主机名。
- 主机软件不得 (MUST NOT) 对主机名的格式或内容做出任何超出 DNS 规范的假设。
2.2 使用域名服务 (Using Domain Name Service)
应用软件必须 (MUST) 能够处理给定主机名解析为多个 IP 地址的情况。这种情况在以下几种情况下出现:
- 负载共享: 多台主机可能在同一名称下提供相同的服务以实现负载均衡。
- 多宿主: 单台主机可能有多个网络接口, 具有不同的 IP 地址。
名称解析
当应用程序需要将主机名解析为 IP 地址时, 它通常使用域名系统 (DNS)。应用程序应该 (SHOULD):
- 如果第一次连接尝试失败, 尝试多个地址
- 记住哪个地址成功以供将来连接使用
- 实现适当的超时
缓存
应用程序可以 (MAY) 缓存已解析的地址, 但必须 (MUST) 遵守 DNS 返回的生存时间 (TTL) 值。
2.3 多宿主主机上的应用程序 (Applications on Multihomed Hosts)
当多宿主主机上的应用程序创建连接时, IP 源地址必须 (MUST) 是主机的 IP 地址之一。
对于具有多个 IP 地址的多宿主主机:
- 应用程序可以 (MAY) 允许用户选择使用哪个本地 IP 地址
- 如果没有指定特定地址, IP 层根据路由选择源地址
2.4 服务类型 (Type-of-Service)
应用协议应该 (SHOULD) 为应用程序提供一种机制来指定 TCP 连接或 UDP 传输的 IP 服务类型 (TOS)。
TOS 字段允许应用程序请求特定的处理特性:
- 低延迟 (最小化延迟)
- 高吞吐量 (最大化吞吐量)
- 高可靠性 (最大化可靠性)
- 低成本 (最小化货币成本)
2.5 一般应用要求摘要 (GENERAL APPLICATION REQUIREMENTS SUMMARY)
| 功能 | 章节 | MUST | SHOULD | MAY | MUST NOT |
|---|---|---|---|---|---|
| 处理长度 >= 255 字符的主机名 | 2.1 | x | |||
| 主机名不全为数字 | 2.1 | x | |||
| 支持每个名称对应多个地址 | 2.2 | x | |||
| 失败时尝试多个地址 | 2.2 | x | |||
| 遵守 DNS TTL 值 | 2.2 | x | |||
| 允许指定 TOS | 2.4 | x |