路由协议和体系结构/转发和路由
外观
路由是确定数据包的“最佳”路径并将其发送到目的地的过程
- 路由算法:它负责决定传入数据包要采取的路径
- 它确定每个节点可到达的目标;
- 它以与其他节点协作的方式计算最佳路径(根据某些标准);
- 它在每个节点中存储本地信息;
- 转发算法:它负责为每个传入数据包决定要采取的路径
- 它在路由算法计算和存储的本地信息中执行查找;
- 它沿着最佳路径发送传出数据包。
路由协议分为两类
- 内部网关协议 (IGP):它包括在域内路由(例如 RIP、IGRP、OSPF)中使用的协议,以在自治系统内传播路由信息[1];
- 外部网关协议 (EGP):它包括在域间路由(例如 BGP)中使用的协议,以在自治系统之间传播路由信息。
根据 OSI 模型,路由是网络层特有的功能,但它可以在不同层实现
- 路由通过 IP、X.25 和 OSI/Decnet 等协议完全在网络层实现;
- 一些路由算法是在数据链路层实现的,通过帧中继和 ATM 等协议以及交换式局域网中的网桥实现。
现代路由器实现两个表
- 路由信息库 (RIB):它是经典的路由表,列出了网络中可到达的所有目的地;
- 转发信息库 (FIB):它是一个经过优化的路由表,可以加快数据包转发速度
- 专用硬件:TCAM 能够存储其可能值为 0、1 和“不关心”的位 → 网络掩码集成在网络地址本身中:聚合部分中的每个位的值为“不关心”;
- 缓存:FIB 仅包含最后使用的目标地址;
- 附加信息:输出端口、目标 MAC 地址。
- 每个节点都由一个网络地址标识。
- 每个数据包都包含目标节点的地址。
- 每个节点都包含可到达的目标地址列表及其相应的下一跳。
当一个数据包到达时,节点使用它包含的目标地址作为转发表中的“键”来查找下一跳。
- 优点
它是一种简单高效的算法,因为它无状态:数据包转发独立于其他数据包的转发进行,也就是说,一旦节点转发了一个数据包,它就会忘记它。
- 缺点
无法根据流量类型为同一个目的地选择不同的路由,以实现服务质量。
- 采用
无连接协议(如 IP)通常使用这种转发算法。
- 两个节点之间的每条路径都由一个 PathID(“颜色”)标识。
- 每条路径包含一个标签,对应于要遵循的路径的 PathID。
- 每个节点都包含 PathID 列表及其相应的输出端口。
当一个数据包到达时,节点使用它包含的标签作为转发表中的“键”来查找输出端口。
- 优点
可能存在通往同一个目的地的多条路径 → 可以根据流量类型选择最佳路径以实现服务质量。
- 缺点
PathID 是全局
- 路径“着色”必须在整个网络的所有节点上保持一致;
- 可扩展性:网络中所有节点对之间的可能路径数量非常大 → 编码每个 PathID 需要很多位,而且很难找到一个尚未使用的标识符。
每个节点中的转发表包含输入端口标签和输出端口标签之间的映射,包括如下条目
<输入端口> <输入标签> <输出端口> <输出标签>
当一个数据包到达时,节点使用它包含的标签和输入端口作为转发表中的“键”来查找输出端口,并将数据包中当前的标签替换为输出标签。
- 优点
- 可扩展性:要遵循的路径的 PathID 不是全局的,而是由每个节点本地决定,并且它只需要在链路端点之间的节点之间保持一致
- 标签由更少的位组成,因为它们需要编码更少的路径;
- 每个节点只需要知道经过它的路径的标签 → 转发表更小;
- 效率:标签交换与 IP 中的“最长前缀匹配”等转发算法相比速度更快。
- 采用
标签交换被以下内容使用
- 电信衍生的网络技术(例如 X.25、帧中继、ATM):标签交换允许服务质量,这是电话运营商世界认为的重要功能;
- MPLS:在骨干网中,路径数量相当有限且相当稳定,因为它们不是端到端创建的,而是在 MPLS 云中创建的,网络拓扑结构的变化频率较低,并且与边缘相比,流量更加规律。
当主机想要生成并发送第一个数据包到目的地时,它如何请求设置新路径以及它应该使用哪个标签?
- 手动设置
路径及其相应的标签由网络管理员手动设置。
缺点
- 人为配置错误的风险很高;
- 故障时没有自动重新路由;
- 不适合用户经常请求新路径的高度动态网络。
- 按需设置
需要进行路径设置的信令阶段,即在每个节点中准备标签,之后主机将学习要使用的标签,然后它可以发送第一个数据包到目的地。
优点
服务质量更简单
- 可以根据请求设置的源设置不同的路径(例如,校长可以拥有一个比研究人员更优先的路径);
- 可以在信令数据包中包含指定为路径保留多少带宽的信息。
缺点
- 复杂性:信令是通过专用电路上的另一种转发技术(例如按网络地址路由)实现的 → 复杂性增加,因为网络现在必须管理两种不同的转发技术;
- 可扩展性:如果路径很长并且要经过的节点数量很多,则信令阶段可能持续时间过长,尤其是在像网络世界中通信会话非常短的情况下。
发送主机将要遵循的整个路径写入数据包本身以到达目的地。
- 优点
网络中的内部路由器非常简单。
- 缺点
发送主机必须知道网络拓扑结构,并且必须直接与其他主机交互才能计算路径 → 这打破了用户应该只发送数据包,而网络负责将数据包转发到其目的地的范式。
- 采用
IPv4 和 IPv6 考虑了一个影响数据包路径的选项。
- 按网络地址路由
- + 简单性: 无需设置,无状态
- + 可扩展性(转发): 无“每会话”状态(无状态)
- − 效率: 大数据包报头
- − 可扩展性(路由): 非常大的路由表
- − 可靠性: 难以保证服务
- − 多路径: 它不支持两个实体之间的多条路径
- 标签交换
- + 可扩展性(路由): 减少路由表
- + 效率: 小数据包报头
- + 服务保证: 可以保证服务(路径预订)
- + 多路径: 允许两个实体之间存在多条路径
- − 可扩展性(设置): 路径设置数据包的处理(在“短”会话中至关重要)
- − 可扩展性(转发): “每会话”状态(服务质量所需)
- − 复杂性: 路径设置(路径设置过程、路径设置数据包的临时转发)
- 源路由
- + 效率(路由器): 中间系统极其简单
- − 效率(源): 端系统应担心计算路径