文章内容概览
在之前的文章中有理解到跨设施传输时,须要借助路由表来晓得数据报下一跳的 IP
在路由表中有两列重要的信息,别离是:目标 IP 地址 和下一跳 IP 地址,这两个 IP 造成映射的关系。在前边理解数据报转发时,都是间接应用的路由表,这样就会存在几个疑难
路由表中的下一跳地址是怎么来的?
下一跳地址是惟一的吗?
下一跳的地址是最佳的吗?
路由器这么多,他们之间是怎么协调工作的?
这些问题就是网络层路由须要解决的问题,其实也就是须要一个好的 算法 去解决这些问题。所以,理解网络层的路由就是理解里边的一些算法
在前边的文章中屡次用到的一个网络拓扑,在这个拓扑中有计算机、路由器、小型网络、中型网络、大型网络
这个图其实就是现实生活中互联网的缩略图,它能够主观的形容事实世界中的互联网。然而,在学习其中的算法时,这个图并不能直观的表白咱们所须要解决的问题,因而,在理解里边的算法时,就把它转化成计算机容易了解的数据结构,所以,这个网络拓扑,通常会将这个网络拓扑转化为图来进行形容
下边这张图是一个简略的网络拓扑转化而来的,其中有 A、B、C、D、E、F 这六个顶点和若干条边。每个顶点示意一个网络或路由器或计算机。每一条边示意一条网络门路。比方从 A 到 E 就有很多条门路能够走,在事实网络中也是这样的。所以,该图就能够十分主观的示意现实生活中的网络
如果把互联网形象成一张图的话,那么,路由算法 实际上就是 图论算法。然而,路由算法又不仅仅是图论算法,因为互联网是非常复杂的,比方,网络常常产生抖动,或网络呈现故障。这就会导致图会实时的变动。因而,路由算法,实际上要比图论算法简单很多
一个现实的路由算法有以下特点:
- 算法是 正确的 、 残缺的(也就是说,根据该算法,数据能够正确的、残缺的达到目的地)
- 算法在计算上应该尽可能的 简略(因为网络中的设施切实太多,因而互联网是非常复杂的且宏大的。如果在宏大的互联网中运行简单的算法的话,是不可取的)
- 算法能够 适应网络中的变动(因为网络中的状态是实时发生变化的,比方在某一刻,一个路由器产生了故障,或者光纤或电缆断了)
- 算法是 稳固 和偏心 的(稳固就是,即便一个设施呈现故障,也不会影响到别的网络或设施。偏心就是,算法对每一个设施 (计算机、路由) 都是偏心的,不会因为设施的不一样,而导致转发的门路不一样)
在前边提到了:
- 互联网的规模是宏大的
- 互联网环境是非常复杂的
因而为了让路由算法简略一些,也人为的对互联网进行了解决。对互联网进行了划分,这其中就蕴含一个十分重要的概念:自治零碎(Autonomous System,简称 AS)
- 一个自治零碎(AS)是处于一个管理机构下的网络设备群(管理机构:能够是一个国家、一个城市、一个公司)
- AS 外部网络自行治理,AS 对外提供一个或多个出入口(AS 内部的设施不直接参与外部的治理,如果外部设备须要对 AS 进行拜访的话,通过 AS 提供的一个或多个出入口进行拜访)
在之前的文章中有对网络档次进行了如下的划分
理解了 AS 之后,就能够晓得,其实每一个骨干 ISP,都能够了解成骨干 AS,每个地区 ISP,都能够了解成地区 AS。理解了自治零碎 AS 的概念之后,就能够把路由算法分为两个档次:
- 运行在自治零碎外部路由的协定称为:外部网关协定(RIP、OSPE)
- 运行在自治零碎内部路由的协定称为:内部网关协定(BGP)
能够通过一个图示了解外部网关协定和内部网关协定
假如有一个 AS1(可能是一个公司的网络),有一个 AS2(可能是一个学校的网络),当一个公司和一个学校进行互相拜访时,他可能就是通过内部网关协定进行路由的
在疾速变动的技术中寻找不变,才是一个技术人的外围竞争力。知行合一,实践联合实际