第四章 互联网的路由选择协议

一. 理想的路由算法

1)算法必须是正确的和完整的:沿着各路由表所指引的路由,分组一定能够最终到达目的网络和目的主机。
2)算法在计算上应该简单:路径选择计算,不应使网络通信量增加太多的额外开销。
3)算法能够适应通信量和网络拓扑的变化,也就是自适应性。当网络中的通信量发生变化时,算法能自适应的改变路由以均衡各链路的负载,当某个或某些节点、链路发生故障,不能工作,或者修理好了再投入运行时,算法也能及时的改变路由。也成为稳健性。
4)算法应具有稳定性。当网络通信量和网络拓扑相对稳定的情况下,路由算法应收敛于一个可接受的解,而不应使得出的路由不停的变化。
5)算法应是公平的。路由算法应该对所有用户都是公平的。例如,若仅仅使某一对用户的端到端延迟最小,但不考虑其他的广大用户,这就明显的不符合公平性的要求。
6)算法应是最佳的。路由算法应该能够找出最好的路由,使得分组平均延迟最小,而网络的吞吐量最大。虽然我们希望得到 “最佳” 的算法,但是,对某些网络,网络的可靠性有时比最小的分组平均实验或最大吞吐量更加重要。因此,所谓最佳只能是相对于某一种特定要求下得出的较为合理的选择而已。

路由选择是一个非常复杂的问题,需要所有节点共同协同工作。从路由算法是否随网络的通信量或拓扑自适应的进行调整来划分,可分为静态路由选择协议动态路由选择协议

二、 分层次的路由选择协议

互联网采用的主要协议是自适应的(即动态的)、分布式路由选择协议。

1)分层的原因:

  • 互联网的规模非常大。如果让所有的路由器知道所有的网络怎么到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网通信链路饱和。
  • 许多单位不愿意外界了解自己单位的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望能够连接在互联网上。

2)如何分层
整个互联网通常被划分为许多较小的自治系统,自制系统是在单一技术下的一组路由器,这些路由器使用一种自治系统内部的路由选择协议和共同的度量。一个自治系统对其他的自治系统表现出的是 一个单一的和一致的路由选择策略。

三、路由选择协议的分类

划分的边界:是否属于同一个自治系统。

1)内部网关协议:即在一个自治系统内部使用的路由选择协议,而这与在互联网中的其他自治系统选用什么路由选择协议无关。目前,这类协议用得最多,比如,RIP 和 OSPF 协议。

2)外部网关协议:若源主机和目的主机处在不同的自治系统中(这两个自治系统可能使用不同的内部网关协议),当数据传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中,这样的协议被称为外部网关协议 EGP。使用的较多的外部网关协议为 BGP-4。

内部网关协议(Interior Gateway Protocol,IGP,Interior Router Protocol,IRP)
外部网关协议(External Gateway Protocol,EGP,External Router Protocol,ERP)

四、内部网关协议

  1. RIP (Routing Information Protocal)路由信息协议(分布式路由协议)
    RIP 协议是内部网关协议中最先得到广泛应用的协议。
    1)原理
    RIP协议要求每个路由器都需要维护从它自己到其他每一个目的网络的距离标记
    距离的定义:路由器到直接连接的网络的距离定义为 1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数 +1。这个距离也被称为 “跳数”
    RIP 协议允许一条路径最多只包含 15 个路由器,因此距离等于 16 时相当于不可达。可见,RIP 只适用于小型互联网

2)缺陷

  • RIP 不能在两个网络之间,同时使用多条路由。它会选择一条具有最少路由器的路由,即最短路径,哪怕存在另一条高速(低延迟),但路由器较多的路由。
  • 当网络出现故障,需要经过较长的时间才能传送到其他路由器。

3)特点

  • 仅和相邻路由器交换信息。
  • 路由器交换的信息是当前路由器知道的全部信息,即自己现在的路由表。
  • 按固定的时间间隔交换路由信息。

