3.2
距离矢量路由选择协议
动态路由协议分为:距离矢量(
distance ventor
)和链路状态(
link state
)
距离矢量名称的由来是因为路由是以矢量(距离,方向)的方式被通告出去的,其中距离是根据度量定义的,方向是根据下一跳路由器定义的
每台路由器向邻接路由器学习他们所观察到的路由信息,然后在想外通告自己观察到的路由信息,因为每台路由器在信息上都依赖于邻接路由器,而邻接路由器又从他们的邻接路由器哪里学习路由。相互学习
(但是怎么感觉都像是一群人在一起说八卦,你说你看到的八卦,我说我的八卦,一起共享八卦。都没有人看到事实真相,都在听人说)��
所以距离矢量又被认为是“依照传闻进行路由选择”。
3.2.1
通用属性
典型的距离矢量路由选择协议通常会使用一个路由选择算法,算法中路由器通过广播整个路由表,定期地向所有邻居发送路由更新信息。
细看
1、
定期更新(
periodic updates
)
定期更新以为着每经过特定时间周期就要发送更新信息
2、
邻居(
neighbours
)
邻居通常意味着共享相同数据链路的路由器或某种更高层的逻辑邻接关系。
3、
广播更新(
broadcast updates
)
当路由器首次在网络上被激活时,路由器都是宣告自己存在,向广播地址发送(
255.255.255.255
)更新消息。
使用相同路由选择协议的邻居路由器将会收到广播数据包并采取相应的动
4、
全路由选择表更新
使用非常简单的方式告诉邻居他所知道的一切,该方式就是广播他的整个路由表
3.2.2
依照传闻进行路由选择
打个比方
距离矢量就像是路标,但是你不是确定的知道那个路是怎么样的,如果路标出现了问题,那就要大条了
~
距离矢量算法提供了指向网络的路标。该算法给出了方向和距离,但是没有给出沿这条路径行走的细节。就像在叉路口的路标一样,它很容易受到意外或故意的误导。
你想想看人们在八卦的时候,本质是一根鹅毛,就能说的时候一个一个传变成一只鹅。��
不靠谱诶
对于路标的缺陷是要想办法弥补的不然不能让数据包到处迷路啊
~
我找到了一片四叶草
~
开心
~
无意中的。我感叹这个世界的美好。各样的花在这个季节里面绽放。不管是谁都在这个季节里面把自己变成最美的,最梦幻的。太让我喜欢了。
嗯
~~~
有些事情要上心了
现在我会更的快一些了
~
汤小莹加油!努力的日子
~
美好的日子
我想我会在我最美好的日子遇见你!
3.2.3
路由失效计时器
如果网络没有故障,但是之前的路由器发生了故障,这个路由器将不会把问题反馈出去,其他的路由器认为这个网络还是可以用的,就会把自己的数据包往这边发,这就会造成了路由黑洞。
处理这个问题的方法就是为路由表的每个表项设置路由失效计时器。
其他的路由器收不到更新了。收不到几个更新的时候,这条路由就变成了无效的了
路由超时的电信周期范围是
3~6
个更新周期。
路由器在丢失单个更新信息之后将不会使路由无效的,因为数据包的损坏、丢失、或者某种网络延时都会造成这种事件的发生。但是,如果路由失效周期太长,网络收敛速度将会过慢。
哼着歌,心里甜甜的,即使有点小烦恼也没有什么关系,我想我的心是温柔的,身边的车喇叭声也可以很可爱
~
3.2.4
水平分隔
路由指向与数据包流动方向相反的路由被称为逆向路由
水平分隔是一种在两台路由器之间阻止逆向路由的技术。
不会浪费资源,还有一个很重要的原因就是不会把从路由器学习到的可达性信息再返回给这台路由器。
会发生路由环路的原因。
1、
每台路由器在每个更新周期都要向每个邻居发送他的整个路由表。就会把从邻居学到的路由条目,再重新发给邻居。
2、
当有路由条目不可用时,他就会找寻新的链路,这个时候就会绕回去了。
路标的可悲之处!
假设网络
10.1.5.0
发生故障。路由器
D
发现有故障,将网络标记为不可达并在下一更新周期通知路由器
C
。路由器
D
的更新计时器触发更新之前,
出现问题了。路由器
C
的更新消息到达了路由器
D
,声明路由器
C
可以到达网络
10.1.5.0
,距离为
1
跳!,路由器
D
这个时候就变成了通过路由器
C
的接口(
10.1.4.1
)可以到达网络
10.1.5.0
,距离为
2.
然后数据包就在这两个路由器之间相互传送,一直无穷的进行下去。这个就是路由环路。
执行水平分隔可以阻止路由环路的发生。有两类水平分隔方法:简单水平分隔法,毒性逆转水平分隔法
简单水平分隔的规则是,从某接口发送的更新消息不能包含从该接口收到的更新所包含的网络
简单的说就是我和你说过的事,你不要再来和我说
~
这样很
2
喔
简单水平分隔没有把从邻居那里获取的路由通告给邻居
简单水平分隔采用一直信息的工作方式。
毒性逆转水平分隔法是
---
提供信息。
有消息比没有消息要好,即使这个消息是坏消息
毒性逆转水平分隔法的规则是,当更新信息被发送出某接口时,信息中将制定从该接口收到的更新消息中获取的网络是不可达的。
注意通过设置度量为无穷大可以标记网络为不可达。
假设路由器
B
收到错误信息使其相信经过路由器
C
可以到达子网
10.1.1.0
。简单水平分隔无法纠正这个错误。而路由器
C
的毒性逆转更新信息可以立刻制止这种潜在的环路。
---
毒性逆转
大多数的距离矢量路由协议用的都是毒性逆转水平分隔法。
3.2.5
计数到无穷大
水平分隔法切断了邻居路由器之间的环路,但是它不能割断网络中的环路。
这个才是必杀
大多数距离矢量协议定义无穷大为
16
跳。
还有超过最大网络尺寸
15
跳的路由,路由器将把所有调速阀为
16
的路由看做不可达。
3.2.6
触发更新
触发更新又叫快速更新
如果一个度量变好或变坏,那么路由器将立即发送更新信息,而不等更新计时器超时。
这样重新收敛的速度将会比每台路由器必须等待更新周期的方式快,而且可以减少计数到无穷大所引发的问题。
对触发更新进一步的改进是更新信息中仅包括实际触发该事件的网络,而不是包括整个路由表。
4.2.7
抑制计时器
触发更新为正在重新进行瘦脸的网络增加了应变能力。为了减低接受错误路由选择信息的可能性,抑制计时器引入了某种程度的怀疑量。
如果一个网络的度量发生变化,他不会立即发送触发更新,而是会等抑制计时器超时。知道计时器超时,路由器才可以发送这个路由的更新。
错误路由选择信息进入路由表的可能性被减小,新收敛的时间会被耗费
3.2.8
异步更新
在几台路由器共享一个广播网络时可能会发生碰撞这种情况。
因为在路由器中,更新处理所带来的系统时延将导致更新计时器趋于同步。
维持异步更新:
每台路由器的更新计时器独立于路由选择进程,因而不会受到路由器处理负载的影响
在每个更新周期中加入一个小的随机事件或定时抖动作为偏移。
必须按照随机的方式激活共享一个广播网络的所有路由。(比如大面积断电时的情况)