在控制平面我们关注的是,路由器转发报文的路径是怎么样的。也就是如何在路由器中配置转发表。配置转发表有一下两种方式:
这里我们只涉及传统的路由控制方法,不涉及 S D N SDN SDN。下面我们先讲两种传统的路由选择算法,然后再讲在因特网路由选择协议** O S P F OSPF OSPF和 B G P BGP BGP**。
根据执行算法需不需要路由器所在网络中的所有的链路信息,可以将算法分为集中式和分散式两类:
这两个算法在数据结构哪里学过,比较容易理解。
因为在全球有很多路由器,不可能把全部的路由器一起的运行路由选择算法,这样很浪费时间。同时每一个 I S P ISP ISP通常希望按照自己的想法配置路由器,如选择 I S P ISP ISP内部的路由选择算法,或对外部隐藏内部的路由器组成。
所以通过 I S P ISP ISP我们可以把全球的网络划分为多个自治系统(AS),每一个AS内部统一运行自己的路由选择协议。通常一个 I S P ISP ISP内部的路由器和链路构成一个AS。不过有些比较大的 I S P ISP ISP将它的内部分成多个互联AS。每一个AS有一个唯一的AS号(ASN),ASN由 I C A N N ICANN ICANN区域注册机构所分配。
在一个AS的内部,路由器彼此拥有对方的信息,运行自治系统内部路由选择协议。而在AS之间,运行自治系统间路由选择协议。下面分别介绍这两种协议。
O S F P OSFP OSFP是一种链路状态协议,使用链路状态和 D i j k s t r a Dijkstra Dijkstra最低开销路径算法。在使用 O S F P OSFP OSFP的时候,路由器使用 O S F P OSFP OSFP报文向AS内部的广播路由选择信息。每当链路发生变化,路由器就会广播链路状态信息。即使链路状态不发生变化,路由器也要周期性的广播链路状态信息,这样可以使链路状态算法具有更好的健壮性。 O S F P OSFP OSFP报文直接由 I P IP IP承载,对 O S F P OSFP OSFP其上层协议的值为89。
O S F P OSFP OSFP的优点有一下几个方面:
在AS内,我们使用的是 O S F P OSFP OSFP路由选择协议。在AS之间,我们使用 B G P BGP BGP路由选择。
要运行 B G P BGP BGP,要经过两个阶段:
其实每个路由选择算法都需要经过个两个阶段。下面依次介绍这两个阶段
在 B G P BGP BGP中,路由器通告的不是目的地址,而是一个前缀,前缀是一个子网或子网集合。所以在路由器中具有 ( x , I ) (x,I) (x,I)的表项,其中 x x x是一个前缀(例如156.235.123/24
), I I I是该路由器的接口之一。
B G P BGP BGP在通过前缀时,会在里面包含一些** B G P BGP BGP属性**,比较重要的有两个 A S − P A T H AS-PATH AS−PATH和 N E X T − H O P NEXT-HOP NEXT−HOP。
举个例子:
如图,要将AS3的前缀 x x x通告给AS1和AS2,总的来看,就是AS3通告AS2,然后AS2通告AS1。
上图AS2中知到的路由情况为:
A S − P A T H AS-PATH AS−PATH:AS3 x
, N E X T − H O P NEXT-HOP NEXT−HOP:路由器3a
最上面接口 I P IP IP地址。
AS1知到的路由情况为:
A S − P A T H AS-PATH AS−PATH:AS2 AS3 x
, N E X T − H O P NEXT-HOP NEXT−HOP:路由器2a
最左面接口 I P IP IP地址。
在 B G P BGP BGP中每对路由器通过使用179
端口的半永久 T C P TCP TCP连接交换路由选择信息,每条直接相连以及所有通过该连接发送的 B G P BGP BGP报文,称为 B G P BGP BGP连接。跨越两个AS的 B G P BGP BGP连接称为外部 B G P BGP BGP,在AS之内的叫做内部 B G P BGP BGP。注意:内部 B G P BGP BGP并不总是与物理链路相对应。下图是上面那张图的对应的 B G P BGP BGP连接。
那么你现在可能有疑问, A S − P A T H AS-PATH AS−PATH是在什么地方被添加的呢?
答:在网关路由器添加,也就是在外部 B G P BGP BGP添加。例如AS2想AS1通告时, A S − P A T H AS-PATH AS−PATH在路由器2a
处添加上AS2
。
有两种比较常用的 B G P BGP BGP路由选择算法:一是烫手山芋路由选择算法(书上的是热土豆路由选择,是直接从英文翻译过来的,不过符合中文俗语翻译为烫手山芋应该更好),二是比较综合的路由选择算法,下面分别描述。
1. 烫手山芋路由选择
当一个节点要发送报文时,他选择的路径是从他自己到网关路由的最短的路线。步骤如下:
2. 路由选择算法
在实际情况中,我们使用的路由选择算法选用了好几个特征,通过特征的先后顺序来选择路径。
使用 B G P BGP BGP可以自然地支持 I P IP IP任播。当某台 B G P BGP BGP路由器收到该 I P IP IP地址的多个路由通告,他将这些通告处理为对相同物理地址提供的不同路径(实际上,可以处于不同的物理地址)。举个例子,假设城市A和B有两台服务器有相同的 I P IP IP地址,于是我的电脑收到了这两个服务器的 B G P BGP BGP通告,但是我的电脑并不知到这两个通告来字不同的物理地址。 I P IP IP任播被 D N S DNS DNS系统广泛用于将 D N S DNS DNS请求指向最近的根 D N S DNS DNS服务器。根 D N S DNS DNS服务器有13个 I P IP IP地址,但是对应于这些地址,一个地址有多个 D N S DNS DNS服务器。
I C M P ICMP ICMP报文有一个类型字段和一个编码字段,并且包含引起该 I C M P ICMP ICMP报文首次生成的 I P IP IP数据报的首部和前8个字节(使发送方可以确定引发该报文差错的数据报)。
一般来说: I C M P ICMP ICMP有两种格式:询问报文和差错报告报文。
通过类型和编码的不同组合,有许多不同种类的 I C M P ICMP ICMP报文,如下图
更加具体的内容可见维基百科。