您的位置:首页 > 理论基础 > 计算机网络

网络基础篇——路由报表

2016-07-22 12:14 369 查看
路由表

由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接口发送,其中

最后一条是缺省路由条目。

路由条目

路由表中的一行,每个条目主要由目的网络地址、子网掩码、下一跳地址、发送接口由四部分

组成,如果要发送的数据包的目的网络地址匹配路由表中的某一行,就按规定的接口发送到

下一跳地址。

缺省路由条目

路由表中的最后⼀行,主要由下一跳地址和发送接⼜口两部分组成,当目的地址与路由表中其

它行都不匹配时,就按缺省路由条目规定的接⼜口发送到下一跳地址。

下面是一个路由报表:



这台主机有两个网络接口,一个网络接⼜口连到192.168.10.0/24网络,另一个网络接口连 到

192.168.56.0/24网络。路由表的Destination是目的网络地址,Genmask是子网掩 码,Gateway是

下一跳地址,Iface是发送接⼜口,Flags中的U标志表示此条目有效(可以禁用某些 条目),G标志表

示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地 址是与本机

接⼜口直接相连的网络,不必经路由器转发,因此下一跳地址处记为* 号。

路由表算法建立策略

路由算法

LS算法

采用LS 算法时,每个 路由器必须遵循以下 步骤:

1、确认在物理上与之相连的路由器并获得它们的IP地址。当一个路由器开始工作后,它首先向整个 网络发送一个“HELLO”分组 数据包。每个接收到数据包的 路由器都将返回一条消息,其中包含它自身的IP地址。

2、测量相邻路由器的延时(或者其他重要的网络参数,比如平均流量)。为做到这一点, 路由器向整个网络发送响应分组数据包。每个收到数据包的路由器返回一个应答分组数据包。将路程往返时间除以2,路由器便可以计算出延时。(路程往返时间是网络当前延迟的量度,通过一个分组数据包从远程主机返回的时间来测量。)该时间包括了传输和处理两部分的时间,也就是将分组数据包发送到目的地的时间以及接收方处理分组数据包和应答的时间。

3、向网络中的其他路由器广播自己的信息,同时也接收其他路由器的信息。在这一步中,所有的路由器共享它们的知识并且将自身的信息广播给其他每一个路由器。这样,每一个路由器都能够知道网络的结构以及状态。

4、使用一个合适的 算法,确定 网络中两个节点之间的最佳路由。在这一步中,路由器选择通往每一个 节点的最佳路由。它们使用一个算法来实现这一点,如 Dijkstra 最短路径算法。在这个算法中,一个路由器通过收集到的其他路由器的信息,建立一个网络图。这个图描述网络中的路由器的位置以及它们之间的链接关系。每个链接都有一个数字标注,称为权值或成本。这个数字是延时和平均流量的函数,有时它仅仅表示节点间的 跃点数。例如,如果一个节点与目的地之间有两条链路, 路由器将选择权值最低的链路。

Dijkstra算法

Dijkstra算法执行下列 步骤:

1、 路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示权值。例如,[i, j]是 节点Vi与Vj之间的链路权值。如果 节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。

2、 路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段:

前序字段——表示当前节点之前的节点。

长度字段——表示从源节点到当前节点的权值之和。

标号字段——表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。

3、 路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。

4、 路由器设置一个T节点。例如,如果设V1是源T节点, 路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。

5、 路由器更新与源T节点直接相连的所有暂时性节点的状态记录集。

6、 路由器在所有的暂时性节点中选择距离V1的权值最低的节点。这个 节点将是新的T节点。

7、如果这个节点不是V2(目的节点),路由器则返回到步骤5。

8、如果节点是V2, 路由器则向前回溯,将它的前序节点从状态记录集中提取出来,如此循环,直到提取到V1为止。这个 节点列表便是从V1到V2的最佳路由。

链路向量选路算法

链路状态算法(也称 最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。

距离向量算法

距离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态 算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 路由表