《计算机网络基础》笔记 7——路由选择协议
0 前言
补了两篇总结,有点习惯了,不再感觉总结文章这么麻烦。继续输出吧,骚年。
1 几个基本概念
1.1 路由算法分类
静态路由选择策略:适合小网络,人工配置即可
动态路由选择策略:适用于大型网络,自适应路由选择
1.2 分层次的路由选择协议
因为互联网规模过于庞大,并且有些单位并不希望内部网络布局和使用的路由协议被外界所了解,所以现在互联网使用分层次的路由选择协议。整个互联网被划分为许多小的自治系统,一个大的 ISP 就是一个自治系统。自治系统(AS,autonomous system)是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。
既然划分出来了自治系统的概念,那么就有了系统内外的区别,内部使用的叫内部网关协议 IGP(Interior Gateway Protocol),如 RIP 和 OSPF;自治系统边界使用的叫外部网关协议 EGP(External Gateway Protocol),用来跨系统传输路由选择信息,如 BGP-4。
2 内部网关协议RIP
RIP,Route Information Protocol,路由信息协议,IGP 中最早被广泛使用的路由选择协议,特点是简单。它是一种分布式的基于距离向量的路由选择协议,其中距离也称为“跳数”,直连网络跳数为 1,非直连网络每经过一个路由器,跳数加 1,RIP 规定一条路径最多包含 15 个路由器,所以 16 即代表不可达。可见 RIP 只是用于小型互联网。
2.1 工作原理:
- 仅和相邻路由器交换信息
- 交换信息为本路由器路由表
- 定时交换
2.2 路由表更新策略:
使用距离向量算法,只选择经过路由器最少的路径,路由表中只记录下一跳路由器地址及途径路由器数。书中更新示例如下:
2.3 协议报文格式如下,使用 UDP 协议传送路由交换信息:
2.4 RIP协议缺点:
好消息传得快,坏消息传的慢,如下示例所示,当某一链路出现故障不通,报文要在路由器之间反复传递,直到路由信息中的距离增加到16,才能明确不可达状态。
3 内部网关协议OSPF
OSPF,Open Shortest Path First,开放最短路径优先,使用分布式的链路状态协议(link state protocol),而不是使用距离向量协议。
3.1 三个特点:
1)向本自治系统中所有路由器发送信息,使用洪泛法(flooding),通过所有输出端口向所有相邻路由器发送信息,而每一个相邻路由器再将收到的信息转发给其相邻路由器。最后,整个区域内的路由器都收到该信息的副本。
2)发送信息是本路由器相邻的所有路由器的链路状态,所谓“链路状态”就是与哪些路由器相邻,以及该链路的度量,这个度量可以是时延、带宽、距离和费用,由网络管理员选择。
3)只在链路状态发生变化时,才会进行路由信息交换
3.2 协议报文格式如下,使用IP数据报进行传送:
报文分类:
- 问候(Hello)分组,用来发现和维持邻站的可达性。
- 数据库描述(Database Description)分组, 向邻站给出链路状态数据库中的所有链路状态项目的摘要信息。
- 链路状态请求(Link State Request)分组,向对方请求发出某些链路状态项目的详细信息。
- 链路状态更新(Link State Update)分组,用洪泛法向全网更新链路状态。
- 链路状态应答(Link State Acknowledgment)分组,
每两个相邻路由器每隔10秒交换问候分组,如果40秒未收到相邻路由器的问候分组,则认为其不可达,更新链路状态数据库。基本操作如下:
对于较大的自治系统,可进行层次结构的区域划分,如下图所示,上层为主干区域(backbone area),下层的为区域:
4 外部网关协议BGP
4.1 为啥不用内部网关协议?
互联网过于庞大,主干网路由器的路由表非常多,计算最短路径太耗时。另外,有的AS还不想让某些AS传送的数据通过,所以外部网关协议应该考虑的是可达性信息交互,如到达某网络可经过某AS。
BGP(Border Gateway Protocol,边界网关协议)采用路径向量路由选择协议,与距离向量和链路状态协议都有很大区别。BGP选择的是一条比较好的路径(不兜圈子),而不是最佳路径。
4.2 连接
每个自治系统选择一个BGP发言人,也就是用来和其他自治系统交互的路由器,其要运行BGP路由协议和自治系统内部网关协议。
网络可达性信息交换例子如下图所示:
4.3 报文分类:
报文格式如下:
BGP 使用 TCP 连接进行报文交换,首先通过发送OPEN报文,请求与其他 BGP 发言人建立邻站关系,当对方接受邻站关系,则发送 KEEPLIVE 保活报文。建立邻站关系的BGP发言人,一般每隔 30s 交换保活报文。
5 路由器组成
讲完了路由选择协议,当然要把运行协议的实体路由器拎出来说道说道。
5.1 路由器的构成
路由器结构如下截图所示,可分为两个组成部分:路由选择部分和分组转发部分。
路由选择部分又可称为控制部分,其核心是路由选择处理机,根据其运行路由选择协议构建路由表,通过与相邻路由器定期交换信息维护更新路由表。
分组转发部分由三部分组成:交换结构、输入端口和输出端口。其中交换结构(switching fabric)又可以称为交换组织,它根据转发表将输入端口收到的分组数据转发到输出端口。交换结构本身也是一种网络,只不过这个网路处于路由器内部。
这里要介绍一下转发表和路由表的关系。路由表总是由软件实现,是多个路由器协同工作的结果,这些路由器根据复杂的路由算法,得出整个网络的拓扑变化,因此可动态改变所选择的路由,再据此构造出路由表。路由表一般仅包含从目的网络到下一跳(IP 地址)的映射,而转发表由路由表而来。转发表可由特殊的硬件实现,包含的是从目的网络到输出端口和某些MAC地址信息(如下一跳的以太网地址)的映射。
输入端口和输出端口的结构如下,如果收到的分组是路由交换信息分组(如RIP或OSPF分组),则将分组送给路由选择处理机处理。如果是数据分组,则查找转发表经交换结构发送到对应的输出端口。为了使交换功能分散化,往往会把复制的转发表放在每一个输入端口(通过独立总线),路由选择处理机会去更新这些转发表副本。这些副本称为“影子副本”,分散化交换可以避免路由器中某一点出现瓶颈(有了转发表副本,转发决策能在每个输入端口本地做出,无须调动路由选择处理器,避免集中式处理)。
5.2 交换结构
如下截图所示,有三种交换结构类型,分别通过存储器、总线和互联网络转发。最早使用的存储器形式,就是用普通计算机做路由器,输入输出端口就是I/O设备。