CN101969661A - 一种移动Ad hoc网络中数据传输方法、装置及系统 - Google Patents

一种移动Ad hoc网络中数据传输方法、装置及系统 Download PDF

Info

Publication number
CN101969661A
CN101969661A CN2010105275322A CN201010527532A CN101969661A CN 101969661 A CN101969661 A CN 101969661A CN 2010105275322 A CN2010105275322 A CN 2010105275322A CN 201010527532 A CN201010527532 A CN 201010527532A CN 101969661 A CN101969661 A CN 101969661A
Authority
CN
China
Prior art keywords
node
route
bag
link
intermediate node
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.)
Granted
Application number
CN2010105275322A
Other languages
English (en)
Other versions
CN101969661B (zh
Inventor
邹力鹍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Watchdata Co ltd
Original Assignee
Beijing WatchData System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing WatchData System Co Ltd filed Critical Beijing WatchData System Co Ltd
Priority to CN201010527532.2A priority Critical patent/CN101969661B/zh
Publication of CN101969661A publication Critical patent/CN101969661A/zh
Application granted granted Critical
Publication of CN101969661B publication Critical patent/CN101969661B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种移动Ad hoc网络中的数据传输方法、装置及系统,该方法包括:源节点根据保存的错误链接信息,选择一条到目的节点的路由;源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包,并接收目的节点收到所述数据包后通过所述路由中的各个中间节点依次转发返回的数据确认包,其中,中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包;源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点与其上一跳节点之间的链路确定为错误链接,并保存在错误链接信息中。

Description

一种移动Ad hoc网络中数据传输方法、装置及系统 
技术领域
本发明涉及通信技术领域,特别涉及一种移动Ad hoc网络中数据传输方法、装置及系统。 
背景技术
移动Ad hoc网络是一种无线的、没有中心基础设施支持的移动网络,网络中的节点均由移动终端构成。移动Ad hoc网络中的节点既是通信终端,又具有路由功能,并可自由移动,数据以多跳的方式发送,无需固定基础设施的支持便可提供灵活方便的通信,拓宽了移动通信的应用,可应用在军事、交通、教育等诸多领域,具有非常光明的应用前景。然而,由于终端的移动性、网络拓扑结构的可变性、传输的多跳性、无线信道的不可靠性、网络资源的有限性等众多移动Ad hoc网络独有的特性,使得安全问题已成为制约移动Ad hoc网络应用的关键,由于网络层的路由协议负责提供关键的路由服务,因此路由协议的安全性直接影响了移动Ad hoc网络的安全性和可用性,是移动Ad hoc网络安全研究中至关重要的环节。为了保证网络在路由形成过程中的安全,需要将密码技术应用到已有的路由协议中,以满足移动Ad hoc网络的安全需求,即设计可对抗攻击的安全路由协议。 
早期的Ad hoc网络路由协议,如动态源路由(Dynamic Source Routing,DSR)、Ad hoc网按需距离矢量路由(Ad hoc On-Demand Distance Vectorrouting,AODV)、目的节点序列距离向量路由(Destination-Sequenced DistanceVector routing,DSDV)等,均假设安全的网络环境,不能对抗针对路由的攻击,因此研究者在DSR、AODV、DSDV等协议的基础上通过应用密码技术提出了安全Ad hoc网距离矢量路由(Secure Efficient Ad hoc Distance vector routing,SEAD)、Ariadne、Ad hoc网认证路由(Authenticated Routing for Ad hocNetworks,ARAN)、安全Ad hoc网按需距离矢量路由(Secure Ad hocOn-Demand Distance Vector routing,SAODV)等安全路由协议。这些协议或机制能有效地抵制网络的外部攻击,却无法预防内部攻击。移动Ad hoc网络中按攻击来源可将攻击分为外部攻击和内部攻击,外部攻击指没有获得认证的网络节点对网络的攻击,而内部攻击指来自于内部有授权的、得到认证的节点的攻击,内部攻击对网络的威胁更大,恶意节点获得网络的合法密钥后可以向网络中其他节点广播错误的路由信息,被俘获而变节的节点也能发起各种攻击。 
Byzantine攻击是内部攻击的典型代表,Byzantine攻击是在网络层由认证节点发起的任何导致网络性能下降的行为,如截获、修改和伪造包、(选择性)丢包等。造成节点Byzantine行为的原因是多样的:物理链路失效,自私节点为了保存自身能量,或者是攻击节点的恶意行为。由于Byzantine攻击对网络路由性能的破坏不容忽视,因此需要相应的检测机制对是否存在Byzantine行为进行检测,并使用检测结果指导未来路由建立。 
Awerbuch等人提出的按需安全抗Byzantine路由(On-Demand SecureByzantine Resilient Routing,ODSBR)协议采用二分查找和聚集签名技术来发现导致Byzantine错误的错误链接。在ODSBR协议中,一旦源节点确认在源节点和目的节点之间出现了Byzantine错误,就开始在传输路径上进行二分搜索以定位错误链接,具体如下:源节点通过在数据包中加入“必须发送数据确认包的中间节点列表”从而控制对错误链接的搜索;必须回复数据确认包的节点叫做探测节点,探测节点集合附加在合法的数据包中,探测节点集合定义了一个不相交间隔的集合,这些间隔覆盖了整条路径。每一个间隔包括了在两个连续探测节点之间的子路径。当在间隔上检测到错误时,插入新的探测节点将间隔一分为二。新的探测节点将附加在随后的数据包中。间隔不断分裂直到在一个链接上探测到错误。路径分裂过程是每发现一次错误进行一次间隔的分裂操作。这样做的结果是一个错误链接的检测是在logn次错误发生之后,其中, n是路径的长度。 
ODSBR的Byzantine错误检测基于二分查找法进行,当没有攻击时,源节点、目的节点之间包含一个从源节点到目的节点的完好的间隔,以一条共有九个节点的路由为例进行说明,该路由中除源节点和目的节点外,还包含七个中间节点。假设当第三个中间节点是攻击节点致使Byzantine错误时,源节点登记该从源节点到目的节点的这条路径上存在一个错误,开始错误检测。源节点为了定位错误链接,采用二分查找法开始在这条路径中搜索错误链接,为此,要在发送的数据包中增加探测节点信息,此时探测节点是位于七个中间节点的中间位置的节点,即第四个中间节点,第四个中间节点与源节点和目的节点之间分别形成两个间隔。如果攻击节点在第四个中间节点之前,则攻击节点丢弃内嵌有探测节点的数据包,将致使第四个中间节点无法回应确认包,此时,源节点确定错误链接出现在第四个中间节点之前,即前半段链路中,则向前折半查找,将位于源节点和第四个中间节点的中间位置的节点,即第二个中间节点作为探测节点加入探测节点序列,由于错误链接出现在第二个中间节点之后,所以该节点将成功发送数据确认包,于是源节点确定错误链接出现在第二个中间节点和第四个中间节点之间的链路上,则将位于这段链路中间的节点,即第三个中间节点加入探测节点,该节点将无法发送确认包。这样,源节点可以确认错误链接位于第二个节点和第三个节点之间。 
在现有的ODSBR协议中,当在数据传输的过程中,发现错误时,则转入检测模式,在检测模式中通过控制探测节点来定位错误链接。在中间节点传输含有探测节点的数据包时,每个中间节点都需要对数据包进行签名,采用聚集签名技术进行传输。 
在检测模式下发现的错误链接,将被源节点记录下来,作为下次传输数据之前选择路由的依据。下面介绍一下现有技术中选择路由的过程。 
在数据传输之前,需要事先确定路由,如果源节点的路由表中存在到目的节点的路由,则直接使用该路由,如果不存在到目的节点的路由,则要进行路 由发现过程:由源节点向相邻节点广播路由请求消息,该消息中包含源节点和目的节点的地址,相邻节点收到该消息后再把该消息广播给自身的相邻节点,直到目的节点收到该消息后,目的节点据此构造路由应答消息,并通过广播的方式发送给源节点。源节点可能会收到多条到目的节点的路由,这时,源节点根据在上次数据传输过程中定位的错误链接,计算每条路由的错误链接因子的总和,路由中的每段链路都具有一个错误链接因子,当该段链路没有发现错误时,错误链接因子为1,发现错误后,错误链接因子数值将增大,因此,采用路由的错误链接因子总和来作为选择路由的依据,可以在一定程度上避免选择出现错误的路由,从而提高路由的安全性。 
但是,基于ODSBR协议的数据传输方法仍然存在以下不足:首先,采用该方法进行数据传输时,检测模式与数据传输模式分离:在检测错误链接时,需要采用检测模式,由于检测模式与纯数据传输模式不同,需要额外开销控制探测节点列表,因此Byzantine检测无法长期进行,在持续一段时间后需要切换回正常的数据传输模式,对此,恶意节点可以进行策略性攻击:在检测阶段表现良好,进入正常数据传输模式后继续攻击;其次,该方法中查找错误链接时,中间节点采用聚集签名的方式传输数据包,复杂度大,并不适用于资源受限的Ad hoc网络;并且,在发现路由的过程中,采用路由的错误链接因子总和作为选择路由的依据,当存在一条跳数少,但存在错误的路由,以及一条跳数多,但不存在错误的路由时,后者可能会因错误链接因子总和较大而被淘汰,从而因为放弃了安全路由而选择跳数少的不安全路由,导致数据传输失败,降低了路由的安全性。 
发明内容
本发明提供一种移动Ad hoc网络中数据传输方法、装置及系统,用以解决数据传输过程中无法同时进行错误检测的问题。 
一种移动Ad hoc网络中的数据传输方法,包括以下步骤: 
源节点根据保存的错误链接信息,选择一条到目的节点的路由; 
所述源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包,并接收目的节点收到所述数据包后通过所述路由中的各个中间节点依次转发返回的数据确认包;其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包; 
所述源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将距离源节点最近且没有发送数据错误包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的所在链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据,。其中,所述数据错误包是由中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过所述设定阈值时向源节点发送的。 
一种移动Ad hoc网络中的数据传输装置,包括: 
路由选择单元,用于根据保存的错误链接信息,选择一条到目的节点的路由; 
发送单元,用于通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包; 
接收单元,用于接收目的节点收到所述数据包后通过所述路由中的各个中间节点依次转发返回的数据确认包,其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向该数据传输装置发送数据错误包;; 
判定单元,用于确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将没有发送数据错误包的中间节点中距离该数据传输装置最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接距离该数据传输装置最近且没有发送数据错误包的中间节点所在链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据,其中,所述数据错误包是由中间节点监测到自身转发的数据包数量和数据确认包数 量的差值超过所述设定阈值时发送的。 
一种移动Ad hoc网络中的数据传输装置,包括: 
转发单元,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包; 
监测单元,用于在监测到转发单元转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包。 
一种移动Ad hoc网络中的数据传输系统,包括:源节点、目的节点和至少一个中间节点,其中, 
源节点,用于根据保存的错误链接信息,选择一条到目的节点的路由;通过所述路由中的各个中间节点依次转发,向目的节点发送数据包;接收目的节点收到所述数据包后通过所述路由中的通过各个中间节点的依次转发返回的数据确认包;确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接距离源节点最近且没有发送数据错误包的中间节点所在链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据; 
中间节点,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包;在监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包; 
目的节点,用于在接收到源节点发送的数据包时向源节点返回数据确认包。 
本发明实施例中实现移动Ad hoc网络中数据传输方法、装置及系统,在源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点及其上一跳节点之间的链路确定为错误链接,其中,数据错误包是由中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过所述设定阈值时向源 节点发送的。通过源节点和中间节点分别检测自身转发的数据包和数据确认包的数量差,来确定是否存在错误链接,可以在传输数据的同时进行错误检测,从而可使错误检测的过程长时间进行,且无需额外开销控制探测节点列表。 
附图说明
图1为本发明实施例中实现移动Ad hoc网络中数据传输的方法流程图; 
图2为本发明实施例中检测错误包的示意图; 
图3为本发明一个实施例中实现移动Ad hoc网络中数据传输的装置结构图; 
图4为本发明另一个实施例中实现移动Ad hoc网络中数据传输的装置结构图; 
图5为本发明实施例中实现移动Ad hoc网络中数据传输的系统结构图。 
具体实施方式
本发明实施例提供了一种实现移动Ad hoc网络中数据传输的方法、装置及系统,可以在传输数据的同时进行错误检测,从而可使错误检测的过程长时间进行,且无需额外开销控制探测节点列表。 
本发明实施例提供了一种移动Ad hoc网络中的数据传输方法,如图1所示,包括以下步骤: 
S101:源节点根据保存的错误链接信息,选择一条到目的节点的路由; 
S102:所述源节点通过所述路由中的各个中间节点的依次转发向目的节点发送数据包,并接收目的节点通过所述路由中的各个中间节点的依次转发返回的数据确认包;,其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包; 
S103:所述源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的 中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中。 
通过采用本发明实施例提供的方法,可在传输数据的同时,进行错误链接的检测,不必额外开销控制探测节点列表。 
较佳的,所述源节点根据保存的错误链接信息,选择一条到目的节点的路由,具体包括:确定自身保存的路由表中不存在到目的节点的路由时,向目的节点发送路由请求消息;根据目的节点接收到路由请求消息后返回的路由应答消息,确定到目的节点的可用路由;确定存在多条可用路由时,根据保存的错误链接信息计算每条路由中所有链路的错误链接因子的平均值,所述链路指所述路由中相邻的两个中间节点之间的链接所组成的链路,所述错误链接因子为反映该链路出现错误的概率大小的数值;根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由。 
通过采用路由中的错误链接因子的平均值作为路由选择的依据,可以优先选择安全的路由。 
较佳的,所述根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由,包括:选择错误链接因子的平均值最小的路由,作为到目的节点的路由。 
较佳的,所述路由请求消息和路由应答消息采用基于身份的签名机制进行数字签名。基于身份的签名方式既保证了数据的安全性,又减少了计算量和网络开销。 
较佳的,为了确保所选路由中的各个中间节点没有临时出现问题,更好的保障数据的安全传输,所述通过所述路由中的各个中间节点向目的节点发送数据包的步骤之前,进一步包括:源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送第一通知包;所述目的节点收到所述第一通知包后通过所述路由中的各个中间节点的依次转发向源节点返回第一确认包;所述源节点确定成功收到所述第一确认包时,说明所选路由中的各个中间节点都做好了接 收数据的准备,则确定触发通过所述路由中的各个中间节点向目的节点发送数据包。 
当源节点没有接收到目的节点返回的第一确认包时,说明所选路由中的某段链路出现了问题,则该方法进一步包括: 
源节点确定没有接收到所述第一确认包时,查找所述路由中的错误链接,并将查找到的所述路由中的错误链接保存在所述错误链接信息中,重新根据保存后的错误链接信息,选择到目的节点的路由。 
其中,查找所述路由中的错误链接的步骤可以采用如下实现方式: 
源节点通过所述路由中的各个中间节点向目的节点发送第二通知包,所述目的节点收到所述第二通知包后通过各个中间节点的依次转发向源节点返回第二确认包,且所述路由中的各个中间节点收到所述第二通知包后向源节点返回中间节点确认包,所述中间节点确认包中包含自身转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和;源节点确定未成功收到第二确认包时,则判断是否存在未返回中间节点确认包的中间节点,若存在,则将没有返回中间节点确认包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,若不存在,则将目的节点与所述目的节点的上一跳节点所组成的链路确定为错误链接;源节点确定成功收到第二确认包时,根据接收的中间节点确认包确定各中间节点转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和,将转发的第一通知包和第二通知包的数量总和,或第一确认包和第二确认包的数量总和小于其他中间节点的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接。 
所述查找所述路由中的错误链接的步骤也可以采用如下实现方式: 
所述路由中的中间节点监测到所在链路出现错误时,向源节点发送链路错误包;所述源节点将发送链路错误包的中间节点所在链路确定为错误链接。该方式适用于中间节点能够监测到链路错误的情况,例如,在链路断开时,中间 节点可以检测到其与相邻节点的链路因断开而无法传输数据,则中间节点会向源节点发送链路错误包。 
下面详细介绍一下本发明实施例中的数据传输方法中各个步骤的具体实现方式。 
步骤S101“源节点根据保存的错误链接信息,选择一条到目的节点的路由”的一种实现过程具体包括以下步骤: 
步骤一:源节点S在发送数据之前需要选择一条到目的节点D的路由,源节点S查询自身保存的路由表中是否存在到目的节点D的有效路由,如果存在,则选择这条有效路由;如果不存在,则源节点S以广播的方式向相邻节点发送一个路由请求消息,开始路由建立过程。该路由请求消息中包括路由请求(Route REQuest,RREQ)包,在该RREQ包中含有源节点地址、目的节点地址、用于表示源节点发送消息的次数的源节点序列号以及源节点在之前的数据传输过程中所保存的错误链接信息。如果源节点是第一次传输数据,则错误链接信息可能为空,如果源节点不是第一次传输数据,则错误链接信息中应该至少包含上次的数据传输过程中所检测到的错误链接。 
为了实现对路由请求消息进行基本的安全保护,同时减少计算量和网络开销,在路由建立过程中传输路由请求消息时可以使用基于身份的数字签名机制,则源节点S  发送的路由请求消息为: 
Figure BSA00000328431500101
其中,节点S的公钥记为KS;节点S的私钥记为KS -1;IDS是节点S的地址、标识符;NS表示节点S生成的随机数;{M}KS -1表示S使用私钥对消息M进行数字签名。 
步骤二:与源节点S相邻的中间节点A在收到路由请求消息后,中间节点A根据源节点地址IDS计算源节点S的公钥KS,然后利用KS验证源节点的签名,如果验证失败,则丢弃该路由请求消息;如果验证成功,则查看中间节点A是否处理过该路由请求消息,当且仅当A没有处理过该路由请求消息或者有处理记录但当前接收的路由请求消息中的RREQ序列号更大时,将路由请求消息以 广播的方式转发给中间节点A的邻居节点。中间各节点依次以广播方式转发收到的路由请求消息,直到目的节点D接收到该路由请求消息。 
步骤三:当目的节点D首次接收到来自源节点S的路由请求消息时,验证源节点的签名成功后生成路由应答消息,该路由应答消息包含路由应答(RouteREPly,RREP)包,在RREP包中包含有源节点和目的节点的地址、用于表示目的节点接收消息次数的目的节点序列号、跳数信息、RREQ包中包含的错误链接信息以及路径节点集合path_node,其中,跳数信息为可变字段,在目的节点D生成路由应答消息时跳数信息为零,每当中间经过一个中间节点的转发,则跳数信息增加1,路径节点集合包括从目的节点D到源节点S的路径中所经过的所有中间节点。目的节点D对路由应答消息采用自身的私钥签名后以广播的方式转发该路由应答消息,该路由应答消息为  D → broadcast : { RREP | | N S | | ID D | | { RREP | | N S } K D - 1 } .
步骤四:中间节点B收到路由应答消息后,计算发送该路由应答消息的节点的公钥,验证路由应答消息中的签名是否有效,若验证有效则更新路由应答消息中的可变字段,即将跳数信息增加1,并将自己加入到路径节点集合path_node,然后采用节点B的私钥对可变字段,即跳数信息进行数字签名后附加在路由应答消息中,以广播的方式转发修改后的路由应答消息。收到路由应答消息的各个中间节点都执行上述操作,即验证签名有效后,更新可变字段的跳数信息并对跳数信息进行签名,将自身加入到路径节点集合后转发该路由答应消息,直到源节点S收到路由答应消息。 
较佳的,为了减少网络开销,各个中间节点收到路由应答消息后,可以根据消息中包含的源节点和目的节点地址以及目的节点序列号等信息,先判断之前是否处理过该路由应答消息,若已经处理过该消息,则根据消息中所携带的错误链接信息计算当前节点与路径节点集合中的各个节点到目的节点之间所形成路径的错误链接因子的平均值,计算方式如下:每两个节点之间形成一条链路,该链路具有一个错误链接因子,表示该链路出现错误的可能性大小,错 误链接因子越大表示这条链路出现错误的可能性越大,用当前节点到目的节点的各个链路的错误链接因子之和除以链路的个数,得到错误链接因子的平均值,如果所得的错误链接因子平均值小于根据以前收到的路由应答消息中的错误链接信息和路径节点集合得到错误链接因子平均值,则中间节点将自身加入到路径节点集合中,更新收到的路由应答消息中的可变字段,即跳数信息,对可变字段签名后附加在路由应答消息中进行转发,否则,不处理该路由应答消息,这里,也可以采用其他参考因素,如错误链接因子的总和来作为是否转发的依据。通过中间节点根据错误链接判断是否对重复收到的路由应答消息进行转发,从而可以舍弃掉出错可能性大的路由,且大大减少了网络开销。 
步骤五:当源节点S收到路由应答消息后,仍然需要做类似于中间节点的检查和计算,验证通过的路由应答消息中所包含的路由为有效路由。如果源节点S收到多个有效路由,可以优先选择错误链接因子平均值最小的路由,当错误链接因子平均值相同时,可以优先选择跳数小的路由,如果链接错误因子平均值相同,且跳数相同,则源节点S可以根据自身的选择策略从中选择出一个路由作为最终路由。 
以上就是步骤S101的一种具体实施方式,通过上述步骤,在移动Ad hoc网络中成功的建立了从源节点S到目的节点D的路由。通过该方式,利用计算量和网络开销较少的基于身份的签名机制传输消息,减少了网络开销,简化了传输过程,同时,在选择路由时使用错误链接因子平均值作为路由选择标准,比ODSBR协议中采用错误链接因子总和更为合理,可以选择出错可能性最低的路由,从而大大提高了路由的安全性。 
下面介绍一下步骤S102中“所述源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包,并接收目的节点通过所述路由中的各个中间节点的依次转发返回的数据确认包”的一种具体实现过程,在执行该步骤之前,为了更好的确保所选路由的安全性,可以事先对路由中的各节点进行通知,若通知成功则发送数据包,若通知失败,则查找错误链接并保存,然后重新根 据保存后的错误链接信息由步骤S101开始执行。对路由中的各节点进行通知的步骤如下: 
步骤一:源节点S通过所述路由中的各个中间节点向目的节点D发送第一通知包。 
当选择了从源节点S到目的节点D的路由后,在源节点S向目的节点D发送数据包之前,为了确保数据包的传输安全,需要对所选路由中的各节点进行通知,告知各个节点准备接收数据,通知过程为:源节点S沿所选路径发送签名的第一通知包,即通知(INFOmation,INFO)包,该INFO包包含所选路由的路径节点集合path_node,在路径节点集合中存储着该路由中的各个节点,因此INFO包以单播方式发送,且接收到该INFO包的各节点根据路径节点集合path_node,可以获知下一跳节点,从而继续单播该INFO包给下一跳节点,通过这种方式,告知包括目的节点在内的所有节点准备接收数据。目的节点D接收到INFO包之后,通过各个中间节点的转发,返回第一应答包,即INFO_ACK包给源节点S,告知源节点S已经准备好接收数据。 
表1 
  INFO_ud   srcAddr   destAddr   path_node   ACK_indicator   INFO_counter   ACK_counter
其中,INFO包格式如表1所示。其中,INFO_id字段是INFO包的序列号,同源节点地址和目的节点地址一起作为INFO包的标识;srcAddr字段和destAddr字段则分别表示源节点地址和目的节点地址;path_node字段指路径节点集合,记录了该路由中的所有中间节点;ACK_indicator字段是1 bit的标识位,指明转发INFO包的中间节点是否需要回复确认包,可以用0表示不需回复,用1表示需要回复;INFO_counter和ACK_counter则是在ACK_indicator为1时所使用的字段,其值分别表示中间节点所收到的来自源节点的INFO包以及来自目的节点的通知确认(information_ACKnowledgement,INFO_ACK)包的数量。在本步骤中源节点S发送的INFO 包中ACK_indicator字段设置为0,表示中间各节点收到INFO包后不需要回复确认包INFO_ACK,只需对INFO包签名后单播给到D的下一跳节点。 
表2 
  srcAddr   destAddr   Data_counter   ACK_counter
步骤二:中间各节点收到INFO包后,验证签名,当验证成功时,判断自身是否在path_node中,如果path_node字段中的路径节点集合中包括该节点,则该节点将INFO包转发给路由中的下一跳节点,具体实现时,该节点以单播方式发送该INFO包,并且,该节点创建一个统计列表,用于统计在数据传输过程中,该节点转发的源节点和目的节点的数据包和数据确认包的数量,该统计列表的格式如表2所示,其中srcAddr字段、destAddr字段分别表示数据传输的源节点和目的节点,Data_counter、ACK_counter则分别表示创建统计列表的节点在转发源节点和目的节点之间的数据的过程中所转发的源节点发送的数据包以及目的节点回复的数据确认包的数量。如果中间节点之前曾经转发过源节点到目的节点的数据包,则在中间节点上有可能已经存在一个源节点到目的节点的统计列表,这时,不需要重新创建统计列表,只需将该统计列表中的统计数据清零即可。当然,该统计列表也可以在其他时机建立,例如在步骤S103中传输数据的过程中,当中间节点第一次接收到数据包时,根据接收到的数据包中包含的源节点和目的节点的信息建立该统计列表,总之,只要能够实现统计的目的就可以;如果path_node字段中的路径节点集合中不包括该节点,则该节点不转发该INFO包。当签名验证失败时,该节点释放INFO包,不执行转发。当中间节点收到验证成功的INFO包后,还可以更新该节点上存储的路由条目,即根据收到的INFO包,将源节点到该节点的路由的上一跳更新为转发INFO包给该节点的节点;根据收到的INFO_ACK包,将该节点到目的节点的路由的下一跳更新为转发INFO_ACK包给该节点的节点。 
步骤三:中间各节点依次执行上一步骤中的操作,直到目的节点D收到 INFO包,当目的节点D收到INFO包后,验证签名成功后,将目的节点到源节点的路由中的下一跳更新为转发INFO包给目的节点的节点,并通过中间节点的转发向源节点S发送签名的第一通知确认包,即INFO_ACK包。 
步骤四:在预设的时间内,源节点S判断是否接收到来自目的节点D签名的第一通知确认包,即INFO_ACK包。如果接收到目的节点发送的INFO_ACK包,则执行步骤五,否则执行步骤六。 
步骤五:由于源节点S收到来自目的节点D的第一通知确认包后,表示路由中的每个节点都已经收到INFO包,说明每个节点都已经准备好了接收数据。因此,源节点开始进行数据传输,使用选择的路由向目的节点发送数据包。 
步骤六:当源节点S没有接收到目的节点D签名的第一通知确认包,即INFO_ACK包时,则表明网络中存在以下几种情况:因节点的移动性导致的链路失效,致使INFO包或INFO_ACK包的传输不成功;正常节点验证来自上一跳节点的INFO包的签名失败丢弃INFO包;攻击节点不转发应该转发的包或篡改包。对此,源节点S做如下处理: 
源节点S如果收到来自某个中间节点的链路错误信息,即路由错误(RouteERRor,RERR)包,该RERR包是在中间节点检测到与相邻节点的链路断开或失效后以广播方式向源节点发送的。如果收到了链路错误信息,则说明路由中的相应链路失效了,源节点S将相应链路,即发送RERR包的节点到目的节点D的下一跳节点处理为错误链接即可。源节点S如果没有收到链路错误信息则说明出现了正常节点验证来自上一跳节点的INFO包的签名失败丢弃INFO包或攻击节点不转发应该转发的包或篡改包的情况,则源节点S发送第二通知包,该第二INFO包与第一次发送的第一通知包中的INFO包具有相同的INFO_id,不同的是,第二通知包的第二INFO包中的ACK_indicator标识设置为1,即要求所有接收到第二INFO包、且属于路径节点集合的中间节点都需要向源节点S回复INFO_ACK包,于是源节点S签名该包后转发给下一跳节点。相应地,当中间节点收到该INFO包,不仅需要转发INFO包给下一 跳节点,还要广播签名的INFO_ACK包给源节点,该INFO_ACK包中包含INFO_counter和ACK_counter信息。 
源节点S根据接收到的INFO_ACK定位错误链接:如果某个中间节点没有发送有效的INFO_ACK给源节点S,则源节点S将路径中第一个没有返回INFO_ACK的节点及其上一跳节点间的链路视为错误链接;如果所有中间节点都返回了INFO_ACK,则源节点S需要比较各中间节点返回的INFO_ACK包中INFO_counter和ACK_counter的数值是否一致,正常情况下,因为源节点和目的节点共转发了两次通知包和通知确认包,所以各个中间节点的INFO_counter和ACK_counter的数值应该相同,都应该等于2,但是,由于第一次源节点没有收到通知确认包,则说明一定存在某个中间节点丢弃了通知包或通知确认包,导致后续的中间节点没有收到通知包或通知确认包,因此,该节点及其后续节点本次返回的INFO_counter和ACK_counter的数值应该为1,据此,源节点S只要将与上一跳节点返回的INFO_counter或ACK_counter的数值不一致、即小于上一跳节点返回的数值的节点及其上一跳节点之间的链路视为错误链接即可。 
步骤七:源节点通过上述步骤找出错误链接之后,将这些错误链接加入到源节点保存的错误链接集合中,并发送一个新的路由请求消息,重新开始路由发现过程,该路由请求消息中的错误链接信息为保存后的错误链接集合中的信息。 
通过事先对路由中的各个节点进行通知,可提高数据传输的安全性,并可同时进行错误检测,以便为下一次路由选择提供良好的依据。 
下面详细介绍一下步骤S103“所述源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点及其上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中,其中,中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过所述设定阈值时向源节点发送数据错误包。”的 一种具体实现方式如下: 
该步骤中的检测方法是基于数据包的确认机制实现的。在传输数据时,源节点通过各中间节点向目的节点发送数据包,目的节点收到数据包后,需要通过各中间节点向源节点返回数据确认包,如果在有效时间内,源节点S没有收到数据确认包,则认为数据包丢失。因此,通过各中间节点监测自身转发的数据包和数据确认包的数量,即可判断自身到目的节点的这段链路是否出现错误。为此,每个中间节点上都建有一个统计列表,如表2所示,这个统计列表可以是在步骤S102中的步骤二中建立的,也可以在本步骤中的数据传输过程开始时建立。每当中间节点向下一跳节点转发源节点S发送的数据包时,将统计列表中的Data_counter计数值增加1,每当中间节点向下一跳节点转发目的节点D返回的数据确认包时,将统计列表中的ACK_counter计数值增加1。理想情况下,在一次数据传输过程结束之后,各个节点统计的Data_counter值与ACK_counter值应该相等,但由于实际情况中,网络的正常操作也会呈现出一定数量的包丢失,再考虑到数据包传输的时延,因此在实际中,Data_counter值与ACK_counter值之间有一定的差值是正常的,但如果差值过大,则说明链路出现故障,存在丢包现象。例如,中间节点X可以追踪从当前节点到目的节点D路径上数据包的丢失数量,即中间节点X上的丢包率DROPX=|Data_counterX-ACK_counterX|。因此,在本发明实施例中的方法中定义一个阈值ΔDROP为可接受丢包率,当节点统计的Data_counter值与ACK_counter值之间的差值,即丢包率超过定义的阈值时,则表示链路出现了错误,并认为是一个Byzantine错误。阈值的大小可以根据经验设置,也可以根据其他因素设置,并且可以随传输环境做动态调整。一般来说,设置的阈值要比正常的丢失率略大一些,如果阈值设置的太大,则可能导致恶意节点引起的包丢失无法及时发现,如果阈值设置的太小,则可能导致正常链路被误判为错误链接,总之,阈值的大小要根据需要设定。 
本发明设计的方法中Byzantine错误检测的基本思想是:若节点统计的丢包 数量超过设定阈值,说明当前节点到目的节点D的路径上存在Byzantine错误,一旦中间节点发现统计异常,将通过有限洪泛发送签名的数据错误包,即错误WARNING包给S,说明该节点之后的路径存在错误。源节点S根据收到来自中间节点的有效WARNING包定位错误链接,源节点S将路径上第一个没有发送WARNING包的节点及其上一跳节点定义为错误链接。 
例如,设源节点S到目的节点D的路由为S-X-Y-Z-N-D,其中共有四个中间节点,假设中间节点Z是恶意丢包节点,如图2所示。中间节点对数据包的统计来自于接收到上一跳发送节点转发的数据包,因此有 
Data_counterS≥Data_counterX≥...≥Data_counterN, 
类似地对数据确认包的统计来自于接收到下一跳发送节点转发的数据确认包,即Ack_counterS≤Ack_counterX≤...≤Ack_counterN,所以DROPS≥DROPX≥...≥DROPN。 
若Z持续丢包,则节点X、Y的Data_counter统计数值持续增加却无法接收到相应的确认包,因此丢包数量|Data_counter-ACK_counter|会逐渐增加,最终超过设定阈值,即DROPX≥DROPY>CountDATA×ΔDROP,此时节点X、Y均将发送WARNING包给源节点S。节点N由于位于攻击节点之后,不会接收到被丢弃的数据包,因此Data_counter统计数值不会增加,DROPN<CountDATA×ΔDROP,N不会发送WARNING给源节点S。若Z如实根据节点统计表进行操作,将发送WARNING给源节点S。源节点S收到来自X、Y和Z的WARNING包后,发现N是第一个没有返回WARNING的节点,把Z-N视为错误链接。如果Z不按方法规则运行,不发送WARNING包,则Z是第一个没有发送WARNING包的节点,此时源节点S视Y-Z是错误链接。 
如上所述,本发明所提供的检测机制通过统计值可以找出与Byzantine错误相关的错误链接。为了避免错误链接出现在未来的路由中,本发明所设计的方法为每一个链接分配一个权重,该权重称为链接的错误因子,错误因子越高, 说明链接导致Byzantine错误的可能性越大。初始时每个链接的错误因子均为1,一旦在Byzantine检测阶段发现了错误链接,则将该链接的权重翻倍作为对其的处罚。然而惩罚不是永久性的,错误链接的错误因子随时间可以递减,从而防止节点被完全孤立的现象出现。 
通过采用本发明实施例提供的传输数据的方法,可在传输数据的同时进行错误检测,提高了错误检测的效率和准确性,且采用基于身份的数字签名机制,可减少计算量和网络开销,而且,在选择路由时,通过计算路由的错误链接因子平均值作为路由选择的依据,从而提高了路由的安全性。 
本发明实施例还提供了一种移动Ad hoc网络中的数据传输装置,如图3所示,包括: 
路由选择单元31,用于根据保存的错误链接信息,选择一条到目的节点的路由; 
发送单元32,用于通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包; 
接收单元33,用于接收目的节点收到所述数据包后通过所述路由中的各个中间节点的依次转发返回的数据确认包,其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向该数据传输装置发送数据错误包; 
判定单元34,用于确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将没有发送数据错误包的中间节点中距离该数据传输装置最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据,其中,所述数据错误包是由中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过所述设定阈值时发送的。 
通过采用本发明实施例提供的装置,可在传输数据的同时,进行错误链接的检测,不必额外开销控制探测节点列表。 
较佳的,所述路由选择单元31具体包括: 
路由请求消息生成单元,用于确定自身保存的路由表中不存在到目的节点的路由时,向目的节点发送路由请求消息; 
路由确定单元,用于根据目的节点接收到路由请求消息后返回的路由应答消息,确定到目的节点的可用路由; 
计算单元,用于在路由确定单元确定存在多条可用路由时,根据保存的错误链接信息计算每条路由中所有链路的错误链接因子的平均值,所述链路指所述路由中相邻的两个中间节点之间的链接所组成的链路,所述错误链接因子为反映该链路出现错误的概率大小的数值; 
选择单元,用于根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由。 
通过采用路由中的错误链接因子的平均值作为路由选择的依据,可以优先选择安全的路由。 
较佳的,所述选择单元,用于根据计算的每条路由的错误链接因子的平均值,选择错误链接因子的平均值最小的路由,作为到目的节点的路由。 
较佳的,为了确保所选路由中的各个节点都没有问题,提高数据传输的安全性,所述装置进一步包括: 
通知单元,用于在发送单元32通过所述路由中的各个中间节点向目的节点发送数据包之前,通过所述路由中的各个中间节点的依次转发,向目的节点发送第一通知包,并接收所述目的节点收到所述第一通知包后返回的第一确认包; 
触发单元,用于在通知单元成功收到所述第一确认包时,触发发送单元32通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包。 
如果通知单元没有接收到目的节点返回的第一确认包,说明所选路由中的某段链路出现了问题,则该装置还包括: 
查找单元,用于在所述通知单元没有接收到所述第一确认包时,查找所述 路由中的错误链接,并将查找到的所述路由中的错误链接保存在所述错误链接信息中;并通知路由选择单元重新根据保存后的错误链接信息,选择到目的节点的路由。 
较佳的,为了查找路由中的错误链接,所述查找单元具体包括: 
转发单元,用于通过所述路由中的各个中间节点的依次转发向目的节点发送第二通知包,并接收所述目的节点收到所述第二通知包后通过所述路由中的各个中间节点的依次转发返回的第二确认包,及接收所述路由中的各个中间节点收到所述第二通知包后返回的中间节点确认包,所述中间节点确认包中包含自身转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和; 
第一错误链接确定单元,用于在转发单元确定未成功收到第二确认包时,判断是否存在未返回中间节点确认包的中间节点,若存在,则将没有返回中间节点确认包的中间节点中距离该数据传输装置最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,若不存在,则将目的节点与所述目的节点的上一跳节点所组成的链路确定为错误链接; 
第二错误链接确定单元,在转发单元确定成功收到第二确认包时,根据接收的中间节点确认包确定各中间节点转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和,将转发的第一通知包和第二通知包的数量总和,或第一确认包和第二确认包的数量总和小于相邻中间节点的中间节点所在链路确定为错误链接。 
或者,所述查找单元用于查找所述路由中的错误链接时,还可以采用如下方式: 
根据所述路由中的中间节点在监测到所在链路出现错误时发送的链路错误包,将发送所述链路错误包的中间节点所在链路确定为错误链接。 
通过采用本发明实施例提供的传输数据的装置,可在传输数据的同时进行错误检测,提高了错误检测的效率和准确性,且采用基于身份的数字签名机制, 可减少计算量和网络开销,而且,在选择路由时,通过计算路由的错误链接因子平均值作为路由选择的依据,从而提高了路由的安全性。 
本发明实施例还提供了一种移动Ad hoc网络中的数据传输装置,如图4所示,包括: 
转发单元41,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包; 
监测单元42,用于在监测到转发单元41转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包。 
较佳的,所述转发单元41,还用于转发源节点向目的节点发送的路由请求消息和目的节点向源节点返回的路由应答消息。 
较佳的,所述转发单元41,进一步用于:转发源节点向目的节点发送的第一通知包以及目的节点向源节点返回的第一确认包。 
较佳的,所述转发单元41还用于:转发源节点向目的节点发送的第二通知包以及目的节点向源节点返回的第二确认包,并在收到所述第二通知包时向源节点发送中间节点确认包,所述中间节点确认包中包含转发单元41转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和。 
较佳的,所述监测单元42,还用于监测所在链路是否出现错误,并在出现错误时,向源节点发送链路错误包。 
通过采用本发明实施例提供的传输数据的装置,可在传输数据的同时进行错误检测,提高了错误检测的效率和准确性,且采用基于身份的数字签名机制,可减少计算量和网络开销,而且,在选择路由时,通过计算路由的错误链接因子平均值作为路由选择的依据,从而提高了路由的安全性。 
本发明实施例还提供了一种移动Ad hoc网络中的数据传输系统,如图5所示,包括:源节点51、目的节点52和至少一个中间节点53,其中, 
源节点51,用于根据保存的错误链接信息,选择一条到目的节点的路由; 通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包;接收目的节点收到所述数据包后通过所述路由中的各个中间节点的依次转发返回的数据确认包;确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据; 
中间节点53,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包;还用于在监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包; 
目的节点52,用于在接收到源节点51发送的数据包时向源节点返回数据确认包。 
通过采用本发明实施例提供的传输数据的系统,可在传输数据的同时进行错误检测,提高了错误检测的效率和准确性,且采用基于身份的数字签名机制,可减少计算量和网络开销,而且,在选择路由时,通过计算路由的错误链接因子平均值作为路由选择的依据,从而提高了路由的安全性。 
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 

Claims (21)

1.一种移动Ad hoc网络中的数据传输方法,其特征在于,包括:
源节点根据保存的错误链接信息,选择一条到目的节点的路由;
所述源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包,并接收目的节点收到所述数据包后通过所述路由中的各个中间节点依次转发返回的数据确认包,其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包;
所述源节点确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中。
2.如权利要求1所述的方法,其特征在于,所述源节点根据保存的错误链接信息,选择一条到目的节点的路由,具体包括:
确定自身保存的路由表中不存在到目的节点的路由时,向目的节点发送路由请求消息;
根据目的节点接收到路由请求消息后返回的路由应答消息,确定到目的节点的可用路由;
确定存在多条可用路由时,根据保存的错误链接信息计算每条路由中所有链路的错误链接因子的平均值,所述链路指所述路由中相邻的两个中间节点之间的链接所组成的链路,所述错误链接因子为反映该链路出现错误的概率大小的数值;
根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由。
3.如权利要求2所述的方法,其特征在于,所述根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由,包括:
选择错误链接因子的平均值最小的路由,作为到目的节点的路由。
4.如权利要求2所述的方法,其特征在于,所述路由请求消息和路由应答消息采用基于身份的签名机制进行数字签名。
5.如权利要求1所述的方法,其特征在于,所述通过所述路由中的各个中间节点向目的节点发送数据包之前,进一步包括:
源节点通过所述路由中的各个中间节点向目的节点发送第一通知包;
所述目的节点收到所述第一通知包后通过各个中间节点向源节点返回第一确认包;
所述源节点确定成功收到所述第一确认包时,触发通过所述路由中的各个中间节点向目的节点发送数据包。
6.如权利要求5所述的方法,其特征在于,进一步包括:
源节点确定没有接收到所述第一确认包时,查找所述路由中的错误链接,并将查找到的所述路由中的错误链接保存在所述错误链接信息中,重新根据保存后的错误链接信息,选择到目的节点的路由。
7.如权利要求6所述的方法,其特征在于,所述查找所述路由中的错误链接,具体包括:
源节点通过所述路由中的各个中间节点的依次转发,向目的节点发送第二通知包,所述目的节点收到所述第二通知包后通过所述路由中的各个中间节点的依次转发向源节点返回第二确认包,且所述路由中的各个中间节点收到所述第二通知包后向源节点返回中间节点确认包,所述中间节点确认包中包含自身转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和;
源节点确定未成功收到第二确认包时,则判断是否存在未返回中间节点确认包的中间节点,若存在,则将没有返回中间节点确认包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,若不存在,则将目的节点与所述目的节点的上一跳节点所组成的链路确定为错误链接;
源节点确定成功收到第二确认包时,根据接收的中间节点确认包确定各中间节点转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和,将转发的第一通知包和第二通知包的数量总和,或第一确认包和第二确认包的数量总和小于相邻中间节点的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接。
8.如权利要求6所述的方法,其特征在于,所述查找所述路由中的错误链接,具体包括:
所述路由中的中间节点监测到所在链路出现错误时,向源节点发送链路错误包;
所述源节点将发送链路错误包的中间节点所在链路确定为错误链接。
9.一种移动Ad hoc网络中的数据传输装置,其特征在于,包括:
路由选择单元,用于根据保存的错误链接信息,选择一条到目的节点的路由;
发送单元,用于通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包;
接收单元,用于接收目的节点收到所述数据包后通过所述路由中的各个中间节点依次转发返回的数据确认包,其中,所述中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向该数据传输装置发送数据错误包;
判定单元,用于确定发送的数据包的数量和收到的数据确认包的数量的差值超过所述设定阈值时,将没有发送数据错误包的中间节点中距离该数据传输装置最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据,其中,所述数据错误包是由中间节点监测到自身转发的数据包数量和数据确认包数量的差值超过所述设定阈值时发送的。
10.如权利要求9所述的装置,其特征在于,所述路由选择单元具体包括:
路由请求消息生成单元,用于确定自身保存的路由表中不存在到目的节点的路由时,向目的节点发送路由请求消息;
路由确定单元,用于根据目的节点接收到路由请求消息后返回的路由应答消息,确定到目的节点的可用路由;
计算单元,用于在路由确定单元确定存在多条可用路由时,根据保存的错误链接信息计算每条路由中所有链路的错误链接因子的平均值,所述链路指所述路由中相邻的两个中间节点之间的链接所组成的链路,所述错误链接因子为反映该链路出现错误的概率大小的数值;
选择单元,用于根据计算的每条路由的错误链接因子的平均值,选择一条到目的节点的路由。
11.如权利要求10所述的装置,其特征在于,所述选择单元,用于根据计算的每条路由的错误链接因子的平均值,选择错误链接因子的平均值最小的路由,作为到目的节点的路由。
12.如权利要求9所述的装置,其特征在于,所述装置进一步包括:
通知单元,用于在发送单元通过所述路由中的各个中间节点向目的节点发送数据包之前,通过所述路由中的各个中间节点的依次转发,向目的节点发送第一通知包,并接收所述目的节点收到所述第一通知包后返回的第一确认包;
触发单元,用于在通知单元成功收到所述第一确认包时,触发发送单元通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包。
13.如权利要求12所述的装置,其特征在于,还包括:
查找单元,用于在所述通知单元没有接收到所述第一确认包时,查找所述路由中的错误链接,并将查找到的所述路由中的错误链接保存在所述错误链接信息中;并通知路由选择单元重新根据保存后的错误链接信息,选择到目的节点的路由。
14.如权利要求13所述的装置,其特征在于,所述查找单元,具体包括:
转发单元,用于通过所述路由中的各个中间节点的依次转发,向目的节点发送第二通知包,并接收所述目的节点收到所述第二通知包后通过所述路由中的各个中间节点的依次转发返回的第二确认包,及接收所述路由中的各个中间节点收到所述第二通知包后返回的中间节点确认包,所述中间节点确认包中包含自身转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和;
第一错误链接确定单元,用于在转发单元确定未成功收到第二确认包时,判断是否存在未返回中间节点确认包的中间节点,若存在,则将没有返回中间节点确认包的中间节点中距离该数据传输装置最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,若不存在,则将目的节点与所述目的节点的上一跳节点所组成的链路确定为错误链接;
第二错误链接确定单元,在转发单元确定成功收到第二确认包时,根据接收的中间节点确认包确定各中间节点转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和,将转发的第一通知包和第二通知包的数量总和,或第一确认包和第二确认包的数量总和小于相邻中间节点的中间节点所在链路确定为错误链接。
15.如权利要求13所述的装置,其特征在于,所述查找单元,具体用于根据所述路由中的中间节点在监测到所在链路出现错误时发送的链路错误包,将发送所述链路错误包的中间节点所在链路确定为错误链接。
16.一种移动Ad hoc网络中的数据传输装置,其特征在于,包括:
转发单元,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包;
监测单元,用于在监测到转发单元转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包。
17.如权利要求16所述的装置,其特征在于,所述转发单元,还用于转发源节点向目的节点发送的路由请求消息和目的节点向源节点返回的路由应答消息。
18.如权利要求16所述的装置,其特征在于,所述转发单元,进一步用于:
转发源节点向目的节点发送的第一通知包以及目的节点向源节点返回的第一确认包。
19.如权利要求16所述的装置,其特征在于,所述转发单元还用于:转发源节点向目的节点发送的第二通知包以及目的节点向源节点返回的第二确认包,并在收到所述第二通知包时向源节点发送中间节点确认包,所述中间节点确认包中包含转发单元转发的第一通知包和第二通知包的数量总和以及第一确认包和第二确认包的数量总和。
20.如权利要求16所述的装置,其特征在于,所述监测单元,还用于监测所在链路是否出现错误,并在出现错误时,向源节点发送链路错误包。
21.一种移动Ad hoc网络中的数据传输系统,其特征在于,包括:源节点、目的节点和至少一个中间节点,其中,
源节点,用于根据保存的错误链接信息,选择一条到目的节点的路由;通过所述路由中的各个中间节点的依次转发,向目的节点发送数据包;接收目的节点收到所述数据包后通过所述路由中的各个中间节点的依次转发返回的数据确认包;确定发送的数据包的数量和收到的数据确认包的数量的差值超过设定阈值时,将没有发送数据错误包的中间节点中距离源节点最近的中间节点与所述中间节点的上一跳节点之间的链路确定为错误链接,并保存在所述错误链接信息中作为下次路由选择的依据;
中间节点,用于转发源节点向目的节点发送的数据包以及目的节点向源节点返回的数据确认包;在监测到自身转发的数据包数量和数据确认包数量的差值超过设定阈值时向源节点发送数据错误包;
目的节点,用于在接收到源节点发送的数据包时向源节点返回数据确认包。
CN201010527532.2A 2010-10-27 2010-10-27 一种移动Ad hoc网络中数据传输方法、装置及系统 Expired - Fee Related CN101969661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010527532.2A CN101969661B (zh) 2010-10-27 2010-10-27 一种移动Ad hoc网络中数据传输方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010527532.2A CN101969661B (zh) 2010-10-27 2010-10-27 一种移动Ad hoc网络中数据传输方法、装置及系统

Publications (2)

Publication Number Publication Date
CN101969661A true CN101969661A (zh) 2011-02-09
CN101969661B CN101969661B (zh) 2014-04-23

Family

ID=43548727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010527532.2A Expired - Fee Related CN101969661B (zh) 2010-10-27 2010-10-27 一种移动Ad hoc网络中数据传输方法、装置及系统

Country Status (1)

Country Link
CN (1) CN101969661B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769883A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于tcp的永远在线业务传输心跳数据包的方法及设备
CN102821095A (zh) * 2012-07-16 2012-12-12 西安电子科技大学 以内容为中心的网络中删除内容的方法
CN104660607A (zh) * 2015-03-06 2015-05-27 深圳欧德蒙科技有限公司 一种二维路由协议的实现方法和使用该协议的装置
WO2016090632A1 (zh) * 2014-12-12 2016-06-16 华为技术有限公司 一种节点的运行状态检测方法及装置
CN106604279A (zh) * 2016-12-30 2017-04-26 西安电子科技大学 基于特征的Ad Hoc网络攻击检测方法
CN106851611A (zh) * 2017-02-28 2017-06-13 上海富士施乐有限公司 一种数据发送和接收的方法及装置
WO2017136960A1 (zh) * 2016-02-11 2017-08-17 徐敬 一种无线通信方法
WO2018214057A1 (zh) * 2017-05-24 2018-11-29 深圳市乃斯网络科技有限公司 网络链接中丢包的计算方法及系统
CN109565500A (zh) * 2016-08-05 2019-04-02 上海诺基亚贝尔股份有限公司 按需安全性架构
CN110198228A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 一种故障监控方法、装置、服务器及存储介质
WO2020215269A1 (en) * 2019-04-25 2020-10-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributed ledger
CN111988288A (zh) * 2020-08-04 2020-11-24 网络通信与安全紫金山实验室 基于网络时延的密钥交换方法、系统、设备及存储介质
CN113824698A (zh) * 2021-08-27 2021-12-21 中国航空无线电电子研究所 一种保障民用航空电子系统数据完整性的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179501A (zh) * 2007-12-12 2008-05-14 北京航空航天大学 一种移动ad hoc网络按需类路由的局部路由发现方法
CN101436985A (zh) * 2008-10-23 2009-05-20 福建师范大学 一种高效的Ad Hoc网络匿名QoS路由方法
CN101568164A (zh) * 2009-06-08 2009-10-28 北京邮电大学 基于节点优先级的Ad hoc网络机会路由算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179501A (zh) * 2007-12-12 2008-05-14 北京航空航天大学 一种移动ad hoc网络按需类路由的局部路由发现方法
CN101436985A (zh) * 2008-10-23 2009-05-20 福建师范大学 一种高效的Ad Hoc网络匿名QoS路由方法
CN101568164A (zh) * 2009-06-08 2009-10-28 北京邮电大学 基于节点优先级的Ad hoc网络机会路由算法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769883A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于tcp的永远在线业务传输心跳数据包的方法及设备
CN102821095A (zh) * 2012-07-16 2012-12-12 西安电子科技大学 以内容为中心的网络中删除内容的方法
US10361937B2 (en) 2014-12-12 2019-07-23 Huawei Technologies Co., Ltd. Method and apparatus for detecting operating status of node
CN106170950A (zh) * 2014-12-12 2016-11-30 华为技术有限公司 一种节点的运行状态检测方法及装置
CN106170950B (zh) * 2014-12-12 2019-06-07 华为技术有限公司 一种节点的运行状态检测方法及装置
WO2016090632A1 (zh) * 2014-12-12 2016-06-16 华为技术有限公司 一种节点的运行状态检测方法及装置
CN104660607B (zh) * 2015-03-06 2018-04-27 深圳欧德蒙科技有限公司 一种二维路由协议的实现方法和使用该协议的装置
CN104660607A (zh) * 2015-03-06 2015-05-27 深圳欧德蒙科技有限公司 一种二维路由协议的实现方法和使用该协议的装置
WO2017136960A1 (zh) * 2016-02-11 2017-08-17 徐敬 一种无线通信方法
CN109565500A (zh) * 2016-08-05 2019-04-02 上海诺基亚贝尔股份有限公司 按需安全性架构
CN109565500B (zh) * 2016-08-05 2021-10-29 上海诺基亚贝尔股份有限公司 按需安全性架构
US11349881B2 (en) 2016-08-05 2022-05-31 Alcatel Lucent Security-on-demand architecture
CN106604279A (zh) * 2016-12-30 2017-04-26 西安电子科技大学 基于特征的Ad Hoc网络攻击检测方法
CN106851611A (zh) * 2017-02-28 2017-06-13 上海富士施乐有限公司 一种数据发送和接收的方法及装置
WO2018214057A1 (zh) * 2017-05-24 2018-11-29 深圳市乃斯网络科技有限公司 网络链接中丢包的计算方法及系统
CN110198228A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 一种故障监控方法、装置、服务器及存储介质
WO2020215269A1 (en) * 2019-04-25 2020-10-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributed ledger
CN111988288A (zh) * 2020-08-04 2020-11-24 网络通信与安全紫金山实验室 基于网络时延的密钥交换方法、系统、设备及存储介质
CN113824698A (zh) * 2021-08-27 2021-12-21 中国航空无线电电子研究所 一种保障民用航空电子系统数据完整性的方法

Also Published As

Publication number Publication date
CN101969661B (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN101969661B (zh) 一种移动Ad hoc网络中数据传输方法、装置及系统
Mohanapriya et al. Modified DSR protocol for detection and removal of selective black hole attack in MANET
Deng et al. Insens: Intrusion-tolerant routing in wireless sensor networks
Qazi et al. Securing DSR against wormhole attacks in multirate ad hoc networks
Mishra et al. Security against black hole attack in wireless sensor network-a review
CN105471741A (zh) 一种移动Ad Hoc网络中双向可信路由确定方法
Aware et al. Prevention of black hole attack on AODV in MANET using hash function
Hiremani et al. Eliminating co-operative blackhole and grayhole attacks using modified EDRI table in MANET
Gupta et al. Movement based or neighbor based tehnique for preventing wormhole attack in MANET
Bradbury et al. A near-optimal source location privacy scheme for wireless sensor networks
Heurtefeux et al. Enhancing RPL resilience against routing layer insider attacks
Chuah et al. A ferry-based intrusion detection scheme for sparsely connected ad hoc networks
Gambhir et al. PPN: Prime product number based malicious node detection scheme for MANETs
Geethu et al. Defense mechanism against selective forwarding attack in wireless sensor networks
Znaidi et al. Detecting wormhole attacks in wireless networks using local neighborhood information
Hegazy et al. Towards securing mintroute in wireless sensor networks
Datema A case study of wireless sensor network attacks
Alajeely et al. Defense against packet dropping attacks in opportunistic networks
Jamshidi et al. DSLA: Defending against selective forwarding attack in wireless sensor networks using learning automaton
Jin et al. A multipath routing protocol based on bloom filter for multihop wireless networks
Zhao et al. Multipath routing based secure data transmission in ad hoc networks
Rout et al. Sftp: a secure and fault-tolerant paradigm against blackhole attack in manet
Ssu et al. Using overhearing technique to detect malicious packet-modifying attacks in wireless sensor networks
Ukey et al. I-2ACK: Preventing Routing Misbehavior in Mobile Ad hoc Networks
Tiwari et al. Migrating Packet Dropping in Adhoc Network Based on Modified ACKbased Scheme Using FSA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee after: BEIJING WATCHDATA Co.,Ltd.

Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140423

Termination date: 20211027