看了一个星期的路由协议,小总结了一下,具体细节还需探讨。 一、泛洪方式( Flooding) Flooding and gossiping 这种算法也是传统网络中最基本的路由方式,不需要知道网络拓扑结构和使用任何路由算法。每个传感器节点把自己接收到的packet 发送给所有它的邻居节点,这个过程一直重复直到该分组到达sink 节点或者该分组的生命到期( TTL ,在传感器网络里面通常定义为最大跳数) 。Gossiping 算法改进了Flooding 过程,每个传感器节点只把自己接收到的packet 随机发送给它的某个邻居节点,其他不变。 这种方式虽然实现简单,但是并不实用于相关应用程序,而且还很容易带来内爆(implosion) 和交叠(overlap) 问题。 二、能量路由 Energy-Aware QoS Routing Protocol 这个算法主要针对实时数据传输,也是对的一种扩展。该算法以链路花费为度量参数,用Dijkstra 算法,在sink 和source 节点间建立满足应用程序指定的传输时延的路径。算法将数据流分为实时数据和非实时数据,引入一个分类排队模型来调度不同类型的数据流从而实现相关报文的优先级以满足其时延要求。 三、平面路由协议 1.SPIN SPIN( Sensor Protocols for Information via Negotiation)是一组基于协商并且具有能量自适应功能的信息传播协议. 它使用三种类型的信息进行通信,即ADV、REQ和DATA信息. 在传送DATA信息前,传感器节点仅广播该包含DATA 数据描述机制的ADV信息,当接收到相应的REQ请求信息时,才有目的地发送DATA信息. 使用基于数据描述的协商机制和能量自适应机制的SP IN协议能够很好地解决传统的floodinggossiping协议所带来的信息爆炸、信息重复和资源浪费等问题. 2.DD 定向扩散路由DD(Directed Diffusion)是一种以数据为中心的信息传播协议,与已有的路由算法有着截然不同的实现机制. 运行DD的传感器节点使用基于属性的命名机制来描述数据,并通过向所有节点发送对某个命名数据的interest (任务描述符)来完成数据收集. 在传播interest的过程中,指定范围内的节点利用缓存机制动态维护接收数据的属性及指向信息源的梯度矢量等信息 ,同时激活传感器来采集与该interest相匹配的信息. 节点对采集的信息进行简单的预处理后,利用本地化规则和加强算法建立一 条到达目的节点的最佳路径. 经仿真分析,该算法具有很好的节能和可扩展特性. 3.Rumor Routing 在该算法中,每个sensor 节点都维持一个事件列表,其表项包含事件的基本描述、播报该事件的源节点、最先传递该事件的上一跳sensor 节点; 另外,引入了一个具有长生命周期的报文,Agent ,用于源节点广播感知事件的描述信息并在网络中传播。 该算法其本质如同SPIN 算法,与之不同的是,该算法通过sensor 节点维护的事件列表信息,能够维护一条与源节点间之间的路径,所以经过初始化的泛洪后, 相应路由信息即建立起来了, 从而避免了SPIN 协议中的大量泛洪过程,达到显著节省能量的 目的。该算法主要适用于具有大量查询和少量事件的应用场景,如果网络拓扑结构频繁变动,该算法性能即大幅下降。该算法同时也是下文将介绍的Directed Diffusion 算法的一个改进。 4.HREEMR HREEMR(Highly-Resilient, Energy-Efficient Multipath Routing)与前一种协议的不同之处在于它利用多路径(multipath)技术实现了能源有效的故障恢复,解决了DD为了提高协议的健壮性,采用周期低速率扩散数据而带来的能源浪费问题. 它采用与DD相同的本地化算法建立source和sink间的最优路径p,为了保障p发生失效时协议仍能正常运行,构建多条与p不相交的冗余路径,一旦发生失效现象,即可启用冗余路径进行通信. 5.SMENCE SMECN( Small Minimum Energy Communication Network)协议是基于节点定位的路由协议,它是在针对Ad-hoc网络设计的MECN协议基础上改进的. 该协议通过构建具有ME (最小能量)属性的子图来降低传输数据所消耗的能量,从而更好地满足了WSN对节能性的需求. 仿真结果显示,在广播范围能够达到环绕着广播机区域内的所有节点的 情况下, SMECN 构建的子图小于MECN 构建的子图,在拓扑变化不太频繁的传感器网络中能够很好地应用. 6.SAR 有序分配路由SAR( Sequential Assignment Routing)协议是第一个具有QoS意识的路由协议.该协议通过构建以sink的单跳邻居节点为根节点的多播树实现传感器节点到sink的多跳路径. 它的特点是路由决策不仅要考虑到每条路径的能源,还要涉及到端到端的延迟需求和待发送数据包的优先级. 仿真结果显示,与只考虑路径能量消耗的最小能量度量协议相比, SAR 的能量消耗较少. 该算法的缺点是不适用于大型的和拓扑频繁变化的网络. 四、层次路由协议 1.LEACH LEACH(Low-Energy Adaptive Clustering Hierarchy)是一种基于多簇结构的路由协议. 它的基本思想是通过随机循环地选择簇首节点将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的. LEACH在运行过程中不断地循环执行簇重构过程.每个重构过程分成两个阶段:簇的建立阶段和传输数据的稳定阶段. 为了节省资源开销,稳定阶段的持续时间要长于建立阶段的持续时间. 与一般的基于平面结构的路由协议和静态的基于多簇结构的路由协议相比. LEACH 可以将网络整体生存时间延长15%. 2.TEEN 节能的阈值敏感路由TEEN( Threshold sensitive Energy Efficient sensorNetwork protocol)是具有实时性的路由协议. 它采用与LEACH 相同的多簇结构和运行方式. 不同的是,在簇的建立过程中,随着簇首节点的选定,簇首除了通过TDMA方法实现数据的调度,还向簇内成员广播有关数据的硬阈值和软阈值两个参数. 通过设置硬阈值和软阈值两个参数, TEEN能够大大地减少数据传送的次数,从而达到比LEACH算法更节能的目的. TEEN协议的优点是适用于实时应用系统,可以对突发事件做出快速反应. 它的缺点是不适用于需要持续采集数据的应用环境. 3.PEGASIS PEGASIS( Power-Efficient Gathering in Sensor Information Systems)协议是在LEACH 基础上改进设计的. 不同于LEACH的多簇结构, PEGASIS协议在传感器节点中采用链式结构进行连接,链中每个节点向邻节点发送和接受数据,并且只有一个节点作为簇首向基站sink传输数据. 采集到的数据以点到点的方式传送、融合,并最终被送到sink. 协议的优点是减小了LEACH在簇重构过程中所产生的开销,并且通过数据融合降低了收发过程的次数,从而降低了能量的消耗. 它的缺点是链中远距离的节点会引起过多的数据延迟,而且簇首节点的唯一性使得簇首会成为瓶颈. 4.EARSN EARSN( Energy-Aware Routing for clusterbased SensorNetwork)是基于三层体系结构的路由协议. 该协议要求网络运行前由终端用户sink将传感器节点划分成簇,并通知每个簇首节点的ID标识和簇内所分配节点的位置信息. 传感器节点可以以活动方式和备用的低能源方式两种方式运行并以下面这四种方式之一存在:感知、转发、感知并转发、休眠. 与前述集群路由协议不同的是,该协议的簇首不受能量的限制. 它作为网络的中心管理者,可以监控节点的能量变化,决定并维护传感器的四种状态. 算法依据两个节点间的能量消耗、延迟最优化等性能指标计算路径代价函数. 簇首节点利用代价函数作为链路成本,选择最小成本的路径作为节点与其通信的最优路径. 经仿真分析,该协议在运行过程中具有很好的节能性、较高的吞吐量和较低的通信延迟. 5.APTEEN APTEEN (Adaptive Periodic Thresh old - sensitive Energy Efficient sensor Network protocol ) 是TEEN 的设计者们针对TEEN 的缺点进行的改良, 它是一种结合响应型和主动型传感器网络策略的混合型网络路由协议。APTEEN 在TEEN 的基础上定义了一个计数时间, 当节点从上一次发送数据开始经历这个计数时间还没有发送数据, 那么 不管当前的数据是否满足软、硬门限的要求都会发送这个数据。APTEEN 可以通过改变计数时间来控制能量消耗。 6.VGA VGA (Virtual Grid Architecture routing)是LEACH 算法的一个改进。其主要出发点就是在集群分组中进行局部和全局的多次数据汇集从而减少冗余数据的传输。该算法将传感器所在区域切分为正方形网格,每个区域在某一时刻使用一个sensor节点工作,其它休眠。基于相邻区域的sensor 节点感知到的数据具有相关性,算法选取其中一个区域内活跃节点作为局部的的汇集节点,这些节点间的路由则采用类似于Directed Diffusion 算法。 7.SOP(Self-organizing Protocol) 该协议主要适用于具有异构节点的传感器网络。使用资源限制小的节点作为路由器,并固定其位置;其它sensor 节点可以是静止也可以是运动的,通过固定放置的路由节点接入整个网络。每个sensor 节点还可以通过接入路由器获得编址,组成类似于局域网的域空间。 五、地理位置路由( Geographic) 考虑到sensor 节点能够直接获取自身地理位置,或者通过某些标杆节点获取,在很多路由算法中,所以相当的工作通过移植部分在Ad Hoc 研究中的成果取得很好的效果。 1.GEAR( Geographic and Energy Aware Routing) 该算法在Directed Diffusion 算法的基础上做了一系列改进,考虑到sensor 节点的位置信息而将interest 报文添加地址信息字段,并据其将interest 往特定方向传输以替代原泛洪方式,从而显著节省能量消耗。 该算法引入了估计代价(estimated cost) 和自学习代价(learning cost ) 。通过计算两者差值来选取更接近sink 节点的sensor 节点作为下一跳。 2.MECN( Minimum Energy Communication Network) 该协议本质上是为无线网络设计的,但是也可直接应用于无线传感器网络。该算法的实质注意到在一些场合下,两个节点直接通信的代价高于经若干中继节点转发的代价,故引入中继区域( relay region) 这一概念,把所有符合标准的中继节点作为其组成部分。当两个节点需要进行数据交换的时候,协议将根据Belmann-Ford 最短路径法选取能耗最小的一条通路进行传输。 可见,该算法是能自配置的,很好的解决了节点失效问题;但是对于节点运动的情况而言,该算法计算中继区域内的路径代价急剧上升。 3.GEDIR( the Geographic Distance Routing) 该算法-实质是贪婪算法,sensor 节点转发分组的时候,根据地理信息,选择与sink 节点最近的邻居节点。算法同MFR (Most Forward within Radius) 算法也很接近。类似的, 像GOAFR和SPAN算法都可以直接应用于传感器网络。 六、可靠路由协议 SPEED 协议 SPEED 协议是一种非常有效的可靠式路由协议,在一定程度上实现了端到端的传输速率保证、网络拥塞控制以及负载平衡机制。SPEED 协议首先在相邻节点之间交换传输延迟,以得到网络负载情况;然后节点利用局部地理信息和传输速率信息选择下一跳的节点;同时通过邻居反馈机制保证网络传输畅通,并且通过反向压力路由变更机制避开延迟太大的链路和路由空洞。 1 .SPEED 协议的设计目标 1) 只保持邻居节点的信息,不需要路由表。 2) 提供“力所能及”的速度来满足传输信息的实时要求。 3) 不需要MAC 层有特殊的实时机制或额外的M A C 层Q o S 机制。 4) 利用反向压力机制避开网络拥塞,提供Q o S 。 5) 利用不确定的前向并发路径来平衡网络繁忙时的负载。 6) 采用分布式的算法来减少洪泛控制信息。 7) 采用与前述避免拥塞类似的机制来避免路由空洞。 2 .SPEED 协议的核心结构 1 )延迟估计机制 在SPEED 协议中,延迟估计机制的作用是得到网络的负载情况,判断网络是否发生拥塞。节点记录到邻居节点的通信延迟来表示网络局部的通信负载。具体过程是:发送节点给数据分组并加上时间戳;接收节点计算从收到数据分组到发出A C K 的时间间隔,并将其作为一个字段加入ACK 报文;发送节点收到ACK 后,从收发时间差中减去接收节点的处理时间,得到一跳的通信延迟。 2 )S N G F 算法 SNGF算法用来选择满足传输速率要求的下一跳节点的算法。节点将邻居节点分为两类:比自己距离目标区域更近的节点和比自己离目标区域更远的节点。前者称为候选转发节点集合(F C S)。节点计算到其F C S 集合中的每个节点的传输速率。FCS 集合中的节点又根据传输速率是否满足预定的传输速率阈值,再分为两类:大于速率阈值的邻居节点和小于速率阈值的邻居节点。若FCS 集合中有节点的传输速率大于速率阈值,则在这些节点中按照一定的概率分布选择下一跳节点,节点的传输速率越大,被选中的概率越大 3 )邻居反馈策略(N F L ) 邻居反馈策略是当SNGF 路由算法中找不到满足传输速率要求的下一跳节点时采取的补偿机制。节点首先查看FCS 集合的节点,若FCS 集合中所有节点的传输差错率大于零,则按照特定的公式计算转发概率;若存在节点的传输差错率为零,表明存在节点满足传输速率要求,因而设转发概率为1 ,即全部转发。此时M A C 层收集差错信息,并把到邻居节点的传输差错率通告给转发比例控制器,转发比例控制器根据这些差错率计算出转发概率,供SNGF 路由算法作出选路决定。满足传输速率阈值的数据按照SNGF 算法决定的路由传输出去,而不满足传输速率阈值的数据传输由邻居反馈环机制计算转发概率。 4 )反向压力路由变更机制 反向压力路由变更机制在SPEED 协议中用来避免拥塞和路由空洞。当网络中某个区域发生事件时,节点不再能够满足传输速率要求,体现在数据量会突然增多,传输负载会突然加大。此时,节点便会使用反向压力信标消息向上一跳节点报告拥塞,并表明拥塞后的传输延迟。上一跳节点则会按照上述机制重新选择下一跳节点。 |