4)距离向量算法
对每一个相邻路由器发过来的 RIP 报文,进行如下步骤:

  • 对地址为 X 的路由器发来的 RIP 报文,先修改次报文中的所有项目:把下一跳字段中的地址改为 X,并把所有 “距离” 字段的值 +1,每个项目都有三个关键数据,即到达的目的网络 N,距离是 d,下一跳路由器是 X。
  • 对修改后的 RIP 中的每一个项目,进行一下判断
    -添加替换的情况:① 原本没有该目的网络;②有该目的网络,但是,新的更近。③ 有目的网路,下一跳也相同,但是,这个更新。
  • 不修改情况:① 有该目的网络,下一跳不同,且原本的更短。

若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器。

上述基于距离算法 Bellman-Ford 算法。

  1. OSPF 开放最短路径优先协议
    它是为了克服 RIP 的缺点,在1989年开发出来的。OSPF 原理很简单,但是,实现起来很复杂。
    开放表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
    最短路径优先是因为使用了 Dijkstra 提出的最短路径算法 SPF。
    OSPF2 已经成为了互联网标准协议。

OSPF 是使用分布式的 链路状态协议,而不是像 RIP 那样的距离向量协议。

1)OSPF 的三个要点。

  • 向本自治系统中 所有路由器 发送信息。
  • 发送的信息就是与本路由器 相邻的所有路由器的链路状态
  • 只有当 链路状态发生变化 时,路由器才向所有路由器用洪泛法发送此信息。

所有路由器之间频繁地交换链路状态信息,因此,所有的路由器最终都能建立一个 链路状态数据库,这个数据库实际上就是 全网的拓扑结构图。这个拓扑结构图在全网范围内是 一致的

OSPF 的 更新过程收敛得快 是其重要的优点。

为了让 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做 区域。(一般一个区域内的路由器数量不超过 200 个)。

五、外部网关协议

  1. 出现的原因
    1)互联网的规模太大,使得自治系统之间的路由选择非常困难。
  • 主干网上的路由器必须对任何有效的 IP 地址都能在路由表中找到匹配的网络。目前在互联网上的路由器中,一个路由表的项目数早就超过了 5 万个网络前缀。使用链路状态协议通信量太大。Dijkstra算法计算最短路径花费的时间也太长。
  • 各自治系统运行自己的内部路由选择协议,并使用本自治系统指明的路径度量,因此,当一条路径通过不同自治系统时,要想计算出有意义的代价不太可能。比如,一个自治系统内 1000 表示较长的路由,另一个自治系统内,1000 表示不可达的坏路由。
    2)自治系统之间的路由选择必须考虑有关策略。
  • 互联网的网络性能相差很大,根据最短距离计算出来的路径可能并不适合。比如,这些链路可能代价很高,很不安全等。
  • 可能最短路径为经过一个自治系统,然而,该自治系统不愿意让其他数据包通过。
  • 可能部分自治系统更加愿意为付费的流量提供服务。
  • 其他的路由选择策略可能包括,政治、安全或经济方面的考虑。比如,我国国内的站点在互相传送数据时,不应该过国外兜圈子。特别是可能对我国的安全有威胁的国家。
  • 还有可能有些地址必须顺序经过才行。
  1. 路由原理
    BGP 路由采用类似于 OSPF:
    1)BGP 首先通过 OPEN 报文用来与相邻的另一个 BGP 发言人建立关系,是通信初始化。
    2)UPDATE 报文,用来通告某一路由器的信息,以及列出要撤销的多条路由。
    3)KEEPLIVE 报文,用来通告某一路由器的信息,以及列出要撤销的多条路由。
    4)NOFICATION 报文,用来发送检测到的差错。

各个 BGP 路由通过交换其连接信息,来建立全局的网络拓扑图,然后,根据策略寻找路径,进行转发。

BGP 协议通信的单元是自治系统,而不是节点。
每个自治系统需要通过 BGP 发言人对外进行通信。一个自治系统可能包含多个 BGP 发言人。

你可能感兴趣的:(第四章 互联网的路由选择协议)