CN104301222A - 一种基于包转发率的无线自组网可信路由协议 - Google Patents
一种基于包转发率的无线自组网可信路由协议 Download PDFInfo
- Publication number
- CN104301222A CN104301222A CN201410579270.2A CN201410579270A CN104301222A CN 104301222 A CN104301222 A CN 104301222A CN 201410579270 A CN201410579270 A CN 201410579270A CN 104301222 A CN104301222 A CN 104301222A
- Authority
- CN
- China
- Prior art keywords
- node
- path
- bag
- packet
- rreq
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于包转发率的无线自组网可信路由协议,该协议通过在一次路由发现过程中寻找多条满足信任要求的路径,提高查找效率;源节点将找到的路径作为候选路径,从中选择一条跳数最少的路径作为数据包转发路径;该协议采用hop-by-hop的路由机制,采用跳数和路径信任度两种指标进行路径信任评价,有效识别和排除恶意节点,实现高可靠的可信路由,而路径信任度是基于包转发率的模型,这种模型简单、通信开销小且易于实现,非常适合带宽资源和计算能力有限的无线自组网。
Description
技术领域
本发明涉及一种基于包转发率的无线自组网可信路由协议。
背景技术
无线自组网MANET是一个由无线对等节点构成的多跳自组织系统,两个超出相互通讯范围的对等节点只能通过中介节点来完成信息的交换。因此,MANET网中的节点同时起到了主机和路由器的功能。与有着固定拓扑结构的有线网络相比,无线自组织网络的路由面临更多挑战。
已有的路由协议(如DSR,AODV,LAR等)可以很好的应对不稳定的拓扑结构,然而,在恶意节点的攻击方面存在很多缺点。当前,对路由的攻击,可以在路由决策过程中引入基于信誉的可信管理机制,可以有效识别和排除恶意节点。通过对传输行为进行监控和对节点的信誉进行评估,多个安全路由策略被提了出来。
Sergio Marti等人在DSR基础上提出了Watchdog和Pathrator(WP)机制。针对路由过程中存在的恶意节点,Watchdog机制首先对目标节点的转发行为进行监控和记录,由此获得该节点的可信度。Pathrator进一步通过该可信度进行路由选择。由于Watchdog机制很好地抓住了网络中无线通讯的特点,每一个节点可以“偷听”其邻居节点所传输的信息,因此度量节点可以对被度量节点所转发的包进行记录,从而对恶意行为进行精确捕获,进一步减少路由中的恶意节点。然而,这种Watchdog机制需要对被检测节点的状态和转发包进行记录和维护,这将占用大量的内存。
作为DSR的扩展,Sonja Buchegger等人提出了一个新的安全路由协议CONFIDENT。引入了监控机制对目标节点的转发状态进行监控,通过信誉系统和可信管理组件,完成对可信的度量和更新。度量得到的值将作为路由控制器的输入。在对被检测节点进行评估时,源节点要与其友好节点进行相关信息的交换。被识别为恶意或不可信的节点将会在一定时间内不被采用。然而,一旦期限已过,恶意节点将重新成为合法节点,有可能继续其攻击。另外,在路由决策的过程中引入推荐信任,将会使整个过程复杂化,增加了系统开销。同样作为DSR的扩展,Guo等人提出了基于动态可信度量的路由模型。基于对通信链路可信性的度量,5种决策策略被提了出来。由于其路由的选择范围受到DSR的限制,使得最终选中路由不一定满足全局最优。
众所周知,当前在计算机科学领域,对于可信没有一个广泛认可的定义。对于安全路由或可信路由,也没有标准的定义。针对这种情况,很多研究通过分析路由协议中造成威胁的不安全因素开始入手。Seung等人提出了一个新的综合考虑路由发现过程中安全属性的路由方法,称为安全感知路由(SAR)。一个节点只有达到设定可信级别才可以作为路由器被选中。然而,恶意节点仍然可以通过对可信等级进行造假或对可信阈值进行猜测来进入路由,针对这种情况,没有有效的保护办法,也没有明确给出可信的度量和分发策略。
发明内容
本发明为了解决上述问题,提出了一种基于包转发率的无线自组网可信路由协议,本发明通过在从源节点到目的节点转发数据包的过程中,可以通过一次路由发现过程寻找多条满足信任度要求的路径,提高查找效率;其中,路由发现过程通过路由请求和路由应答来实现的;源结点将这些找到的路径作为候选路径,从中选择一条跳数最少的路径作为数据包转发路径;本发明采用hop-by-hop的路由机制,并通过跳数和路径信任度两个指标进行路径信任评价;能够解决恶意节点带来的安全路由问题,进而实现高可靠的可信路由。
为了实现上述目的,本发明采用如下技术方案:
一种基于包转发率的无线自组网可信路由协议,包括以下步骤:
(1)源节点查找自身路由表,如果存在路径信任值大于数据包设定的最低信任值需求的路由表项,转入步骤(3),否则进入步骤(2);
(2)源节点发起一个路由发现过程(route discovery),一次路由发现过程后,若有一条或多条路径被找到,将找到的路径作为候选路径,插入到目的节点的路由表项中;
(3)源节点在候选路径中选择一条满足信任值需要并且具有最小跳数的路径作为转发路径,跳转到步骤(4);如果没有满足信任值需求的路径,源节点将返回错误提示,路由过程结束;
(4)如果一条路径被选中,假设选中的下一跳为节点n,那么源节点将节点n的信任记录列表中的请求次数NA增加1,并将数据包插入到包缓冲区中,并将重发次数设为0,然后发送该数据包;
(5)源节点监听到节点n是否正确转发了该数据包,如果源节点监听到节点n正确转发了该数据包,那么源节点增加节点n的成功转发次数NC,并从包缓冲区中删除该包,路由过程结束;如果转发数据包在设定时间内没有被监听到,并且重发次数小于1,那么重发次数加1,源节点向节点n重发数据包,重新开始步骤(5);
(6)如果重发次数大于1,那么源节点认为节点n移动出通信范围或故意不进行转发,将尝试其它转发路径,跳转至步骤(2),直至路由过程结束。
所述步骤(1)中,在发送数据包到目的节点d之前,源节点s先查找自身的路由表,所述路由表包含目的ID、目的地址序列号、路径,其中,所述目的地址序列号为路由表拥有者知道的、最新的目的地址序列号,表明路由表项的新鲜度,用于避免路由环。
所述步骤(1)中,所述路径包括下一跳节点、跳数、路径信任度PathTrust和过期时间;所述下一跳节点为路由表拥有者的通往目的节点的邻居节点;所述跳数为从路由表拥有者到目的节点的跳数,且跳数≥1,如果目的节点是路由表拥有者的邻居节点,那么跳数等于1;所述路径信任度指的是从路由表拥有者到目的节点的路径信任度;所述过期时间指的是如果在这段时间内路由表项没有被用到,那么该路由表项就会被删除,如果通过该路由表项完成了一次数据包传输,那么该过期时间会被初始化为一个常数时间。
所述步骤(1)中,所述路径信任值为中间节点信任值的连乘积,即TP(t)=∏({Tjk(t)|nj,nk∈P and nj→nk and nk≠Nd});
其中nj和nk是路径P中任意两个相邻的节点,nj→nk表示节点nk是节点nj的下一跳节点,Nd是路径P的目的节点;Tjk(t)为节点j对节点k的信任度,表示为Tjk(t)=w1×CFRjk(t)+w2×DFRjk(t);
其中,CFRjk(t)和DFRjk(t)表示控制包转发率和数据包转发率;常数w1和w2分别是是控制包转发率和数据包转发率的加权因子。
所述步骤(2)中,所述路由发现过程通过路由请求和路由应答来实现,路由发现过程中,源节点将发起一次局部网络的洪泛广播,请求查找到目的节点的路由;目的节点或知道目的节点的中间节点将会返回路由应答包。
所述步骤(2)中,每个节点都维护两个单调递增的序列号:Sequence Number和BroadcastID;其中,Sequence Number表明了自身的时间信息,每返回一个应答包,该值加1;BroadcastID用于表明路由请求包RREQ、路由更新包RUPD和路由应答包RERR的新鲜度。
所述步骤(2)中,所述路由请求包RREQ具有的字段信息包括:<BroadcastID,SourceAddr,SourceSequenceNo,DestAddr,DestSequenceNo,HopCounter,RequiredTrust,ActualTrust>;依次分别表明广播ID、源节点地址、源节点序列号、目的节点地址、目的节点序列号、经历的跳数、数据包需要的信任值和路径信任值;其中,RequiredTrust字段由源节点设置,在RREQ传输过程中保持不变,ActualTrust字段表明了RREQ包经历的路径的信任值,它等于经历的中间节点的信任值的连乘积,它被源节点初始为1,随着RREQ包的传输,该值逐渐减小;如果源节点的路由表中没有到目的节点路径,那么DestSequenceNo设置为0;如果源节点中包含到目的节点的路径,但是该路径的信任值小于数据包的需求,那么源节点使用路由表中的目的节点序列号作为RREQ中DestSequenceNo的初始值。
所述步骤(2)中,当一个中间节点j从它的邻居节点k接收到一个RREQ数据包时,具体方法包括以下步骤:
(2-1)如果在节点k的本地路由表中不存在到k的路径,就将路径信任度设为1,创建一条到k的路径;
(2-2)检验是否接收过与当前RREQ相同的副本;如果有,并且当前RREQ的HopCounter值比先前接收的大,路径信任度值比先前的少,也就是说,当前RREQ对应的路径比已经存在的更长,信任值更小,那么,这个RREQ就应当被丢掉,过程结束;否则,至(2-3);
(2-3)如果节点k不是源节点,从节点j利用之前RREQ的跳(节点k)作为下一跳,创建一条反向的路径;这条反向路径的信任值设为ActualTrust(简称为AT)和Tjk的乘积,其中Tjk或者已知,若未知,则设为min(AT,0.75);
(2-4)如果到达目的节点的一条有效路径是可得到的,并且这条路径的SequenceNumber比RREQ的DestSequenceNo大,节点j产生一个到达节点k的路由应答包RREP,否则,转入步骤(2-5);
(2-5)节点j在当Tjk已知时,利用AT×Tjk修改RREQ的AT值,Tjk未知时,AT设为min(AT,0.75);节点j将HopCounter增加1并将RREQ传播给它的所有邻居。
所述路由应答包RREP是一个单播控制包,包括字段:<SourceAddr,SourceSequenceNo,DestAddr,DestSequenceNo,HopCounter,LifeTime,RequiredTrust,ActualTrust>,依次分别表示源节点地址、源节点序列号、目的节点地址、目的节点序列号、经历的跳数、生命期、数据包所需的路径信任值和实际路径信任值;RequiredTrust表示数据包所需的路径信任值,ActualTrust表示RREP应答包经历的路径上中间节点的信任值的连乘积,并且被目的节点初始化为1。这两个字段与路由请求包RREQ中对应的字段含义类似。如果一个中间节点有到达目标节点的多条路径,它会最大发送两个RREP应答,其中一个包含最小的跳数值,另一个包含最大信任值;如果目的节点接收到了多个RREQ请求包,它会最多应答开始的k路径;这些路径的信任值大于等于RREQ的RequiredTrust值,并且来自于目的节点的不同邻居节点;在此,我们假定最早到达的数据包来自于最短的路径;如果有多条路径的信任值比RequiredTrust要小,目的节点会应答来自不同邻居的最短路径中的最多k条路径;RREP包含到达目的节点的最近的序列号;参数k用来控制RREP的个数,防止RREP风暴;如果一个中间节点得到一个RREP,它就会通过一条路径单播该RREP,这条路径的PathTrust值不小于该RREP的RequiredTrust值并且HopCount值是所有到达源节点的路径中最小的。当该RREP回到源节点时,路径上的每一个节点创建一个到达目的节点的前向路径,并将它的截止时间赋值给源和目的节点。
所述步骤(2)中,如果一个中间节点在到达期望目的节点的路由表中有对应的路由表项,通过将自己在路由表项中对应的目的序列号与RREQ中的进行比较来决定该路径是否是最新的;然后,根据情况决定是否送回一个路由应答数据包;当中间节点收到RREQ请求包时,如果路由表中包含到目的节点的路径,并且该目的节点序列号大于RREQ包中的序列号,那么中间节点做出路由应答;目的节点收到RREQ包,也会做出路由应答。
所述步骤(2)中,如果路由表项中对应的目的序列号小于RREQ中的目的序列号,那么该中间节点不应该用它的已记录路径来对RREQ作出回应;相反,它会转播这个RREQ;当目的节点d接收到一个RREQ时,它会将该RREQ中的DestSequenceNo值与序列号做比较,即是在节点d中得到的SNd值;如果DestSequenceNo等于DestSequenceNo,目的节点会将SNd的值增加1;如果DestSequenceNo的值比SNd小,目的节点保留SNd值。
所述步骤(4)中,所述信任记录列表用于记录邻居节点的信任信息和转发率,每一个节点都拥有一个信任记录列表;该结构包含节点ID、节点信任度、控制包成功转发次数NC和请求次数NA、数据包成功转发次数NC和请求次数NA、包缓冲区;在发送一个控制包/数据包之前,发送者将下一条节点的控制包/数据包的NA加1;如果是广播数据包,发送增加所有邻居节点的NA;如果目的节点是邻居节点,这时目的节点的NA不变。
所述步骤(5)中,为了检测一个包是否被成功转发,发送者将包发送出去后并不立即删除该包,而是将该包放入包缓冲区;当该包被监听到正确转发后,相应的节点的NC会加1,包缓冲区中的相应包才会被真正删除;包缓冲区用于记录最近发送的所有包的信息;如果下一跳节点成功转发了数据包,则该包缓冲区内对应包将被删除掉;如果一个包在一段时间内仍然停留在包缓冲区,这说明该包没有被转发,那么节点重发该数据包到下一跳节点;当重发次数大于阈值时,该包将被删除。
所述步骤(5)中,发送者定期更新每个节点的信任度,如果节点的信任度变化超过信任更新阈值,那么发送者将向邻居节点广播一个路由更新包;每个节点都将定期进行恶意节点检测,如果一个邻居节点的信任值小于黑名单信任阈值,那么该邻居节点将被认为恶意节点,添加到黑名单中;每个节点都维护一张黑名单节点列表;一旦一个邻居节点进入黑名单后,源节点将永远不会和该节点通信,该节点发出的路由请求也将不予转发或应答;如果一个节点进入了所有邻居的黑名单,那么该节点将被“孤立”,它既不会作为转发节点,也不会被应答,将被排除出局部网络;如果该节点想参与网络通信,它只能移动到一个新的子网中,作为新到节点被赋予一个初始的信任值,参与该子网的通信。
本发明的有益效果为:
(1)基于包转发率的无线自组网可信路由协议通过路由请求和路由应答实现路由发现过程,通过一次路由发现过程寻找多条满足信任度要求的路径,提高查找效率;
(2)最终选取满足数据包信任度要求同时跳数最少的路径作为数据转发路径,有效识别和排除恶意节点,实现高可靠的可信路由,而路径信任度是基于包转发率的模型,这种模型简单、通信开销小且易于实现,非常适合带宽资源和计算能力有限的无线自组网。
附图说明
图1是本发明一种基于包转发率的无线自组网可信路由协议流程图;
图2是本发明路由表相结构图;
图3是本发明实施例一次路由发现过程示意图,其中:
图3(a)为节点信任值示意图;
图3(b)为接受第二个RREQ后的节点B路由表示意图;
图3(c)为接收RREQ后节点D的路由表示意图;
图3(d)为接收RREQ后节点B的路由表示意图;
图3(e)为接收RREQ后节点A的路由表示意图。
具体实施方式:
下面结合附图与实施例对本发明作进一步说明。
如图1,一种基于包转发率的无线自组网可信路由协议策略如下:
步骤1:在发送数据包到目的节点d之前,源节点s先查找自身的路由表。如果存在满足数据包最低信任值x需求的路由表项,即路径信任值大于x,那么跳转到步骤3;
所述路由表包含目的ID、目的地址序列号、路径,其中路径包括下一跳节点、跳数、路径信任度和过期时间。所述目的地址序列号为路由表拥有者知道的、最新的目的地址序列号,表明路由表项的新鲜度,用于避免路由环。所述下一跳节点为路由表拥有者的通往目的节点的邻居节点。所述跳数为从路由表拥有者到目的节点的跳数(≥1),如果目的节点是路由表拥有者的邻居节点,那么跳数等于1。所述路径信任度指的是从路由表拥有者到目的节点的路径信任度。所述过期时间指的是如果在这段时间内路由表项没有被用到,那么该路由表项就会被删除,如果通过该路由表项完成了一次数据包传输,那么该过期时间会被初始化为一个常数时间(实验中设为15秒)。
所述路径信任值与包转发率有关。转发率是被正确转发的包数与所有待转发的包数的比例。正确转发是指转发节点按照公共约定的规则做出合法的修改后将包转发给下一跳节点。与之对应的非正确转发包括:恶意节点丢弃应该转发的包、将包进行非法修改后再转发。如果发送节点监听到转发节点的非法修改或者在一定时间内没有监听到转发节点的行为,那么发送节点就降低转发节点的转发率。而滑动窗口包转发率的值是最近一段时间内的包转发率,定义为
其中NC(t)表示t时刻前一个节点正确转发的包数,NA(t)表示t时刻前一个节点需要转发的包数。.在[t-W,t]时间范围内,正确转发包数等于NC(t)-NC(t-W),字母W代表时间窗口的宽度。计算FR(t)时只使用到了最近W宽的时间窗口内正确转发包数和需要转发包数,该值可能会随着时间的推移而变化。在MANET网络中,所有包分为控制包和数据包两类。控制包包含节点状态信息和路由信息,用于路由发现或维护,而数据包中包含需要发送的真正内容。转发率分为控制包转发率和数据包转发率。在t时刻,节点j对节点k的节点信任度Tjk(t)是指在节点j看来节点k转发节点j的包(包括控制包和数据包)的概率。CFR(t)和DFR(t)表示控制包转发率和数据包转发率。常数w1和w2分别是是控制包转发率和数据包转发率的加权因子。节点j对节点k的信任度的计算公式如下:
Tjk(t)=w1×CFRjk(t)+w2×DFRjk(t)
由于控制包影响路由的建立和维护,因此常数w1,w2≥0,并且w1+w2=1。每一次交互之后,节点j检查邻居节点k是否正确转发了控制包或数据包。如果正确转发了,那么Tjk增加;否则,Tjk减小。在本文的信任模型中,信任值(信任度)在0到1之间连续变化,即0≤Tjk≤1。信任值0表示被评价节点完全不可信,信任值1表示完全可信。初始信任值设为0.75,[η,0.75)表示可疑节点,常数η称为黑名单信任阈值。每一个节点根据自身的交互情况更新邻居节点的信任值,对于正确转发的节点增加其信任值,对于不能转发的节点降低其信任值。为了减小丢包率,节点应该和高信任度的节点通信,尽量避免和低信任度的节点通信。当一个源节点查找到目的节点的路径时,路径信任值将会跟随路由应答包从目的节点返回源节点。路径信任值将根据路径上所有中间节点的信任值进行计算。根据熵理论中信息在扩散中价值不会增加的原则,路径信任值等于中间节点信任值的连乘积,计算公式如下:
TP(t)=∏({Tjk(t)|nj,nk∈P and nj→nk and nk≠Nd})
其中nj和nk是路径P中任意两个相邻的节点,nj→nk表示节点nk是节点nj的下一跳节点,Nd是路径P的目的节点。
步骤2:如果路由表中不存在到目的节点的路由表项或者不存在满足信任值需求的路由表项,那么源节点s只能发起一个路由发现过程(route discovery)。一次路由发现过程后,如果一条或多条路径被找到,它们将作为候选路径,插入到目的节点s的路由表项中。
所述路由发现过程通过路由请求和路由应答来实现的,路由发现过程中,源节点将发起一次局部网络的洪泛广播,请求查找到目的节点的路由。目的节点或知道目的节点的中间节点将会返回路由应答包。每个节点都维护两个单调递增的序列号:Sequence Number和Broadcast ID。Sequence Number表明了自身的时间信息,每返回一个应答包,该值加1。Broadcast ID用于表明路由请求包RREQ、路由更新包RUPD和路由应答包RERR的新鲜度。
其中所述路由请求包RREQ包含如下字段信息:<BroadcastID,SourceAddr,SourceSequenceNo,DestAddr,DestSequenceNo,HopCounter,RequiredTrust,ActualTrust>。分别表明广播ID、源节点地址、源节点序列号、目的节点地址、目的节点序列号、经历的跳数、数据包需要的信任值和路径信任值。RequiredTrust字段由源节点设置,在RREQ传输过程中保持不变,ActualTrust字段表明了RREQ包经历的路径的信任值,它等于经历的中间节点的信任值的连乘积,它被源节点初始为1,随着RREQ包的传输,该值逐渐减小。如果源节点的路由表中没有到目的节点路径,那么DestSequenceNo设置为0。如果源节点中包含到目的节点的路径,但是该路径的信任值小于数据包的需求,那么源节点使用路由表中的目的节点序列号作为RREQ中DestSequenceNo的初始值。当一个中间节点j从它的邻居节点k接收到一个RREQ数据包时:
Step 1:如果在节点k的本地路由表中不存在到k的路径,就将PathTrust设为1,创建一条到k的路径。
Step 2:检验是否接收过与当前RREQ相同的副本。如果有,并且当前RREQ的HopCounter值比先前接收的大,PathTrust值比先前的少(也就是说,当前RREQ对应的路径比已经存在的更长,信任值更小),那么,这个RREQ就应当被丢掉,过程结束;否则,至Step 3。
Step 3:如果节点k不是源节点,从节点j利用之前RREQ的跳(节点k)作为下一跳,创建一条反向的路径。这条反向路径的信任值设为ActualTrust(AT)和Tjk的乘积,其中Tjk或者已知,若未知,则设为min(AT,0.75)。
Step 4:如果到达目的节点的一条有效路径是可得到的,并且这条路径的SequenceNumber比RREQ的DestSequenceNo大,节点j产生一个到达节点k的RREP。
Step 5:否则,节点j在当Tjk已知时利用AT×Tjk修改RREQ的AT值,Tjk未知时,AT设为min(AT,0.75)。节点j将HopCounter增加1并将RREQ传播给它的所有邻居。
如果一个中间节点在到达期望目的节点的路由表中有对应的路由表项,通过将自己在路由表项中对应的目的序列号与RREQ中的进行比较来决定该路径是否是最新的。如果后者大于等于前者,那么该中间节点不应该用它的已记录路径来对RREQ作出回应。相反,它会转播这个RREQ。当目的节点d接收到一个RREQ时,它会将该RREQ中的DestSequenceNo值与序列号做比较,即是在节点d中得到的SNd值。如果DestSequenceNo等于DestSequenceNo,目的节点会将SNd的值增加1。如果DestSequenceNo的值比SNd小,目的节点保留SNd值。然后,根据根据情况决定是否送回一个路由应答数据包。当中间节点收到RREQ请求包时,如果路由表中包含到目的节点的路径,并且该目的节点序列号大于RREQ包中的序列号,那么中间节点做出路由应答。目的节点收到RREQ包,也会做出路由应答。
所述路由应答包RREP是一个单播控制包,包括以下字段:<SourceAddr,SourceSequenceNo,DestAddr,DestSequenceNo,HopCounter,LifeTime,RequiredTrust,ActualTrust>分别表示源节点地址、源节点序列号、目的节点地址、目的节点序列号、经历的跳数、生命期、数据包所需的路径信任值和实际路径信任值。ActualTrust表示RREP应答包经历的路径上中间节点的信任值的连乘积,并且被目的节点初始化为1。这两个字段与路由请求包RREQ中对应的字段含义类似。如果一个中间节点有到达目标节点的多条路径,它会最大发送两个RREP应答,其中一个包含最小的跳数值,另一个包含最大信任值。如果目的节点接收到了多个RREQ请求包,它会最多应答开始的k路径。这些路径的信任值大于等于RREQ的RequiredTrust值,并且来自于目的节点的不同邻居节点。在此,我们假定最早到达的数据包来自于最短的路径。如果有多条路径的信任值比RequiredTrust要小,目的节点会应答来自不同邻居的最短路径中的最多k条路径。RREP包含到达目的节点的最近的序列号。参数k用来控制RREP的个数,防止RREP风暴。在实验中将k值设为3。如果一个中间节点得到一个RREP,它就会通过一条路径单播该RREP,这条路径的PathTrust值不小于该RREP的RequiredTrust值并且HopCount值是所有到达源节点的路径中最小的。当该RREP回到源节点时,路径上的每一个节点创建一个到达目的节点的前向路径,并将它的截止时间赋值给源和目的节点。
步骤3:节点s在候选路径中选择一条满足信任值需要并且具有最小跳数的路径作为转发路径,跳转到步骤5。
步骤4:如果没有满足信任值需求的路径,节点s将返回错误提示,路由过程结束。
步骤5:如果一条路径被选中(假设选中的下一跳为节点n),那么节点s将节点n的信任记录列表中的请求次数NA增加1,并将数据包插入到包缓冲区中,并将重发次数设为0,然后发送该数据包。
所述信任记录列表用于记录邻居节点的信任信息和转发率。每一个节点都拥有一个信任记录列表。该结构包含节点ID、节点信任度、控制包成功转发次数NC和请求次数NA、数据包成功转发次数NC和请求次数NA、包缓冲区。在发送一个控制包/数据包之前,发送者将下一条节点的控制包/数据包的NA加1。如果是广播数据包,发送增加所有邻居节点的NA。如果目的节点是邻居节点,这时目的节点的NA不变。为了检测一个包是否被成功转发,发送者将包发送出去后并不立即删除该包,而是将该包放入包缓冲区。当该包被监听到正确转发后,相应的节点的NC会加1,包缓冲区中的相应包才会被真正删除。包缓冲区用于记录最近发送的所有包的信息。如果下一跳节点成功转发了数据包,则该包缓冲区内对应包将被删除掉。如果一个包在一段时间内仍然停留在包缓冲区,这说明该包没有被转发,那么节点重发该数据包到下一跳节点。当重发次数大于阈值时(实验中只重发一次),该包将被删除。发送者定期更新每个节点的信任度。如果节点的信任度变化超过信任更新阈值,那么发送者将向邻居节点广播一个路由更新包。
步骤6:如果节点s监听到节点n正确转发了该数据包,那么节点s增加节点n的成功转发次数NC,并从包缓冲区中删除该包。路由过程结束。
步骤7:如果转发数据包在一段时间内没有被监听到,并且重发次数小于1,那么重发次数加1,源节点向节点n重发数据包,跳转6)。
步骤8:如果重发次数大于1,那么节点s认为节点n移动出通信范围或故意不进行转发,将尝试其它转发路径,跳转2)。
每个节点都将定期进行恶意节点检测,如果一个邻居节点的信任值小于黑名单信任阈值,那么该邻居节点将被认为恶意节点,添加到黑名单中。每个节点都维护一张黑名单节点列表。一旦一个邻居节点进入黑名单后,源节点将永远不会和该节点通信,该节点发出的路由请求也将不予转发或应答。如果一个节点进入了所有邻居的黑名单,那么该节点将被“孤立”,它既不会作为转发节点,也不会被应答,将被排除出局部网络。如果该节点想参与网络通信,它只能移动到一个新的子网中,作为新到节点被赋予一个初始的信任值,参与该子网的通信。
本发明一种基于包转发率的无线自组织可信路由协议,试图在一次路由查找过程中发现多条转发路径,从中选择一条跳数最少的路径作为数据包转发路径。只有当所有的候选路径都断开或者都不能满足数据包信任值需求时,源节点才会发起一次新的路由发现过程。
下面举例说明路由发现过程。
图3(a)显示了某一时刻的网络拓扑结构和节点的信任值。该例子中所使用的假设如下:
(1)所有的节点都没有到达节点D的任何路径而节点A试图发送一个数据包给节点D。
(2)数据包要求路径上的信任值大于0.7。
(3)所有节点的序列号等于5,节点A的BroadcastID值等于8。
(4)一个路径表项的最大截止时间等于9,数据包的每次传输花费一个时间单位。
(5)节点A初始化到达节点D的一个路径发现,并将一个RREQ广播给它的邻居。
节点A广播的RREQ中包含了两个额外的区域:RequiredTrust(0.7)和ActualTrust(1)。在节点B接收到来自节点A的RREQ后,它不仅仅会创建一条到达节点A的反向路径而且将该RREQ转播给它的邻居。在节点B的RREQ传输中,ActualTrust等于TP(B,A),例如ActualTrust=1。节点B还会接收来自于节点F的另一个RREQ副本,但是这个副本会被丢掉因为线路P(B,F,E,A)的信任值小于线路P(B,A),而线路P(B,F,E,A)却更长。节点B接收到最近RREQ副本之后,它会创建一个到达节点F的路径,并更新现存路径的截止时间(ET)。到达节点A的ET值会改成7因为已经过去了两个时间单位。节点B接收到第二个RREQ副本后的路由表如图3(b)所示。节点F会成功接收来自于节点B和节点E的RREQ。对于节点F有两种情况:情况(1):如果节点F较早成功接收到来自于节点B的RREQ,它会广播该RREQ。在这个RREQ中,HopCounter改变成2并且ActualTrust更新为ActualTrust×TFB(比如,1×0.8)。在从节点E接收到第二个RREQ副本之后,节点F也会将其广播因为后到的副本指明了一条相对于先前路径(TP(F,B,A)=0.8)有更大信任值(TP(F,E,A)=1)的路径。情况(2):如果节点F较早成功接收到来自于节点E的RREQ副本,它会将该副本广播至节点G。然而,来自于节点B的RREQ副本会被丢掉因为这两条路径有相同的跳数并且路径P(F,B,A)比路径P(F,E,A)有更小的信任值。这两种情况理论上会发生,但是为了简化,在接下来的讨论中我们假定发生了第二种情况。
RREQ的一个副本由节点C向后传输而另一个副本由节点G向后传输。在接收到来自于节点C的第一个副本之后,目的节点D创建一个到达节点C和节点A的路径,并单播一个RREP给节点C。一个时间单位之后,节点D接收到来自于节点G的第二个RREQ副本,创建一个到达节点G的路径。路径P(D,G,F,E,A)的信任值等于0.81比路径P(D,C,B,A)的信任值大。因此,节点D会创建另一个到节点A的路径,该路径中的下一跳节点是G。
此时,节点D的路由表如图3(c)所示。然后,节点D会单播一个RREP到节点G。从节点C接收到这个RREP后,节点B会附加到节点C和到节点D的路径到他的路由表中。如图3-3(d)所示,到节点D的路由表项是<NextHop=C,HopCount=2,PathTrust=0.9,ExpirationTimeout=9>。最后,节点A接收来自节点B和节点E的两个RREP副本,创建两条到节点D的路径。节点A接收到第二个副本之后,它的路由表如图3(e)所示,其中一个表项(命名为r1)为<NextHop=B,HopCount=3,PathTrust=0.72,ExpirationTimeout=7>,另外一个(命名为r2)是<NextHop=E,HopCount=4,PathTrust=0.81,ExpirationTimeout=9>。
发现路径之后,节点A找到两个到达节点D的信任路径并且他们的信任值比要求的值(0.7)要大。节点A会选择节点B而不是节点E作为下一跳因为路径r1比路径r2要短。节点B从节点A接收到数据包然后在它的路由表中寻找到节点D的最短路径。节点B选择节点C作为下一跳来向后传递数据包。最后,数据包经由线路(A→B→C→D)到达目的节点。如果另一个数据包经由一条信任值小于0.8的路径到达节点D,路径(A→E→F→G→D)会被选择。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于包转发率的无线自组网可信路由协议,其特征是:包括以下步骤:
(1)源节点查找自身路由表,如果存在路径信任值大于数据包设定的最低信任值需求的路由表项,转入步骤(3),否则进入步骤(2);
(2)源节点发起一个路由发现过程(route discovery),一次路由发现过程后,若有一条或多条路径被找到,将找到的路径作为候选路径,插入到目的节点的路由表项中;
(3)源节点在候选路径中选择一条满足信任值需要并且具有最小跳数的路径作为转发路径,跳转到步骤(4);如果没有满足信任值需求的路径,源节点将返回错误提示,路由过程结束;
(4)如果一条路径被选中,假设选中的下一跳为节点n,那么源节点将节点n的信任记录列表中的请求次数NA增加1,并将数据包插入到包缓冲区中,并将重发次数设为0,然后发送该数据包;
(5)源节点监听到节点n是否正确转发了该数据包,如果源节点监听到节点n正确转发了该数据包,那么源节点增加节点n的成功转发次数NC,并从包缓冲区中删除该包,路由过程结束;如果转发数据包在设定时间内没有被监听到,并且重发次数小于1,那么重发次数加1,源节点向节点n重发数据包,重新开始步骤(5);
(6)如果重发次数大于1,那么源节点认为节点n移动出通信范围或故意不进行转发,将尝试其它转发路径,跳转至步骤(2),直至路由过程结束。
2.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(1)中,所述路径信任值为中间节点信任值的连乘积,即TP(t)=∏({Tjk(t)|nj,nk∈P and nj→nk and nk≠Nd});
其中nj和nk是路径P中任意两个相邻的节点,nj→nk表示节点nk是节点nj的下一跳节点,Nd是路径P的目的节点;Tjk(t)为节点j对节点k的信任度,表示为Tjk(t)=w1×CFRjk(t)+w2×DFRjk(t);
其中,CFRjk(t)和DFRjk(t)表示控制包转发率和数据包转发率;常数w1和w2分别是是控制包转发率和数据包转发率的加权因子。
3.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(2)中,所述路由发现过程通过路由请求和路由应答来实现,路由发现过程中,源节点将发起一次局部网络的洪泛广播,请求查找到目的节点的路由;目的节点或知道目的节点的中间节点将会返回路由应答包。
4.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(2)中,每个节点都维护两个单调递增的序列号:Sequence Number和Broadcast ID;其中,Sequence Number表明了自身的时间信息,每返回一个应答包,该值加1;Broadcast ID用于表明路由请求包RREQ、路由更新包RUPD和路由应答包RERR的新鲜度;
所述步骤(2)中,所述路由请求包RREQ具有的字段信息包括:<BroadcastID,SourceAddr,SourceSequenceNo,DestAddr,DestSequenceNo,HopCounter,RequiredTrust,ActualTrust>;依次分别表明广播ID、源节点地址、源节点序列号、目的节点地址、目的节点序列号、经历的跳数、数据包需要的信任值和路径信任值;其中,RequiredTrust字段由源节点设置,在RREQ传输过程中保持不变,ActualTrust字段表明了RREQ包经历的路径的信任值,它等于经历的中间节点的信任值的连乘积,它被源节点初始为1,随着RREQ包的传输,该值逐渐减小;如果源节点的路由表中没有到目的节点路径,那么DestSequenceNo设置为0;如果源节点中包含到目的节点的路径,但是该路径的信任值小于数据包的需求,那么源节点使用路由表中的目的节点序列号作为RREQ中DestSequenceNo的初始值。
5.如权利要求4所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(2)中,当一个中间节点j从它的邻居节点k接收到一个RREQ数据包时,具体方法包括以下步骤:
(2-1)如果在节点k的本地路由表中不存在到k的路径,就将PathTrust路径信任度值设为1,创建一条到k的路径;
(2-2)检验是否接收过与当前RREQ相同的副本;如果有,并且当前RREQ的HopCounter值比先前接收的大,PathTrust值比先前的少,也就是说,当前RREQ对应的路径比已经存在的更长,信任值更小,那么,这个RREQ就应当被丢掉,过程结束;否则,至(2-3);
(2-3)如果节点k不是源节点,从节点j利用之前RREQ的跳(节点k)作为下一跳,创建一条反向的路径;这条反向路径的信任值设为ActualTrust(简称为AT)和Tjk的乘积,其中Tjk或者已知,若未知,则设为min(AT,0.75);
(2-4)如果到达目的节点的一条有效路径是可得到的,并且这条路径的SequenceNumber比RREQ的DestSequenceNo大,节点j产生一个到达节点k的路由应答包RREP,否则,转入步骤(2-5);
(2-5)节点j在当Tjk已知时,利用AT×Tjk修改RREQ的AT值,Tjk未知时,AT设为min(AT,0.75);节点j将HopCounter增加1并将RREQ传播给它的所有邻居。
6.如权利要求4所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(2)中,如果一个中间节点在到达期望目的节点的路由表中有对应的路由表项,通过将自己在路由表项中对应的目的序列号与RREQ中的进行比较来决定该路径是否是最新的;然后,根据情况决定是否送回一个路由应答数据包;当中间节点收到RREQ请求包时,如果路由表中包含到目的节点的路径,并且该目的节点序列号大于RREQ包中的序列号,那么中间节点做出路由应答;目的节点收到RREQ包,也会做出路由应答。
7.如权利要求6所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(2)中,如果路由表项中对应的目的序列号小于RREQ中的目的序列号,那么该中间节点不应该用它的已记录路径来对RREQ作出回应;相反,它会转播这个RREQ;当目的节点d接收到一个RREQ时,它会将该RREQ中的DestSequenceNo值与序列号做比较,即是在节点d中得到的SNd值;如果DestSequenceNo等于DestSequenceNo,目的节点会将SNd的值增加1;如果DestSequenceNo的值比SNd小,目的节点保留SNd值。
8.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(4)中,所述信任记录列表用于记录邻居节点的信任信息和转发率,每一个节点都拥有一个信任记录列表;该结构包含节点ID、节点信任度、控制包成功转发次数NC和请求次数NA、数据包成功转发次数NC和请求次数NA、包缓冲区;在发送一个控制包/数据包之前,发送者将下一条节点的控制包/数据包的NA加1;如果是广播数据包,发送增加所有邻居节点的NA;如果目的节点是邻居节点,这时目的节点的NA不变。
9.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(5)中,为了检测一个包是否被成功转发,发送者将包发送出去后并不立即删除该包,而是将该包放入包缓冲区;当该包被监听到正确转发后,相应的节点的NC会加1,包缓冲区中的相应包才会被真正删除;包缓冲区用于记录最近发送的所有包的信息;如果下一跳节点成功转发了数据包,则该包缓冲区内对应包将被删除掉;如果一个包在一段时间内仍然停留在包缓冲区,这说明该包没有被转发,那么节点重发该数据包到下一跳节点;当重发次数大于阈值时,该包将被删除。
10.如权利要求1所述的一种基于包转发率的无线自组网可信路由协议,其特征是:所述步骤(5)中,发送者定期更新每个节点的信任度,如果节点的信任度变化超过信任更新阈值,那么发送者将向邻居节点广播一个路由更新包;每个节点都将定期进行恶意节点检测,如果一个邻居节点的信任值小于黑名单信任阈值,那么该邻居节点将被认为恶意节点,添加到黑名单中;每个节点都维护一张黑名单节点列表;一旦一个邻居节点进入黑名单后,源节点将永远不会和该节点通信,该节点发出的路由请求也将不予转发或应答;如果一个节点进入了所有邻居的黑名单,那么该节点将被“孤立”,它既不会作为转发节点,也不会被应答,将被排除出局部网络;如果该节点想参与网络通信,它只能移动到一个新的子网中,作为新到节点被赋予一个初始的信任值,参与该子网的通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410579270.2A CN104301222A (zh) | 2014-10-24 | 2014-10-24 | 一种基于包转发率的无线自组网可信路由协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410579270.2A CN104301222A (zh) | 2014-10-24 | 2014-10-24 | 一种基于包转发率的无线自组网可信路由协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104301222A true CN104301222A (zh) | 2015-01-21 |
Family
ID=52320795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410579270.2A Pending CN104301222A (zh) | 2014-10-24 | 2014-10-24 | 一种基于包转发率的无线自组网可信路由协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301222A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141528A (zh) * | 2015-07-30 | 2015-12-09 | 福建师范大学 | 一种基于Core-Selecting和信誉机制的物联网可信路由选择方法 |
CN105141527A (zh) * | 2015-07-30 | 2015-12-09 | 福建师范大学 | 一种物联网网络中路由安全和隐私保护的方法 |
CN106060890A (zh) * | 2016-07-29 | 2016-10-26 | 北京智芯微电子科技有限公司 | 一种基于声誉值的路径选取方法及装置 |
CN106658355A (zh) * | 2016-09-26 | 2017-05-10 | 珠海格力电器股份有限公司 | 一种在蓝牙ble组网中转发广播包的方法及系统 |
WO2018121168A1 (zh) * | 2016-12-30 | 2018-07-05 | 电信科学技术研究院 | 一种资源排除的方法及网络节点 |
CN108805528A (zh) * | 2018-05-29 | 2018-11-13 | 深圳凯达通光电科技有限公司 | 电力施工现场信息化智能监管系统 |
CN111769867A (zh) * | 2020-06-29 | 2020-10-13 | 大连大学 | 卫星网络安全路由方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131193A (zh) * | 2010-01-12 | 2011-07-20 | 中国人民解放军总参谋部第六十一研究所 | 无线传感器网与计算机网融合网络的安全路由方法 |
CN102857988A (zh) * | 2012-03-21 | 2013-01-02 | 北京交通大学 | 认知无线Ad Hoc网络中的按需路由实现方法 |
CN103118412A (zh) * | 2013-02-27 | 2013-05-22 | 山东大学 | Ad Hoc网络中基于信任的按需多路径矢量路由算法 |
US20140226579A1 (en) * | 2013-02-14 | 2014-08-14 | Unisys Corporation | Apparatus, method, and system for a destination cached routing protocol for mobile ad hoc networks |
CN104080140A (zh) * | 2013-03-29 | 2014-10-01 | 南京邮电大学 | 一种移动自组织网络中基于信任评估的协作通信方法 |
-
2014
- 2014-10-24 CN CN201410579270.2A patent/CN104301222A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131193A (zh) * | 2010-01-12 | 2011-07-20 | 中国人民解放军总参谋部第六十一研究所 | 无线传感器网与计算机网融合网络的安全路由方法 |
CN102857988A (zh) * | 2012-03-21 | 2013-01-02 | 北京交通大学 | 认知无线Ad Hoc网络中的按需路由实现方法 |
US20140226579A1 (en) * | 2013-02-14 | 2014-08-14 | Unisys Corporation | Apparatus, method, and system for a destination cached routing protocol for mobile ad hoc networks |
CN103118412A (zh) * | 2013-02-27 | 2013-05-22 | 山东大学 | Ad Hoc网络中基于信任的按需多路径矢量路由算法 |
CN104080140A (zh) * | 2013-03-29 | 2014-10-01 | 南京邮电大学 | 一种移动自组织网络中基于信任评估的协作通信方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141528A (zh) * | 2015-07-30 | 2015-12-09 | 福建师范大学 | 一种基于Core-Selecting和信誉机制的物联网可信路由选择方法 |
CN105141527A (zh) * | 2015-07-30 | 2015-12-09 | 福建师范大学 | 一种物联网网络中路由安全和隐私保护的方法 |
CN105141527B (zh) * | 2015-07-30 | 2018-09-18 | 福建师范大学 | 一种物联网网络中路由安全和隐私保护的方法 |
CN106060890A (zh) * | 2016-07-29 | 2016-10-26 | 北京智芯微电子科技有限公司 | 一种基于声誉值的路径选取方法及装置 |
CN106060890B (zh) * | 2016-07-29 | 2019-10-22 | 北京智芯微电子科技有限公司 | 一种基于声誉值的路径选取方法及装置 |
CN106658355A (zh) * | 2016-09-26 | 2017-05-10 | 珠海格力电器股份有限公司 | 一种在蓝牙ble组网中转发广播包的方法及系统 |
CN106658355B (zh) * | 2016-09-26 | 2019-11-12 | 珠海格力电器股份有限公司 | 一种在蓝牙ble组网中转发广播包的方法及系统 |
WO2018121168A1 (zh) * | 2016-12-30 | 2018-07-05 | 电信科学技术研究院 | 一种资源排除的方法及网络节点 |
CN108805528A (zh) * | 2018-05-29 | 2018-11-13 | 深圳凯达通光电科技有限公司 | 电力施工现场信息化智能监管系统 |
CN111769867A (zh) * | 2020-06-29 | 2020-10-13 | 大连大学 | 卫星网络安全路由方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301222A (zh) | 一种基于包转发率的无线自组网可信路由协议 | |
Tamilselvan et al. | Prevention of blackhole attack in MANET | |
Biswas et al. | Trust based energy efficient detection and avoidance of black hole attack to ensure secure routing in MANET | |
Jhaveri et al. | A sequence number based bait detection scheme to thwart grayhole attack in mobile ad hoc networks | |
Aggarwal et al. | Trust based secure on demand routing protocol (TSDRP) for MANETs | |
Wu et al. | Link stability‐aware reliable packet transmitting mechanism in mobile ad hoc network | |
Santhosh Krishna et al. | Detecting malicious nodes for secure routing in MANETS using reputation based mechanism | |
Sandhya Venu et al. | Invincible AODV to detect black hole and gray hole attacks in mobile ad hoc networks | |
Iqbal et al. | Adaptive Cross‐Layer Multipath Routing Protocol for Mobile Ad Hoc Networks | |
Sharma et al. | Ant colony based node disjoint local repair in multipath routing in MANET network | |
Pu | Energy depletion attack against routing protocol in the Internet of Things | |
Vijaya Kumar et al. | Self‐Adaptive Trust Based ABR Protocol for MANETs Using Q‐Learning | |
Li et al. | Enhanced location privacy protection of base station in wireless sensor networks | |
Gurung et al. | Mitigating impact of blackhole attack in MANET | |
Yadav et al. | A survey on selfish node detection in manet | |
Raj K et al. | Multi-objective optimization assisted network condition aware QOS-routing protocol for MANETS: mncqm | |
Gujral et al. | Secure qos enabled on-demand link-state multipath routing in manets | |
Bhagat et al. | A generic request/reply based algorithm for detection of blackhole attack in MANET | |
Desai et al. | Learning based route management in mobile ad hoc networks | |
Aitha et al. | A strategy to reduce the control packet load of aodv using weighted rough set model for manet | |
Azer et al. | Intrusion Detection for Wormhole Attacks in Ad hoc Networks: A Survey and a Proposed Decentralized Scheme | |
Kifle et al. | Improving probabilistic flooding using topological indexes | |
Singh et al. | Flood Tolerant AODV Protocol (FT-AODV) | |
Thillaikarasi et al. | An efficient DSR protocol to detect blackhole attacks in WMN using cross layer approach | |
Renold et al. | A trust-based AODV routing protocol for improved QoS in mobile ad-hoc networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150121 |
|
RJ01 | Rejection of invention patent application after publication |