计算机网络DV和LS

前言(DV和LS的引导):
我们知道网络层的核心设备就是路由器,而核心功能就是路由和转发,然而路由器的转发依赖于转发表(路由表),那么转发表里面的内容是怎么来的呢?
前面也说过路由分为静态路由和动态路由,这里不再多提,那么动态路由的实现就是依靠不同协议下的路由算法。
一般动态路由的路由表里面会存有当前最合理的路由地址,那么这些地址如何确定呢?
路由算法来确定去往目的地址的最佳路径。
还是再说一说静态路由和动态路由吧(会的同学不需要再看了)
静态路由:指的是人工配置路由表,可以说是路由和转发不需要涉及算法,毕竟是人工配置的,这个方法不是很灵活,因为当网络拓扑改变或者链路费用改变的话,不能够实时更新路由表;但是需要注意的一点是,静态路由产生的路由表要比动态路由依靠算法生成的路由表的优先级别高,毕竟是人设的。
动态路由:指的是无需人工配置路由表,依靠算法动态刷新产生适应当下的路由表,这依赖于路由算法来实现。

现在大家应该明白路由算法的地位了
那么这类算法的分类又是什么呢?从面对的广度来说可以分为下面两类:
·面对全局信息
这样的路由算法要求每个路由器掌握完整的网络拓扑和链路费用信息
代表:链路状态路由算法(LS)
·面对分散信息
这样的算法只要求路由器掌握物理相邻的路由器及链路费用
大家通过邻间关系进行信息交换,运算迭代出完整的内容
代表:距离向量路由算法(DV)
//虽然面对的广度不同,但是最终的目的是相同的,都是为了实现生产最佳的路由策略


我们先从面对全局信息下手LS(链路状态算法):(敲黑板~这里集中注意)
全局信息的方式要求每个路由器先要掌握完整的网络拓扑和链路费用,那么怎么样才能获取这些内容呢?
在实践中,这是通过让每个节点向网络中所有其他路由器广播状态分组来完成,其中每个链路分组包含它所连接的链路的特征和费用,这经常用链路广播算法来完成。
下图详细解释了获取全局信息的过程:
在这里插入图片描述
如果大家懒得看上面的内容,那我就简单说一下:
①该路由器获取邻接路由器的IP地址,然后向整个网络发送分组数据包,接收到数据包的路由器会返回消息,其中包含自身的IP地址。
②获取相邻路由器的延时,路由器向整个网络发送响应分组数据包,接收到数据包的路由器返回一个应答分组数据包,路由器就可以根据往返时间/2计算出单程时延(这个有点像Ping一台主机,但是不一样哦~)
③向网络其他路由器广播自己的信息,并接收其他路由器的信息,到这里,每个路由器都能知道整个网络的架构及状态了。[由此可以间接看出,这种方法对于路由器来说需要大量的内存空间才行]
//注意上面的内容只是为了让每个路由器掌握全局信息,仅此而已
接下来,既然知道全局内容了,就可以计算最佳路径了,其实接下来选择一个求最短路径的方法就可以了[这里的“最短”不单单指物理距离上的最短,还可以以价值为标准]
在LS算法中,多采用的是迪杰斯特拉算法这个算法眼熟吧,数据结构讲过了,这里我也不再多说,只献图一张,有问题自己百度这个算法原理吧
在这里插入图片描述

综上我们可以总结一下LS算法的过程:
①想办法让每个路由表获得全局信息(画地图,找地图的过程)
②全局信息知道了(就相当于地图知道了),接下来用迪杰斯特拉算法求最短路径就完事了~
上面两个部分就是LS算法的主要任务。
———————————到此LS算法的基本总结就告一段落了—————————

(狂敲黑板~重点!)
接下来看看面对分散信息的算法DV(距离向量路由选择算法):
这种方式肯定和面对全局的不同,他不需要掌握全部的信息内容,只需要掌握局部的信息内容(自己和相邻的路由器)就可以啦~
路由器之间经常联系,就可以动态得到全局的内容
这里用到了动态规划的思想,看看下面这个图:
在这里插入图片描述
以下内容X,Y,Z都属于路由器,且是连通的,但是X不直接与Z连通
假设X要知道去Y的最短路径,那么X只需要找X的邻居路由V
然后从V那获取到Y的距离
但是X的邻居V不止一个,不同邻居到Y的距离又不一样怎么办呢?
很简单,找最小的呗,{X到V+V到Y}的最小值就行
下图是个例子:
在这里插入图片描述
在这里插入图片描述
(上面的图稍微看一下,明白大概过程思路即可)
下面这个图是个具体的实例(放大图片可看批注)
在这里插入图片描述
左侧列:表内初始化,只有自己到各个相邻路由器间的最短路径信息
中间列:三个路由器进行信息交换,这样每个路由器都获取到其相邻路由器到各个路由器的最短路径信息
中间列其实象征着处理的过程,对于不同的题,中间列的个数也不同
初次交换要做以下事情:
记录其他路由器到各个相邻路由器的最短距离
重新计算自己到邻接路由器的最短距离
接下来要做的事情:
如果某个路由器获取到了最新的路径信息,也就是说前一次交换导致当前路由器到其相邻路由器之间的最短距离变化了(有更短的出现),那么需要再次进行交换,直到没有路由器变化为止
右侧列:目前右侧列的状态就是最终的状态了,也就是说经过不断地交换,确定下来最终表了

