路由(选择)协议
基本概念
理想的路由算法
- 算法必须是正确的和完整的。
- 算法在计算上应简单。
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
- 算法应具有稳定性。
- 算法应是公平的。
- 算法应是最佳的。
关于“最佳路由”
不存在一种绝对的最佳路由算法。
所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择。
实际的路由选择算法,应尽可能接近于理想的算法。
路由选择是个非常复杂的问题
它是网络中的所有结点共同协调工作的结果。
路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
分类:
从路由算法的自适应性考虑
-
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
-
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
分层次的路由选择协议
互联网采用自适应的e,分布式路由选择协议。
互联网采用分层次的路由选择协议。
分成两个层次:
- 自治系统AS之间的路由选择也叫做域间路由选择 (interdomain routing)
- 在自治系统内部的路由选择叫做域内路由选择 (intradomain routing) 。
原因:
(1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
(2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
自治系统 AS
自治系统 AS (Autonomous System) 的定义:
在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,
但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
大类路由选择协议
- 内部网关(路由)协议IGP :具体的协议有多种,如 RIP 和 OSPF 等。
- 外部网关(路由)协议EGP :目前使用的协议就是 BGP。
三种路由协议比较
- RIP 是一种分布式的基于距离向量的内部网关路由选择协议,通过
广播UDP
报文来交换路由信息。 - OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP 或TCP),而是直接采用
IP
。 - BGP 是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用
TCP
。
RIP协议(小型网络)
要求:
- 适用于小型网络,距离最短优先, 距离短,16就为不可达
- www how(要求计算)
路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。
RIP 是一种分布式的、基于距离向量的路由选择协议,是因特网的标准,最大的优点是简单。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的 唯一的最佳距离记录(即一组距离)。
距离/跳数(hop count):就是指从源端口到目的端口所经过的路由器的个数,经过一个路由器+1。特别的从路由器到直接连接的网络距离为1。
RIP 允许一条路径最多只能包含 15 个路由器,因此最大距离为16。距离为16 表示网络不可达。
\(to\)可见 RIP 只适用于小型互联网。
注:
-
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
因此哪怕存在一条高速(低时延)但路由器较多的路由,RIP 依旧选择一个具有最少路由器的路由(即最短路由)。 -
RIP 不能在两个网络之间同时使用多条路由。
三个特点
路由选择协议的三个基本问题:和谁交换,交换什么,什么时候交换
-
仅和相邻路由器交换信息。
-
交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
-
(1)按固定的时间间隔交换路由信息,例如,每隔 30 秒。
(2)当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
路由表的建立
路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为 1)。它的路由表是空的。
以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。,这个过程被称为收敛(在自治系统中所有的结点都得到正确的路由选择信息的过程。)
4.怎么记录交换的信息
距离向量算法
距离向量算法的基础就是 Bellman-Ford 算法(或 Ford-Fulkerson 算法)。
Ford算法要点:
- 设X是结点 A 到 B 的最短路径上的一个结点。
- 若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。
距离向量算法过程: 路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目: 把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
- 若项目中的目的网络不在路由表中,则把该项目加到路由表中。
- 否则
若下一跳字段给出的路由器地址相同:则把收到的项目替换原路由表中的项目。
若下一跳字段给出的路由器地址不同:若收到项目中的距离小于路由表中的距离则更新; 否则,什么也不做。
(3) 若 3 分钟
还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16。
(4) 返回。
【例4-5】已知路由器 R6 有表 4-9(a) 所示的路由表。现在收到相邻路由器 R4 发来的路由更新信息,如表 4-9(b) 所示。试更新路由器 R6 的路由表。
例
RIP报文
RIP是网络层协议,封装在UDP报文
一个RIP报文最多包括25个路由,如果超过,需要发送多条RIP报文
RIP特点
RIP特点:RIP协议好消息传得快,坏消息传得慢。即:
- 正常过程RIP 协议的收敛过程较快。
- 当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
坏情况传输过程如下: 当故障时网络1故障时
-
R1说:“我到网1的距离是16(表示无法到达), 是直接交付。”
但R2在收到R1的更新报文之前,发送了原来的报文, 因为这时R2,并不知道R1,出了故障。 -
R1收到R2 的更新报文后,误认为可经过R2到达网1,于是更新自己的路由表。说:“我到 网1的距离是3,下一跳经过R2”。
然后将此更新信息发送给R2。 -
R2以后又更新自己的路由表为“1,4,R1”,表 明“我到网1距离是4,下一跳经过R1”。
-
这样不断更新下去,直到R1 和R2到网1的距离都增大到 16 时,R1和R2才知道网1是不可达的。
OSPF协议(大型网络)
- 大型网络,最短路径优先,多条路由,负载均衡
- wwww
- 再划分区域
链路状态:每个路由器自己每个接口的IP和度量(权值,metric)
开放最短路径优先OSPF协议:
- “开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;
- “最短路径优先” 是因为使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。
三个特点
路由选择协议的三个基本问题:和谁交换,交换什么,什么时候交换
-
使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。
广播
\(\to\) 最终整个区域内所有路由器都得到了这个信息的一个副本。 -
发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价一一费用、距离、时延、带宽等)。
-
只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
OSPF其他特点
-
每隔30min,要刷新一次数据库中的链路状态。
-
由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。
因此当互联网规模很大时,OSPF 协议要比距离向量协议RIP好得多。 -
OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
为什么OSPF收敛速度快?
因为它只是刷新一下链路状态,得知其是否连通,不需要和RIP一样进行对照,而是直接通过Dijilstra算法来自己算出路径。
OSPF区域
BGP协议(外部网关协议)
BGP 是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP
。
路由选择协议的三个基本问题:和谁交换,交换什么,什么时候交换
- 与其他AS的邻站BGP发言人交换信息。
- 交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
- 发生变化时更新有变化的部分。
- 外部
- 分为EB GP(之间) 和 IBGP(内部)
- 路由经过的自制系统序列