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