路由表的建立算法和有关的刷新协议 (转)

分类专栏: linux/计算机网络 linux/计算机网络 文章标签: 路由表的结构 路由表的刷新算法 VD算法的解析

版权

   在这篇文章中主要解决的就是路由表的建立和刷新机制,那仫什仫是路由表呢?

   路由表就是路由器与其它互联网网络设备上存储的一张二维表,是用来反映网络结构的数据集,是数据在互联网上传输的关键。路由表的功能就是为数据包指明去往某信宿应该采用哪条路径。

 一.路由表的结构

   在了解了路由表的作用之后,那仫一张基本的路由表由哪些条目组成呢?如下图所示:


   1).信宿地址:为目标网络的地址。在查询路由表的过程中,目标网络的IP地址与子网掩码进行按位与操作(就是得到该目标IP的网络号)再与该信宿地址进行匹配。

   2).子网掩码:用于提取目标网络IP地址所对应的网络号,提取方法在信宿地址中已经提到。

   3).下一跳地址:表示数据包在通往信宿的路上必须要走的下一步。可能是下一个路由器也可能是路由器在那个网络中的本地接口。当路由器正好和该信宿在同一个局域网上时,下一跳地址就是路由器在信宿网络上的本地接口。

   4).输出接口:表示路由器将数据包送往下一个路由器或信宿网络,一般是该接口的IP地址。

   5).度量:这个标志位一般用于度量从本设备触发去往信宿的距离,一般是路由器的数目。

   了解了基本的路由表的组成,那仫在linux中的路由表存在哪些字段呢?可以用route命令查看当前路由表的信息


    1).Destination:目的网络地址,与上图结构中的信宿地址匹配。

    2).Gateway:下一跳地址,详细功能见上图结构中的下一条字段分析。

    3).Genmask:是子网掩码。

    4).Iface,是接口地址,与上图中的输出接口匹配。

    5).Flags:U表示次条目有效(可以用于禁用某些条目),G表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经过路由器转发,故下一跳地址处为'*'号。

    在有些时候因为一些特殊原因,我们也可以用主机的IP地址作为信宿地址,这个用主机的IP地址做信宿地址的表项也叫特定主机路由。特定主机路由是给单个主机指定一条特别的路径,可用于安全性和网络测试等目的。

    在上述路由表的最后一行中是default,这是一个必须存在的字段,是路由表中的一个默认路由,主要由下一跳地址和发送接口组成,当目的地址与路由表中其他行都不匹配的时候,就按照缺省路由条目的规定接口发送到下一跳地址。

    在路由表中的默认路由表项所对应的信宿地址和子网掩码都是0.0.0.0,只要路由表中存在默认路由,就数据包就一定会找到下一跳。默认路由的目的是为了进一步隐藏细节,缩小路由表。

    了解了路由表的几个条目之后就让我们来回想一下实际生活中问路的情况是怎仫样的呢?

 帮助记忆的小栗子:

    A问B请问去xxx应该怎仫走?此时B的回复可能有四种情况,情况一:你想去xxx必须先到yyy;情况二:我也不知道,你去问C吧;情况三:你已经到xxx的门口了;情况四:我不知道。

    路由器的功能就是为数据包指明要走的路径,当一个数据包到达的时候查询路由器的路由表就类似实际中的问路。下面就来分析一下上面的几种情况分别对应数据包询问路由器时可能产生的几种结果。。。

    情况一:就是直接给出数据包送往该网络对应的下一跳路由器的地址

    情况二:其实就是当前路由条目的网络号与对应数据包IP的网络号不匹配,于是匹配下一个路由条目,如果都不匹配,则查看缺省的路由条目。

    情况三:在上面提到过特定主机路由,将数据包送往直接相连的信宿机。

    情况四:在数据包询问路由器的过程中是不会存在路由器不知道的情况的,则认为该路由器无效。

 二.路由表的建立算法和刷新机制

   一张路由表的建立和刷新有两种不同的方式:静态路由和动态路由。

    1.静态路由

    静态路由表需要手工配置规定的路由表,在大型网络上手工编辑路由表是一件十分困难的工作,还有可能造成难以管理的冗余路径。

    2.动态路由

    在这种方式下的路由表是动态建立和维护的,不需要手工编辑路由表,适用于大型网络。

    路由表的建立就是路由表的初始化过程,当路由器启动的时候,路由表的建立可以通过从外存中读取一个完整的路由表来完成,也可以根据与本路由器直接相连的网络推到出来。在初始化路由表之后要不断获取网络的最新状态来进行完善和更新路由表,这个过程就叫路由表的刷新过程。

   路由器自动获取路径信息的有两种方法:向量-距离算法,链路-状态算法。

    1.向量-距离算法

    向量-距离算法(vector-distance,简称VD),它的基本思想是:路由器周期性的向与他相邻的路由器广播刷新报文,报文的主要内容是一组从本路由器出发去往信宿网络的最短距离(路由器进行路由选择的原则是最短路径优先原则),各个路由器根据收到的(V,D)报文,按照最短路径优先原则对各自的路由表进行刷新。该算法的路径刷新发生在相邻网关之间,所以(V,D)不一定以广播的形式发送,也可以是组播或者是一对一的发送。(V,D)报文中的V代表"向量",标识从该路由器可以到达的网络或者是主机;D代表距离,表示从该路由器到信宿V的跳数。

     值得注意的是:该算法虽然简单,易于实现,但是它的信息交换量大(当交换路由信息的时候,几乎传输整个路由表),收敛速度慢。所谓的收敛速度慢就是当网络发生变化的时候,路由器不能及时的检测到这种情况,因为变化的扩散和传输需要一定的时间,而其他的路由器在没有获取到这种变化是不能正确的反应网络拓扑的真实情况的。所以该算法不适合那些网络结构频繁变化的或者大型的网络结构。

    2.链路-状态算法   

 链路-状态算法(link-status,简称L-S),也叫最短路径优先(shortest path first SPF)算法,它的主要做法如下:

    1).首先由路由器向相邻路由器发送查询报文,测试和它相邻路由器的链路状态。如果可以收到相邻路由器发回的响应,则说明该相邻路由器和这个路由器之间可以正常通信;

    2).在收到该路由器和其他相邻路由器的链路状态后,还向系统中所有参加最短路径优先算法的路由器发送链路状态报文;

    3).各路由器收到其他路由器发来的链路状态报文后,根据报文中的数据刷新本路由器所保存的网络拓扑结构图。如果链路发生变化,路由器将启用Dijkstra算法生成新的最短路径优先数,并刷新本地路由表;

   下面以一个详细的栗子讲解路由表的建立和刷新的向量-距离算法:


    假设存在上述的网络,网络与网络之间可以互相通信,在下述解释中只画出一个路由表的基本表项:目标网络,下一跳,和度量值,他们的含义在上面已经介绍过。。。

     1.开始时刻R0和R1的路由表都为空;


     2.对地址为x的相邻路由器发来的报文,先修改次报文中的所有项目:把目标网络修改为X的网络号,下一跳为该可以发送消息的路由器,度量值加1

     3.对修改后的报文中的每一个条目,进行以下步骤:

        1).如果原来的路由表中没有该目标网络,则直接将该目标网络的对应信息添加到该路由表中,假如该路由表中没有到达net2的路由,则将net2,R1,1添加到该路由表中

        2).如果原来的路由表中有该目标网络,此时再查看度量值,如果新的连接的度量值小于当前存在网络的度量值则更新该路径,否则忽略该新连接。因为路由器进行路由选择的原则是最短路径优先。

     4.若3分钟还未收到相邻路由器的更新路由表,则把该路由器R1标记为不可达路由器,把度量值置为16。在RIP(路由消息协议)中规定:一条有效路径的长度不能超过15,距离度量为16表示路径不存在,这是为了解决路由环路的问题。

     在这里就分享结束了~~~~

————————————————

版权声明:本文为CSDN博主「CTTCassie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_34328833/article/details/60583183

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容