IP 路由表需要一个建立过程,它的建立过程指的是它的初始化过程。任何路由器启动时,都必须首先获取一个初始路由表。不同的网络操作系统,获取初始路由表的方式不同,总的来说,有三种方式。第一种,路由器系统启动时,从外存读入一个完整的寻径表,长驻内存使用;系统关闭时再将当前路由表(可能经过刷新),写回外存,供下次使用。第二种,系统启动时,只提供一个空表,通过执行显式命令(比如批处理文件中的命令)来填充。第三种,系统启动时,从与本路由器直接相连的各网络地址中,推导出一组初始路由,当然通过初始路由只能访问相连网上的主机。显见,无论哪种情况,初始路由表总是不完善的,需要不断地运行过程中加以补充,这就是路由表的刷新。 RIP 正是用于路由表的维护和刷新, RIP 协议中的路由刷新算法是距离向量算法,它采取的路由表的初始化方式是上述三种中的最后一种。
•;距离向量算法距离向量算法的思想很简单:所有参加 RIP 协议的路由器周期性地向外广播路由刷新报文,主要内容是由很多路由项( entry )组成的路由刷新报文。对路由来说,最主要的内容是目的地址和下一跳地址( next hop )。对动态路由协议来说,为了找到本协议概念中的最佳路由,还必须注重路由的开销( metric )。所以路由项主要包括了目的地址、下一跳地址和路由开销。其他的如路由标记( tag )等内容在讲报文格式时,将具体讲到。
在设计时,每个路由器的另外 RIP 治理了一个路由数据库,该路由数据库为系统中所有可能的信宿包含一个路由项,并为每个信宿保留如下信息:
目的地址:在算法的 IP 实现中,这指的是主机或网络的 IP 地址。
下一跳地址:到信宿的路由中的第一个路由器。
接口:用于到下一跳物理网络。
metric 值:一个数,指明本路由器到信宿的开销。
定时器:路由项最后一次被修改的时间。
路由标记:区分路由为内部路由协议的路由还是外部路由协议的路由的标记。
数据库由与系统直接相连的实体的描述初始化,通过从相邻路由器受到的报文修改维护。
路由器间交换的最重要的信息是修改报文,参加路由维护计划的路由器发送当前存在于实体的描述路由数据库的路由修改报文。仅通过相邻路由器间交换路由信息是可以维护整个系统的最佳路由的,这在接下来的讨论中会逐步得到证实。
距离向量算法总是基于一个这样的事实:路由数据库中的路由已是目前通过报文交换而得到的最佳路由。同时,报文交换仅限于相邻的实体间,也就是说,实体共享同一个网络。当然,要定义路由是最佳的,就必须有衡量的办法,这就用到前面所说的“ metric” 。 RIP 简单的网络中,通常用可行路由所经的路由器数简单地计算 metric 值。在复杂的网络中, metric 一般代表该路由传输数据报的延迟或其它发送开销。
令 D(i,j) 代表从实体 i 到实体 j 的最佳路由的 metric 值, d ( i , j )代表从 i 直接到 j 的开销,因为开销是可加的,算法中最佳路由如此获取表示:
D ( i , i ) =0 , 对所有的 i
D ( i , j ) =MIN[d ( i , j ) +D ( k , j ), 当 i 不等于 k 时
实体 i 从相邻路由器 k 收到 k 到 j 的开销的估计 D(i , j) , i 将 D ( i , j )加上 i 到 k 的开销估计 d ( i , j ), i 比较从所有相邻路由器得到的数值,取得最小数,就得到了它到 j 的最佳路由。
;Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05