//到此DV算法的内容也基本介绍完了,但是只是介绍了基本的原理
上面只是说了网络拓扑和链路费用确定下来时的情况,但是网络中我们暂且不说路由器数量的增减(也就是说不考虑拓扑的变化);链路费用变化的时候该怎么办呢?
老师的PPT里面提到了一个“好事传的快,坏事传的慢”一句话,其实这句话就是针对链路费用变化来说的,接下来结合实例,我们来详细分析一下。
好事传得快:其实就是链路费用变小了,各个路由器更新完毕速度快
坏事传的慢:其实就是链路费用增加了,各个路由器更新完毕速度慢
好事传得快(实例):
在这里插入图片描述
我们来分析一下为什么快:
如图假设X,Y,Z的路由表已经初始化过一次了,也就是说经过几次交换已经得到当前的一个最佳表了,为了清晰,我们把这个表称为A表(X,Y,Z都有自己的A表[这个A表相当于前面图中的最右侧列的表]);当X与Y之间的链路费用从4减少到1的时候,怎么变的呢?
其实X,Y都会变更自己的原始A表,但是为了简便我们只讨论Y的变化
Y变化之后需要将自己更新后的内容再次与X,Z进行交换,其实X变后也会跟Y,Z交换,但是为了简便,我们只分析Y的交换。
开始啦:
Y更新自己到X的距离后,将更新后的表交给Z,Z收到Y的DV更新,更新自己的距离向量表,计算到达X的最新最小费用,然后发送给其邻居;然后Y又收到Z的DV更新,更新其距离向量表,重新计算Y的DV,此时未发生改变,到此结束。
这样一个好消息的变迁引起的路由器更新DV就结束了,很短吧,自然很快

接下来我们来分析一下为什么坏消息传的这么慢
在这里插入图片描述
当链路费用增加了怎么办呢?
这个过程比较复杂,但是我会非常详细地分析,有耐心的同学可以看下去

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面就是慢的原因,其根源就是因为两点:
·每个路由器都是想着取当前的最短路径(这点不怪路由器,人家没有错,就是该这么想)
·路由器记录的有Z到X的最短路径(这个才是罪恶之源)
所以怎么解决传播慢的问题呢?
这里有涉及到了一个新的思想——毒性逆转
毒性逆转的针对就是上面的“罪恶之源”,解决思路就是如果Z到X得到的最短距离不是走Z直接到达X的路线(而是先访问了其他路由,再到达X的)那么就规定Z传给Y的更新信息中,Z到X的距离为“无穷”。
这样最终的现象就是每个路由器里面真正有实际距离的记录只有两种可能:
1.自己到达各个路由的最短距离
2.其他路由器通过“直通”路线到达其他路由的最短距离(非直通的都是无穷)

到这里DV算法也算是讲完了,内容还是比较难的,因为涉及的内容有些属于拓展,真看不明白也没关系,只要理解LS和DV的思想就行

以为到这里就结束了?
想得美!接下来讲讲什么是分层路由~
复习点涉及了,不说说不合适吧

分层路由
前面说的DV呀,LS也好呀,将网络的抽象模式都是转化成图的形式。
然后通过迪杰斯特拉算法也好还是动态规划也好来求最短路径
但是面对巨大网络体系,抽象成图反而不方便计算吧
全球最大的网络Internet都抽象成一张网的话,那就不必讲什么DV和LS了,只能用一种还选个啥;几十亿台计算机连成的网,一点变化,跟着全都交换那还上个P网,交换过程就把带宽挤炸了

那怎么办呢?分层!
把各个局域网呀,组织呀划分在一起,将其旗下的路由器划分为一个区域:自治系统AS
不同的AS内部可以采用不同的自治路由协议(算法)
AS间需要制定新的协议!
在这里插入图片描述
AS内部不在多说,就是上面讲了半天的内容

AS间不会使用什么DV和LS,毕竟那两种算法的处理单位是:路由器
而AS间面对的单位是:路由器集群
AS间:
在这里插入图片描述
在这里插入图片描述

讲到这里,分层路由的概念性内容也讲完了,当然AS内部协议有很多,这里不再多说,具体的内容分散在复习的知识点中~

  • 16
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值