链路状态路由选择

链路状态路由(Link State)

主要思想:

发现 它的邻居节点们,了解它们的网络地址

设置 到它的每个邻居的成本度量

构造 一个分组,包含它所了解到的所有信息

发送 这个分组给所有其他的路由器

计算 到每个路由器的最短路径


1 发现邻居节点

当一个路由器启动的时候,在每个点到点的线路发送一个特别的HELLO分组

收到HELLO分组的路由器应该回送一个应答,应答中有它自己的名字 (采用一个全球唯一的名字 globally unique name)

2 设置链路成本

为了决定线路的开销,路由器发送一个特别的 ECHO 分组,另一端立刻回送一个应答通过测量往返时间(round-trip time), 

发送路由器可以获得一个合理的延迟估计值,为了得到更好的结果,可多次测量,取均值

一种常用的选择:与链路带宽成反比

3 构造链路状态分组
链路状态分组构造后被发送给其他的路由器,分组中包含这些信息:
1 发送方的标识(ID of the sender)
2 序列号(sequence number )
3 年龄(age )
4 邻居列表(list of neighbors )
5 到邻居的成本/量度(delay to each neighbor )

应该什么时候构造分组?

周期性地构造和发送,或者有特别的事件发生时构造,比如某条线路或邻居down掉了


4 发布链路状态分组

基本算法:

每个分组都包含一个序列号,序列号随着新分组产生而递增

路由器记录下他看见的所有 (源路由器,序列号)对

 当一个的新的分组到达时,路由器根据它的记录:

如果该分组是新的,就被从除了来线路外的所有其他线路转发出去 ( flooding,泛洪)

如果是重复分组,即被丢弃(喜新厌旧)

如果该分组的序列号比对应的源路由器发送的到过此地的分组的最大序列号还小,则该分组被当作过时的信息而被拒绝

一些改进让基本算法更加健壮:

1 当一个链路状态分组到达某个路由器时,它首先被放到一个保留区中等待一段时间

2 如果来自相同路由器的另一个分组到达了,这两个分组的序列号会被比较:

        如果相等,是重复分组,丢弃

        如果不相等,旧的那个被丢弃

3 为了防止路由器到路由器的线路发生错误,所有的链路状态分组都要被确认

4 当一条线路空闲的时候,路由器扫描保留区,以便选择一个分组或确认,并将其发送出去



5 计算新的路由路径
一旦一个路由器获得了全部的链路状态分组就可以构造出全网络图来了(Graph)
可以使用最短路径算法来计算路由器之间最短路径
计算结果是一棵树,会形成相应的路由,安装在路由表中,引导数据分组的转发


LS路由算法特点:
优点:每个路由器的认识一致,收敛快,适合在大型网络使用

缺点:每个路由器需要较大的存储空间,计算负担大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值