2. 互联网架构
本章不包含任何要求. 但是, 它包含关于 Internet 和路由器总体架构的有用背景 信息.
关于 Internet 架构及其支持协议族的一般背景和讨论, 可参见 DDN Protocol Handbook [ARCH:1]; 背景材料例如可参见 [ARCH:2], [ARCH:3] 和 [ARCH:4]. Internet 架构和协议也被越来越多的教科书覆盖, 例如 [ARCH:5] 和 [ARCH:6].
2.1 简介
Internet 系统由若干相互连接的数据包网络组成, 这些网络使用 Internet 协议 支持主机计算机之间的通信. 这些协议包括 Internet Protocol (IP), Internet Control Message Protocol (ICMP), Internet Group Management Protocol (IGMP), 以及依赖它们的各种传输协议和应用协议. 如 Section [1.2] 所述, Internet Engineering Steering Group 会定期发布一份 Official Protocols 备忘录, 列出 所有 Internet 协议.
所有 Internet 协议都使用 IP 作为基本数据传输机制. IP 是一种数据报式或无 连接的互联网服务, 并包含寻址, 服务类型指定, 分片和重组以及安全机制. ICMP 和 IGMP 被视为 IP 的组成部分, 尽管从架构分层看它们位于 IP 之上. ICMP 提供 错误报告, 流量控制, 第一跳路由器重定向以及其他维护和控制功能. IGMP 提供 主机和路由器加入与离开 IP 组播组的机制.
在 Internet 协议族中, 可靠数据交付由传输层协议提供, 例如 Transmission Control Protocol (TCP), 它提供端到端重传, 重排序和连接控制. 传输层的无连接 服务由 User Datagram Protocol (UDP) 提供.
2.2 架构元素
2.2.1 协议分层
要使用 Internet 系统通信, 主机必须实现组成 Internet 协议族的分层协议集合. 主机通常必须至少实现每一层中的一个协议.
Internet 架构中使用的协议层如下 [ARCH:7]:
o Application Layer Application Layer 是 Internet 协议族的最高层. Internet 协议族不再进一步 细分 Application Layer, 尽管某些应用层协议确实包含一些内部子层. Internet 协议族的应用层实质上合并了 OSI Reference Model [ARCH:8] 中最高两层, 即 Presentation 和 Application 的功能. Internet 协议族中的 Application Layer 还包括 OSI Reference Model 中归于 Session Layer 的部分功能.
我们区分两类应用层协议: 直接向用户提供服务的用户协议, 以及提供通用系统 功能的支持协议. 最常见的 Internet 用户协议是:
- Telnet (远程登录)
- FTP (文件传输)
- SMTP (电子邮件投递)
还有若干其他标准化用户协议以及许多私有用户协议.
用于主机名映射, 启动和管理的支持协议包括 SNMP, BOOTP, TFTP, Domain Name System (DNS) 协议以及各种路由协议.
与路由器相关的 Application Layer 协议在本备忘录第 7 章, 第 8 章和第 9 章中讨论.
o Transport Layer Transport Layer 提供端到端通信服务. 这一层大致等同于 OSI Reference Model 中的 Transport Layer, 但它还纳入了 OSI Session Layer 的某些建立和销毁 功能.
当前有两个主要的 Transport Layer 协议:
- Transmission Control Protocol (TCP)
- User Datagram Protocol (UDP)
TCP 是一种可靠的面向连接传输服务, 提供端到端可靠性, 重排序和流量控制. UDP 是一种无连接 (数据报) 传输服务. 研究社区已经开发了其他传输协议, 官方 Internet 传输协议集合未来可能会扩展.
与路由器相关的 Transport Layer 协议在第 6 章中讨论.
o Internet Layer 所有 Internet 传输协议都使用 Internet Protocol (IP) 将数据从源主机传送 到目标主机. IP 是一种无连接或数据报式互联网服务, 不提供端到端交付保证. IP 数据报可能以损坏, 重复, 乱序的形式到达目标主机, 或者根本无法到达. 当需要可靠交付服务时, IP 之上的各层负责提供这种服务. IP 协议包含寻址, 服务类型指定, 分片和重组以及安全机制.
IP 的数据报或无连接性质是 Internet 架构的一项基础性和特征性属性.
Internet Control Message Protocol (ICMP) 是一种控制协议, 被视为 IP 的 组成部分, 尽管从架构分层看它位于 IP 之上 - 它使用 IP 端到端承载自身 数据. ICMP 提供错误报告, 拥塞报告和第一跳路由器重定向.
Internet Group Management Protocol (IGMP) 是一种 Internet 层协议, 用于 为 IP 组播建立动态主机组.
Internet 层协议 IP, ICMP 和 IGMP 在第 4 章中讨论.
o Link Layer 为了在直接连接的网络上通信, 主机必须实现用于接入该网络的通信协议. 我们 将其称为 Link Layer 协议.
某些较早的 Internet 文档将这一层称为 Network Layer, 但它不同于 OSI Reference Model 中的 Network Layer.
这一层包含 Internet Layer 以下和 Physical Layer 以上的所有内容. Physical Layer 是介质连接能力, 通常为电气或光学形式, 用于编码和传输消息. Link Layer 的职责是在不区分消息类型的情况下正确交付消息.
这一层中的协议通常超出 Internet 标准化范围; Internet 会在可能时有意使用 现有标准. 因此, Internet Link Layer 标准通常只处理地址解析以及如何通过 特定 Link Layer 协议传输 IP 数据包的规则. Internet Link Layer 标准在第 3 章中讨论.
2.2.2 网络
Internet 系统的组成网络只要求提供数据包 (无连接) 传输. 根据 IP 服务规范, 数据报可能乱序交付, 丢失或重复, 和/或包含错误.
为了使使用 IP 的协议 (例如 TCP) 具有合理性能, 网络的丢包率应该很低. 在提供 面向连接服务的网络中, 虚电路提供的额外可靠性增强了系统的端到端健壮性, 但 这并不是 Internet 运行所必需的.
组成网络通常可以分为两类:
o Local-Area Networks (LANs) LAN 可以有多种设计. LAN 通常覆盖较小的地理区域 (例如单栋建筑或一个 厂区), 并提供高带宽和低延迟. LAN 可以是被动的 (类似 Ethernet), 也可以 是主动的 (例如 ATM).
o Wide-Area Networks (WANs) 地理上分散的主机和 LAN 通过广域网互连, 广域网也称为长途网络. 这些 网络可能具有由线路和数据包交换机构成的复杂内部结构, 也可能简单到只是 点到点线路.
2.2.3 路由器
在 Internet 模型中, 组成网络通过称为路由器或 IP 路由器的 IP 数据报转发器 相互连接. 在本文档中, 术语 router 的每次使用都等同于 IP router. 许多较早的 Internet 文档将路由器称为 gateways.
从历史上看, 路由器是通过在通用 CPU 上执行数据包交换软件来实现的. 然而, 随着定制硬件开发变得更便宜, 以及需要更高吞吐量, 专用硬件正变得越来越常见. 无论路由器如何实现, 本规范都适用于它们.
路由器连接到两个或更多逻辑接口, 这些接口由 IP 子网或未编号点到点线路表示 (见 Section [2.2.7]). 因此, 它至少具有一个物理接口. 转发一个 IP 数据报 通常要求路由器选择下一跳路由器的地址和相关接口, 或者在最后一跳选择目标 主机的地址和相关接口. 这种选择称为中继或转发, 它依赖路由器内部的路由数据 库. 路由数据库也称为路由表或转发表. 术语 "router" 源自构建该路由数据库的 过程; 路由协议和配置在一个称为 routing 的过程中相互作用.
路由数据库应该动态维护, 以反映 Internet 系统的当前拓扑. 路由器通常通过与 其他路由器一起参与分布式路由和可达性算法来完成这一点.
路由器只提供数据报传输, 并且为了路由灵活性和健壮性, 它们会尽量减少维持 该服务所需的状态信息.
数据包交换设备也可以在 Link Layer 运行; 这类设备通常称为网桥. 由网桥连接 的网络段共享同一个 IP 网络前缀, 形成单个 IP 子网. 这些其他设备超出了本文档 的范围.
2.2.4 自治系统
Autonomous System (AS) 是网络拓扑中的一个连通片段, 由一组子网 (其上连接 主机) 以及连接这些子网的一组路由组成. 这些子网和路由器预期受单一操作和 维护 (O&M) 组织控制. 在一个 AS 内, 路由器可以使用一个或多个内部路由协议, 有时还会使用多组度量. 一个 AS 预期向其他 AS 呈现出一致的内部路由计划外观, 以及通过该 AS 可达目标的一致图景. AS 由 Autonomous System number 标识.
AS 的概念在 Internet 路由中发挥重要作用 (见 Section 7.1).
2.2.5 寻址架构
IP 数据报携带 32-bit 源地址和目标地址, 每个地址都被划分为两部分: 组成网络 前缀和该网络上的主机号. 用符号表示为:
IP-address ::= {
为了最终交付数据报, 其路径上的最后一个路由器必须将 IP 地址中的 Host-number (或剩余) 部分映射到主机的 Link Layer 地址.
2.2.5.1 传统 IP 寻址架构
虽然其他文档 [INTERNET:2] 已充分记录, 但描述网络前缀的历史用法仍然有用. 为描述它而发展出的语言在本文档和其他文档中使用, 并渗透在许多协议背后的 思维方式中.
最简单的传统网络前缀是 Class A, B, C, D 或 E 网络前缀. 这些地址范围通过 观察地址最高有效位的值来区分, 并将地址划分为简单的前缀字段和主机号字段. [INTERNET:18] 中对此进行了描述. 简而言之, 分类如下:
0xxx - Class A - 具有标准 8 bit 前缀的通用单播地址
10xx - Class B - 具有标准 16 bit 前缀的通用单播地址
110x - Class C - 具有标准 24 bit 前缀的通用单播地址
1110 - Class D - IP Multicast Addresses - 28 bit 前缀, 不可聚合
1111 - Class E - 保留用于实验用途
子网概念扩展了这一简单思想. 引入子网是为了允许组织内部互连 LAN 结构具有
任意复杂性, 同时使 Internet 系统免受已分配网络前缀和路由复杂性爆炸式增长
的影响. 子网为 Internet 系统提供多级层次化路由结构. [INTERNET:2] 中描述的
子网扩展是 Internet 架构的必需部分. 基本思想是将
IP-address ::=
{
组织内部互连的物理网络使用相同网络前缀, 但使用不同子网号. 这种已划分子网
网络中各子网之间的区别通常在该网络之外不可见. 因此, Internet 其他部分中的
路由只使用 IP 目标地址的
{
包含该扩展网络号的 bit 位置历史上由一个称为子网掩码的 32-bit 掩码表示.
子网机制的发明者曾假定组织网络的每个部分只会有一个子网号. 实践中, 常常 证明让多个子网共享同一条物理电缆是必要或有用的. 因此, 路由器应该能够在 同一物理接口上配置多个子网, 并从路由或转发角度将它们视为不同的物理接口.
2.2.5.2 无类域间路由 (CIDR)
Internet 的爆炸式增长迫使人们重新审视地址分配策略. 为了更好地利用 IP 的 32-bit 地址空间, 通用 (Class A, B 和 C) 网络的传统用法已经被修改. Classless Inter Domain Routing (CIDR) [INTERNET:15] 是当前正在 Internet 骨干网中部署 的一种方法, 用于实现这种额外效率. CIDR 依赖任意大小网络的部署和路由. 在 这个模型中, 主机和路由器不对互联网中的寻址使用方式作任何假设. Class D (IP Multicast) 和 Class E (Experimental) 地址空间被保留, 尽管这主要是一项 分配策略.
按定义, CIDR 包含三个元素:
o 具有拓扑意义的地址分配, o 能够聚合网络层可达性信息的路由协议, 以及 o 一致的转发算法 ("longest match").
网络和子网的使用现在已属于历史, 尽管用于描述它们的语言仍在当前使用. 它们 已经被更易处理的网络前缀概念取代. 按定义, 网络前缀是地址较高有效端的一组 连续 bit, 用于定义一组系统; 主机号则在这些系统中进行选择. 并不要求整个 互联网统一使用网络前缀. 为压缩路由信息, 将互联网划分为若干寻址域是有用的. 在这样的域内, 有关组成网络的详细信息是可用的; 在域外, 只通告公共网络前缀.
传统 IP 寻址架构使用地址和子网掩码区分主机号和网络前缀. 对于网络前缀, 指出前缀中的 bit 数量就足够了. 这两种表示方式都被广泛使用. 架构上正确的 子网掩码可以使用前缀长度描述来表示. 它们由所有可能 bit 模式中的一个子集 组成, 该子集具有:
o 位于较高有效端的一串连续的一, o 位于较低有效端的一串连续的零, 以及 o 中间没有其他 bit.
路由器应该始终将路由视为网络前缀, 并且应该拒绝与该模型不一致的配置和路由 信息.
IP-address ::= {
使用 CIDR 的一个结果是, 路由表中与地址前缀关联的目标集合可能表现出子集 关系. 描述较小目标集合的路由 (较长前缀) 被称为比描述较大目标集合的路由 (较短前缀) 更具体; 类似地, 描述较大目标集合的路由 (较短前缀) 被称为比 描述较小目标集合的路由 (较长前缀) 更不具体. 路由器转发流量时必须使用最 具体的匹配路由 (最长匹配网络前缀).
2.2.6 IP 组播
IP 组播是 Link Layer 组播向 IP 互联网的扩展. 使用 IP 组播时, 单个数据报 可以被寻址到多个主机, 而无需发送给所有主机. 在扩展情形中, 这些主机可以 位于不同的寻址域中. 这一组主机称为组播组. 每个组播组都表示为一个 Class D IP 地址. 发送到该组的 IP 数据报应以与单播 IP 流量相同的尽力而为交付方式 交付给每个组成员. 数据报发送方本身不需要是目标组成员.
IP 组播组成员关系的语义在 [INTERNET:4] 中定义. 该文档描述主机和路由器如何 加入和离开组播组. 它还定义了一种协议, 即 Internet Group Management Protocol (IGMP), 用于监控 IP 组播组成员关系.
IP 组播数据报的转发通过静态路由信息或组播路由协议完成. 转发 IP 组播数据报 的设备称为组播路由器. 它们可以同时转发 IP 单播, 也可以不转发. 组播数据报 基于其源地址和目标地址共同转发. IP 组播数据包的转发在 Section [5.2.1] 中 有更详细描述. Appendix D 讨论组播路由协议.
2.2.7 未编号线路和网络前缀
传统上, IP 主机或路由器上的每个网络接口都有自己的 IP 地址. 这可能造成稀缺 IP 地址空间的低效使用, 因为它迫使每条点到点链路都分配一个 IP 网络前缀.
为解决这个问题, 许多人提出并实现了未编号点到点线路的概念. 未编号点到点 线路没有与其关联的任何网络前缀. 因此, 连接到未编号点到点线路的网络接口 没有 IP 地址.
由于 IP 架构传统上假定所有接口都有 IP 地址, 这些未编号接口会造成一些有趣 的两难情形. 例如, 某些 IP 选项 (例如 Record Route) 规定路由器必须将接口 地址插入选项中, 但未编号接口没有 IP 地址. 更根本的是 (正如我们将在第 5 章 看到的), 路由包含下一跳路由器的 IP 地址. 路由器预期该 IP 地址会位于路由器 所连接的某个 IP (子)网中. 如果唯一连接是一条未编号点到点线路, 这一假设 当然就被违反了.
为绕过这些困难, 人们设想了两种方案. 第一种方案认为, 由一条未编号点到点 线路连接的两个路由器实际上根本不是两个路由器, 而是两个半路由器, 它们共同 组成一个虚拟路由器. 未编号点到点线路本质上被视为虚拟路由器内部的一条总线. 虚拟路由器的两个半部必须以某种方式协调其活动, 使其行为完全像单个路由器.
这一方案很好地契合 IP 架构, 但存在两个重要缺点. 第一个缺点是, 虽然它能 处理单条未编号点到点线路这一常见情况, 但不容易扩展到处理由路由器和未编号 点到点线路构成的网状结构. 第二个缺点是, 半路由器之间的交互必然复杂且未被 标准化, 实际上排除了使用未编号点到点线路连接不同厂商设备的可能.
由于这些缺点, 本备忘录采用了另一种方案. 该方案曾被多次独立发明, 但最初 可能应归功于 Phil Karn. 在这种方案中, 具有未编号点到点线路的路由器还具有 一个特殊 IP 地址, 本备忘录称之为 router-id. router-id 是该路由器的 IP 地址 之一 (路由器要求至少具有一个 IP 地址). 该 router-id 被当作所有未编号接口的 IP 地址来使用.
2.2.8 值得注意的特殊情况
2.2.8.1 嵌入式路由器
路由器可以是一个独立计算机系统, 专用于其 IP 路由器功能. 另一种方式是, 可以在支持连接到两个或更多网络的主机操作系统中嵌入路由器功能. 最著名的 带有嵌入式路由器代码的操作系统示例是 Berkeley BSD 系统. 嵌入式路由器功能 似乎能让构建网络变得容易, 但它有若干隐藏陷阱:
(1) 如果主机只有单个组成网络接口, 它不应该充当路由器.
例如, 带有嵌入式路由器代码的主机如果无端转发同一网络上的广播数据包
或数据报, 往往会导致数据包雪崩.
(2) 如果一个 (多宿主) 主机充当路由器, 它就受本文档中路由器要求的约束.
例如, 对嵌入式路由器而言, 路由协议问题以及路由器控制和监控问题与
独立路由器一样困难且重要.
Internet 路由器要求和规范可能独立于操作系统变更而变化. 在 Internet 中
运行嵌入式路由器的管理方强烈建议维护并更新路由器代码. 这可能要求具备
路由器源代码.
(3) 当主机执行嵌入式路由器代码时, 它就成为 Internet 基础设施的一部分. 因此, 软件或配置中的错误可能阻碍其他主机之间的通信. 因而, 主机管理员 必须失去部分自主性.
在许多情况下, 主机管理员需要禁用操作系统中嵌入的路由器代码. 因此,
禁用嵌入式路由器功能应该是直接明了的.
(4) 当运行嵌入式路由器代码的主机同时用于其他服务时, 两种使用模式下的操作 和维护要求可能发生冲突.
例如, 路由器 O&M 在许多情况下将由运营中心远程执行; 这可能要求特权
系统访问权限, 而主机管理员通常并不希望分发这种权限.
2.2.8.2 透明路由器
在 Internet 中互连局域网和广域网 (或长途网络) 有两种基本模型. 第一种模型 为局域网分配一个网络前缀, Internet 中的所有路由器都必须知道如何路由到该 网络. 第二种模型中, 局域网共享广域网地址空间的 (一小部分). 支持第二种模型 的路由器称为地址共享路由器或透明路由器. 本备忘录的重点是支持第一种模型的 路由器, 但这并不意味着排除透明路由器的使用.
透明路由器的基本思想是, 位于该路由器后方的局域网上的主机共享位于该路由器 前方的广域网地址空间. 在某些情况下, 这是一种非常有用的方法, 且其限制不会 带来显著缺点.
"前方" 和 "后方" 这两个词表明了这种方法的一个限制: 这种互连模型只适用于 地理上 (以及拓扑上) 有限的 stub 环境. 它要求广域网网络级寻址中存在某种形式 的逻辑寻址. 本地环境中的 IP 地址映射到广域网中的少数 (通常为一个) 物理 地址. 这种映射以与整个广域网中使用的 { IP address <-> network address } 映射一致的方式发生.
在一个广域网上可以实现多宿主, 但如果接口在地理或拓扑上分离, 可能会带来 路由问题. 由于地址混淆, 在两个 (或更多) 广域网上实现多宿主是一个问题.
如果透明路由器无法完全模拟普通广域网服务, 主机从表面上属于同一网络的其他 主机那里看到的行为可能会不同. 例如, ARPANET 使用一种 Link Layer 协议, 当 尝试向离线主机发送数据时, 该协议会返回 Destination Dead 指示. 然而, 如果 ARPANET 和 Ethernet 之间存在透明路由器, ARPANET 上的主机就不会收到针对 Ethernet 主机的 Destination Dead 指示.
2.3 路由器特征
Internet 路由器执行以下功能:
(1) 符合本文档规定的特定 Internet 协议, 包括 Internet Protocol (IP), Internet Control Message Protocol (ICMP), 以及必要时的其他协议.
(2) 接入两个或更多数据包网络. 对于每个连接的网络, 路由器必须实现该网络 要求的功能. 这些功能通常包括:
o 使用所连接网络的帧格式封装和解封装 IP 数据报 (例如 Ethernet 头部
和校验和),
o 发送和接收不超过该网络所支持最大大小的 IP 数据报, 该大小即该网络的
Maximum Transmission Unit 或 MTU,
o 如有需要, 将 IP 目标地址转换为所连接网络适当的网络级地址 (例如
Ethernet 硬件地址), 以及
o 响应网络流量控制和错误指示 (如果存在).
见第 3 章 (Link Layer).
(3) 接收并转发 Internet 数据报. 此过程中的重要问题包括缓冲区管理, 拥塞 控制和公平性.
o 识别错误条件, 并按要求生成 ICMP 错误和信息消息.
o 丢弃 time-to-live 字段已达到零的数据报.
o 必要时对数据报进行分片, 以适配下一网络的 MTU.
更多信息见第 4 章 (Internet Layer - Protocols) 和第 5 章 (Internet
Layer - Forwarding).
(4) 基于其路由数据库中的信息, 为每个 IP 数据报选择下一跳目标. 更多信息见 第 5 章 (Internet Layer - Forwarding).
(5) 通常支持一种 interior gateway protocol (IGP), 以便与同一自治系统中的 其他路由器一起执行分布式路由和可达性算法. 此外, 某些路由器需要支持 exterior gateway protocol (EGP), 以便与其他自治系统交换拓扑信息. 更多信息见第 7 章 (Application Layer - Routing Protocols).
(6) 提供网络管理和系统支持设施, 包括加载, 调试, 状态报告, 异常报告和控制. 更多信息见第 8 章 (Application Layer - Network Management Protocols) 和第 10 章 (Operation and Maintenance).
对于特定路由器产品, 路由器厂商在能力, 复杂性和特性方面会有许多选择. 注意 到 Internet 系统既非同质, 也非完全连接, 可能会有所帮助. 由于技术和地理 原因, 它正在发展为一个全球互联系统, 加上边缘的一圈 LAN. 这些边缘 LAN 越来 越多地变得高度互连, 因而它们不再那么处于边缘, 并且对路由器要求更高.
o 全球互联系统由若干广域网组成, 这些广域网上连接着多个 Autonomous System (AS) 的路由器; 直接连接到该系统的主机相对较少.
o 大多数主机连接到 LAN. 许多组织拥有由本地路由器互连的 LAN 集群. 每个这样 的集群通过一个或多个点上的路由器连接到全球互联系统. 如果只在一个点连接, 则该 LAN 称为 stub network.
全球互联系统中的路由器通常要求:
o 高级路由和转发算法
这些路由器需要高度动态的路由算法, 该算法施加最小处理和通信负担, 并提供 服务类型路由. 拥塞仍不是一个完全解决的问题 (见 Section [5.3.6]). 由于 研究社区正在积极研究这些问题, 预计这些领域会有改进.
o 高可用性
这些路由器需要高度可靠, 提供每天 24 小时, 每周 7 天的服务. 设备和软件 故障可能产生广泛 (有时是全球性) 影响. 一旦发生故障, 它们必须迅速恢复. 在任何环境中, 路由器都必须高度健壮, 并能够在极端拥塞或网络资源故障条件 下运行, 可能以降级状态运行.
o 高级 O&M 特性
Internet 路由器通常以无人值守模式运行. 它们通常由集中监控中心远程操作. 它们需要提供复杂手段, 用于监控和测量流量及其他事件, 并诊断故障.
o 高性能
当今 Internet 中的长途线路最常见的是全双工 56 KBPS, DS1 (1.544 Mbps) 或 DS3 (45 Mbps) 速率. LAN 是半双工多访问介质, 通常为 Ethernet (10Mbps), 较少情况下为 FDDI (100Mbps). 然而, 网络介质技术不断进步, 未来很可能出现 更高速率.
用于 LAN 边缘 (例如园区网络) 的路由器要求在很大程度上取决于本地网络需求. 这些设备可能是高性能或中等性能设备, 可能通过竞争性采购从若干不同厂商处 获得, 并由内部组织 (例如园区计算中心) 运行. 这些路由器的设计应该强调低 平均延迟和良好的突发性能, 同时具备对延迟和服务类型敏感的资源管理. 在这种 环境中, O&M 可能不那么正式, 但并不会因此不重要. 随着网络变得更复杂且互联 程度更高, 路由机制高度动态的需求将变得更加重要. 由于全球互连速度提高, 用户会对本地连接提出更高要求.
随着网络增长, 以及更多网络逐渐老化并开始淘汰旧设备, 路由器与其他厂商路由器 互操作已变得越来越迫切.
即使 Internet 系统并非完全互连, 系统的许多部分也需要具备冗余连接. 丰富的 连接性允许在通信线路和路由器故障情况下仍提供可靠服务, 也可以通过缩短 Internet 路径并提供额外容量来改善服务. 不幸的是, 这种更丰富的拓扑可能使 选择到特定目标的最佳路径变得困难得多.
2.4 架构假设
当前 Internet 架构基于一组关于通信系统的假设. 与路由器最相关的假设如下:
o Internet 是网络的网络.
每台主机都直接连接到某个或某些特定网络; 它与 Internet 的连接只是概念上 的. 位于同一网络上的两台主机使用与它们同远程网络上的主机通信时相同的一组 协议相互通信.
o 路由器不保存连接状态信息.
为提高通信系统的健壮性, 路由器被设计为无状态的, 独立于其他数据包转发 每个 IP 数据包. 因此, 可以利用冗余路径在中间路由器和网络故障时仍提供 健壮服务.
端到端流量控制和可靠性所需的所有状态信息都在主机中实现, 位于传输层或 应用程序中. 因而, 所有连接控制信息都与通信端点共置, 只有当端点故障时 才会丢失. 路由器只通过丢弃数据包或增加网络延迟来间接控制消息流.
请注意, 未来协议发展很可能最终会把更多状态放入路由器. 这尤其可能发生在 组播路由, 资源预留和基于流的转发中.
o 路由复杂性应该位于路由器中.
路由是一个复杂且困难的问题, 应由路由器而非主机执行. 一个重要目标是使 主机软件免受 Internet 路由架构不可避免演进所导致变化的影响.
o 系统必须容忍广泛的网络差异.
Internet 设计的一个基本目标是容忍广泛的网络特征, 例如带宽, 延迟, 数据包 丢失, 数据包重排序和最大数据包大小. 另一个目标是使用仍可用的任何带宽, 对单个网络, 路由器和主机故障保持健壮性. 最终目标是完全开放的系统互连: Internet 路由器必须能够通过多样化的 Internet 路径, 与任何其他路由器或 Internet 主机进行健壮且有效的互操作.
有时, 实现者曾为较不宏大的目标而设计. 例如, LAN 环境通常比整个 Internet 温和得多; LAN 具有较低的数据包丢失和延迟, 且不会对数据包重排序. 一些 厂商已经推出了对简单 LAN 环境足够、但对一般互操作表现很差的实现. 厂商 将这类产品辩称为在受限 LAN 市场中经济可行. 然而, 孤立 LAN 很少能长期 保持孤立. 它们很快会相互连接, 连接到组织范围的互联网, 并最终连接到全球 Internet 系统. 最终, 不完整或低于标准的路由器既不能服务客户, 也不能服务 厂商.
本文档中的要求面向全功能路由器而设计. 其意图是, 完全符合要求的路由器 几乎可用于 Internet 的任何部分.