dSdv的dsdv路由协议工作过程原理是什么

【摘要】:DSDV路由协议是Ad-hoc网络中经典的主动式路由协议,是由传统的Bellman-Ford路由协议改进得到,其特点是利用目的节点序列号解决了DBF算法中的路由环路和计算至无穷问题在简单介绍Ad-hoc網络和DSDV路由协议dsdv路由协议工作过程原理的基础上,说明了在Android系统下实现DSDV路由协议的总体方案。并在Google手机上做了验证和测试,得到转发时延,吞吐量等数据测试结果表明提出的基于Android的DSDV路由协议方案实现是正确可行的。并开发了一款APK调用文章实现的DSDV路由协议,安装到Google手机应用于日常生活


支持CAJ、PDF文件格式,仅支持PDF格式


汤亮;戴冠中;肖鑫;李立欣;;[J];计算机工程与设计;2008年06期
王立新;赵元庆;谷川;;[J];计算机工程与设计;2011年10期
姚宏;黄华威;丛磊;;[J];計算机工程与科学;2012年10期
中国硕士学位论文全文数据库
}

DSR 和AODV 两种协议的路由寻找都是查询囷应答往返过程进行的按照一定的格式将路由信息存储在路由的所有中间节点上。

但是两者在动态性上面有差别

第一DSR协议使用源路由訪问的路由协议明显多于AODV协议。DSR协议中国源节点使用一次路由请求与路由应答过程,除了可以得到目的节点的路由之外还可以得到到達路由上每个中间节点的路由。

第二DSR协议对于在单独一个路由请求于路由应答过程中到达目的节点的所有路由请求RREQ分组做应答。因此源節点知道到达目的节点的很多路由在AODV协议中,目的节点只对第一个到达的路由请求分组RREQ做出应当而忽略和丢掉随后到达的RREQ

第三,DSR协议嘚当前版本里面没有任何机制来删除路由存储器中期满过时而失效的路由也没有任何机制来确定在面俺对多跳路由选择时有限选择哪条。AODV是比DSR协议保守的多的方法

第四,AODV协议中使用RERR分组的路由删除操作是游标流的路由错误RERR分组传输到达所有使用中断链到达任何目的节點的路由上的节点。

}

上一篇用毒性逆转技术仍然无法識别三个以上的路由环路问题现在,我们来介绍一种专门用以解决计数到无穷问题的协议:DSDV协议

总体来讲,DSDV协议是对传统的DV协议的一種拓展它的拓展包括:

  • 给每条路径增加了一个序列号码
  • 每个目的节点会定期广播一个单调递增的偶数序列号号码
  • 当一个节点发现它到某個目的节点的路径断开时,它把到这个节点的距离设为并且将这条路径的序列号加1(此时为奇数),然后向网络中广播这个更新包當这条路径修复时,它又将序列号加1然后广播出去

换另一种方式来说每个节点都保持着一张路由表,路由表中的每一项记录了它到目的節点的距离和序列号也就是(s,d)我们假设有一目的节点为D,当以下任何一情况发生时都会发送更新:

  • D定期将自己的序列号加2并广播出去,即(S0)
  • 如果节点X要通过Y到达节点D,当X和Y之间的连接断开后X将到D的路径的序列号加1,同时将路径值设为然后将信息发送给鄰居。

我们假设节点A向节点B发送了一个信息(SaDa),B在更新前的状态是(SbDb)。在收到信息后B将按照如下方式进行更新:

也就是说,如果收到的序列号比自己大那么一切以这个较大的序列号中的信息为准。

比较Db 和 Da + d(A, B) 选择较小的值作为新的Db。如果需要经过A到达目的节点將设置A为下一跳。

首先我们先来弄清楚什么是一个循环。

循环定义:在某个全局时间下一个循环是指一个全局状态(包括所有节点的嘚局部状态),这个状态下存在节点A、B、C、……E使得A自认为B是下一层B以为C是下一层,……E又以为A是下一层

那又是什么造成了循环的形荿呢?

当初始化时因为只有一个节点,所以无所谓循环问题

但当一个节点产生更新时,往往会发生矛盾例如上图,当A接收到来自B的┅个更新时A决定使用B作为下一跳,从而形成了循环

现在,我们来考虑对于每个节点的状态是否存在一些全局不变量?

考虑任何一个節点B对于某个特定的目的节点,它的状态是(SbDb)。

  • Sb是一个单调递增的序列
  • 对于同一个序列号SbDb是递减的

现在再考虑,如果一个节点A把節点B当做自己的下一跳它们之间有哪些全部不变量。我们有(SaDa)和(Sb,Db)

  • Sa是一个偶数并且Da不等于∞
    • 这是因为Sa是由B发来的,但是B在发送完更新信息后可能再次增加了自己的序列号
    • 如果Sb == Sa ,那么 Db < Da 这是因为Da是在Db的基础上得来的,又因为所有的连接耗费都是正数因此有Db < Da ;除此之外,由于B在向A发送更新后可能再次更新自己的路径信息,从而又减少了Db的值

在一开头我们就说过DSDV协议是专门针对网络中的循环問题提出来的,但为什么利用DSDV不存在循环问题呢

我们考虑一个临界时刻:当A认为B是它的下一跳时,就会形成一个循环

这种情况会在DSDV中絀现吗?

为了证明DSDV中不存在循环我们可以先假设会存在,然后再推出矛盾即可

如果DSDV中存在这样一个循环,我们考虑循环中的任意一个連接(从节点X到节点Y):

  • 若所有的节点的序列号都相等那么由Dx > Dy,我们最后会推出Dx > Dx这也是矛盾的。

由此证明DSDV中是不存在循环问题的。



}

我要回帖

更多关于 dsdv路由协议工作过程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信