本发明属于智能交通系统(intelligenttransportationsystem,its)技术领域,具体涉及一种基于车辆编队的数据包转发系统及方法,涉及基于车辆自组网(vehicularad-hocnetwork,vanet)中车辆编队模式的数据包转发策略。
背景技术:
随着无线通信技术的快速发展,智能交通系统(its)在提高道路安全性、改善出行效率、增加驾驶体验等方面起着重要作用。在实际应用中,相互之间可以进行通信的车辆在道路中形成移动的无线网络,即车载自组网(vanet)。车载自组网的应用领域极为广泛,例如,驾驶辅助、公共安全监管、道路交通的控制等,其在提高交通服务质量以及增强道路安全方面有着极大的影响。另外,与其他网络相比,车载自组网具有存储容量大、节点移动可预测、处理能力强等特点。
在车载自组网中,具有共同兴趣和目标的车辆在道路上以一种“排”的形式逐渐新兴起来。具体地,在同一个车道上一辆车紧随着一辆车,且有一辆共同的领头车,车与车之间在安全的情况下保持一种基本恒定的近距离驾驶。相比于一般的驾驶方式,车载自组网的出现给这种驾驶方式提供了显著的优势。基于排的驾驶方式可以节省燃料、提高道路的通行能力、保障驾驶的安全性。但由于车载自组网具有高度开放性的特点,网络和车辆都面临着安全问题,比如,恶意节点的攻击以及传播虚假信息等。由于该网络是一些移动车辆节点的集合,这些节点通过无线链路直接或依赖于其他节点作为路由器进行通信,所以车载自组网的运行并不依赖于现有的基础设施或基站,而依赖于所有节点的合作来实现联网的功能。为了进一步提高车载网络的安全性,一方面,由于申请加入车辆编队的车辆节点的安全性是未知的,其可能对网络和其它车辆造成威胁,因此需要对新加入车辆编队的节点进行安全认证。另一方面,车辆间的数据包转发可以提高车与车之间或车与路侧单元(rsu)之间的通信效率,进而提高网络的性能,而数据包转发需要所有车辆节点的共同努力,但是有些自私的节点为了获取更多的利益,不愿意消耗自己的资源用于转发数据包。因此需要设计相应的激励策略,以激励车辆主动参与数据包的转发过程。但是在数据包转发过程中,一些恶意节点可能会通过丢包或修改数据包信息等行为对网络进行攻击,所以需要对网络中恶意节点进行检测来减轻他们对网络的破坏。所以,从网络和车辆目前面临的挑战和安全问题来看,基于车辆编队模式的数据包转发系统及方法是一个亟需解决的问题。
技术实现要素:
针对现有车辆编队以及网络中出现的问题,为了提高整个网络性能和车辆的安全性,本发明的目的是提出一种基于车辆编队的数据包转发系统及方法,来提高网络性能和车辆的安全性。
为达到上述目的,本发明采用如下技术方案:
一种基于车辆编队的数据包转发系统,包括用户申请模块,用户信息采集模块,用户信任度模块,囚徒博弈模块,用户效用模块,恶意用户检测模块;所述用户申请模块连接用户信息采集模块;所述用户信任度模块连接用户信息采集模块;所述用户效用模块连接用户信任度模块;所述囚徒博弈模块连接用户效用模块;所述恶意节点检测模块连接囚徒博弈模块。
优选地,通过用户的历史行为,排头车对其进行初始评估得出基本信任度,然后由车队中的每一辆车对其进行再次评估得出推荐信任度,基于基本信任度和推荐信任度,得到全局信任度。其次,建立用户效用函数模型,通过囚徒博弈激励车辆主动参与数据包转发,根据车辆转发数据包的数量更新其优先值的大小,进而更新车辆的效用函数。最后对网络中恶意节点进行检测、筛选并剔除恶意节点,提高网络的安全性。
优选地,所述用户信任度模块包括基本信任度单元和推荐信任度单元,所述基本信任度单元与推荐信任度单元连接。
优选地,用户申请模块,用于用户申请加入车辆编队中;用户信息采集模块,用于采集申请用户的历史行为信息;用户信任度模块,根据用户的历史行为,由排头车对该用户进行初始评估和车队中其他车辆进行再次评估来计算该用户的全局信任度;用户效用模块,用于根据用户贡献值和采集的用户信息,建立用户效用函数模型;囚徒博弈模块,用于根据用户的效用函数,达到一个网络性能最稳、车辆获得最大收益目的;恶意节点检测模块,用于检测攻击网络并阻碍数据包成功转发的的恶意用户。
所述用户信任度模块包括基本信任度单元和推荐信任度单元;其中基本信任度单元,用于排头车对用户进行初始评估;推荐信任度单元,用于车队中其他车辆对用户进行再次评估,结合初始评估和再次评估得到全局信任度。所述推荐信任度单元与基本信任度单元连接。
一种基于车辆编队的数据包转发方法,采用上述系统进行操作,其特征在操作步骤如下:
s100.用户申请加入车辆编队;
s200.通过用户信息采集模块采集用户节点的历史行为;
s300.根据用户节点的历史行为,结合排头车和车队中其他车辆的推荐信息,建立用户的全局信任度;
s400根据用户转发数据包和传输自身数据包的数量来计算用户的效用函数;
s500.根据用户的效用函数,通过用户之间的囚徒博弈联合优化数据包转发过程,获得转发数据包的最优联盟形成策略,即车辆获得最大效用以及网络达到最优状态的策略;
s600.通过恶意节点检测模块检测攻击网络并阻碍数据包成功转发的恶意用户。
优选地,在步骤s500之后还可包括步骤s500a:通过用户对网络的贡献值即转发数据包的数量,进一步更新该用户的优先值,当用户优先值低于所设定的阈值时,则判定为恶意用户。在步骤s600之后还可包括步骤s600a:将检测到的恶意用户加入黑名单。
优选地,所述步骤s300的具体步骤为:
s310.根据用户的历史行为排头车对其进行初始评估得到基本信任度;
s320.根据车队中的每一辆车对用户进行再次评估得到推荐信任度;
s330.根据用户的基本信任度和推荐信任度,计算得到用户全局信任度。
优选地,所述步骤s500的具体步骤为:
s510.根据用户的效用函数,通过囚徒博弈得到车辆转发数据包的最优策略;
s520.根据用户的效用函数和最优策略,达到纳什均衡状态。
优选地,所述步骤s600的具体步骤为:
s610.根据2ack方案检测攻击网络并阻碍数据包成功转发的恶意用户;
s620.通过数字签名技术和消息认证码功能对2ack包进行验证;
与现有技术相比,本发明具有如下显而易见的突出实质性特点和显著优点:
1.本发明提出了一种信任机制和激励机制,信任机制中通过两次信任评估对节点进行安全认证,初始评估是排头车对车辆历史行为进行评估,然后车队中的每辆车对新加入节点给出自己的推荐信任度,通过该机制不仅可以更准确的得到用户的信任度,同时可以检测出恶意节点
2.本发明激励机制中通过提高节点的优先值来激励节点进行数据包转发,车辆转发数据包越多,其优先值就越高,优先值高的节点可以优先传输自身的数据信息来获取更多的利益;并通过设定优先值阈值来进一步筛选出自私的用户,降低用户恶意攻击及泄露信息的风险;
3.本发明通过建立用户的效用函数,并采用囚徒博弈的联合优化模型来达到一个网络性能最稳、车辆获得收益最大的目的。
附图说明
图1为本发明基于车辆编队的数据包转发系统的示意图。
图2为图1中用户信任度模块的具体示意图。
图3和图4为本发明基于车辆编队的数据包转发方法的流程图。
图5为图3或图4中步骤s300的具体流程图。
图6为图3或图4中步骤s500的具体流程图。
图7为图3或图4中步骤s600的具体流程图。
具体实施方式
下面就优选实施例结合附图,对本发明作进一步的详细说明。
实施例一
参见图1,一种基于车辆编队的数据包转发系统,包括用户申请模块100,用户信息采集模块200,用户信任度模块300,用户效用模块400,囚徒博弈模块500和恶意用户检测模块600。其特征在于:所述用户申请模块100连接用户信息采集模块200;所述用户信任度模块300连接用户信息采集模块200;所述用户效用模块400连接用户信任度模块300;所述囚徒博弈模块500连接用户效用模块400;所述恶意节点检测模块600连接囚徒博弈模块500。
本实施例针对现有车辆编队以及网络中出现的问题,为了提高整个网络性能和车辆的安全性,提供了一种基于车辆编队的数据包转发系统,来提高网络性能和车辆的安全性。
实施例二
本实施例与实施例一基本相同,特别之处在于:
所述用户信任度模块300包括基本信任度单元301和推荐信任度单元302,所述基本信任度单元301与推荐信任度单元302连接。
本实施例用户信任度模块300根据用户的历史行为,由排头车对该用户进行初始评估和车队中其他车辆进行再次评估来计算该用户的全局信任度。
实施例三
本实施例与上述实施例基本相同,特别之处在于:
参见图3,本实施例基于车辆编队的数据包转发方法,采用实施例一基于车辆编队的数据包转发系统进行操作,操作步骤如下:
s100.用户申请加入车辆编队;
s200.通过用户信息采集模块200采集用户节点的历史行为;
s300.根据用户节点的历史行为,结合排头车和车队中其他车辆的推荐信息,建立用户信任度;具体步骤为:
s310.根据用户的历史行为排头车对其进行初始评估得到基本信任度;
s320.根据车队中的每一辆车对用户进行再次评估得出推荐信任度;
s330.根据用户的基本信任度和推荐信任度,计算得到用户全局信任度;
s400.根据用户的全局信任度判断是否同意该用户加入车队;
s500.根据用户的效用函数,通过用户之间的囚徒博弈联合优化数据包转发过程,获得转发数据包的最优联盟形成策略,即车辆获得最大效用以及网络达到最优状态的策略;具体步骤为:
s510.根据用户的效用函数,通过囚徒博弈得到车辆转发数据包的最优策略;
s520.根据用户的效用函数和最优策略,达到纳什均衡状;
s600.通过恶意节点检测模块600检测攻击网络并阻碍数据包成功转发的恶意用户;具体步骤为:
s610.根据2ack方案检测攻击网络并阻碍数据包成功转发的恶意用户;
s620.通过数字签名技术和消息认证码功能对2ack包进行验证。
在所述步骤s500之后还可包括步骤s500a:通过用户对网络的贡献值,即转发数据包的数量,进一步更新该用户的优先值,当用户优先值低于所设定的阈值时,则判定为恶意用户;在步骤s600之后还可包括步骤s600a:将检测到的恶意用户加入黑名单。
本实施例信任机制中通过两次信任评估对节点进行安全认证,初始评估是排头车对车辆历史行为进行评估,然后车队中的每辆车对新加入节点给出自己的推荐信任度,通过该机制不仅可以更准确的得到用户的信任度,同时可以检测出恶意节点;本实施例激励机制中通过提高节点的优先值来激励节点进行数据包转发,车辆转发数据包越多,其优先值就越高,优先值高的节点可以优先传输自身的数据信息来获取更多的利益;并通过设定优先值阈值来进一步筛选出自私的用户,降低用户恶意攻击及泄露信息的风险;本实施例通过建立用户的效用函数,并采用囚徒博弈的联合优化模型来达到一个网络性能最稳、车辆获得收益最大目的。
实施例四
在基于车辆编队的数据包转发系统中,如图1所示,基于车辆编队的数据包转发系统中,包括用户申请模块100,用户信息采集模块200,用户信任度模块300,用户效用模块400,囚徒博弈模块500,恶意用户检测模块600。所述用户申请模块100连接用户信息采集模块200;所述用户信任度模块300连接用户信息采集模块200;所述用户效用模块400连接用户信任度模块300;所述囚徒博弈模块500连接用户效用模块400;所述恶意节点检测模块600连接囚徒博弈模块500。
用户申请模块100,用于用户申请加入车辆编队。
用户信息采集模块200,用于采集用户历史行为信息。其行为归为安全事件,例如,信息破坏安全事件,物理安全事件等。安全事件根据其事件的严重程度分成不同的类型,用ven表示,通过向量的形式表达为sv=<ve1,ve2,.....,ven>,基于向量对所有的车辆节点安全事件进行分类,每个事件对应的安全组件即ej,j=1,2,…,n表示行为的类别。安全向量反映了车辆节点的安全水平。
用户信任度模块300,用于计算用户信任度。具体地,一般信任度高的用户具有较高的可信性,通过设置信任度阈值来选取可信的用户允许其加入车辆编队中,防止恶意用户攻击以及降低隐私泄露的风险。
进一步,如图2所示,用户信任度模块300包括基本信任度单元301及推荐信任度单元302。所述推荐信任度单元与基本信任度单元连接。
基本信任度单元301,用于排头车对申请用户的初始评估。具体地,车辆节点和路边固定的接入点与应用单元(au)交换应用数据和其他的信息,以对车辆节点的历史行为进行评估。车辆节点的历史行为信息保存在本地服务器上,初次评估由au根据这些信息对车辆节点进行评估。评估数据的格式为:事件={节点,安全事件类型,安全事件id,节点的安全值,系统的时间戳},车辆节点的历史安全度表示为
推荐信任度单元302,用于车队中其他车辆对用户的评估得到的推荐信任度。具体地,车辆的历史行为主要包括:驾驶行为、驾驶员信息安全性、准确性、真实性等。首先我们将所有的历史行为进行量化,车队中其他的节点对申请节点的每个历史行为进行评估。然后将所有的评估结果存储在一个向量中即车辆节点的推荐信任向量,定义为:
为了消除车辆编队中恶意节点的评估,我们首先计算平均推荐向量,通过计算每个信任向量的平均得分,得到推荐向量的平均值,其中车辆节点给出的评估分数与平均值相偏差较大的节点被认为是恶意节点。
定义相关系数r(r∈(-1,1))来表示两个变量间的相关程度。|r|值较大表示误差q小,及说明两个变量间的相关程度高。|r|较小表示误差q值大,即两个变量间的相关程度低。假设有两个样本函数x*和y*,x*和y*的相关系数为
为了能够准确地区分恶意节点,根据相关系数进行定量比较。首先通过设置两个阈值将|r|的范围划分为三个区间,以此来确定车辆节点是否可信。假设两个阈值是δr1和δr2,δr1和δr2的具体值视情况而定。三个区间分别为(0,1-δr1-r2]、(1-δr1-r2,1-δr1]、(1-δr1,1]。
当t_va和t_vb的相关系数在(1-δr1,1]范围时,认定t_va和t_vb接近线性相关,即节点推荐信任分数与平均推荐信任分数基本一致。
当t_va和t_vb的相关系数在(1-δr1-r2,1-δr1]范围时,认定t_va和t_vb线性关系不明显,需要进一步讨论推荐信任值。下面引入范数方法进行讨论,使用等式对单个推荐信任向量和平均推荐信任向量进行规范化。
当t_va和t_vb的相关系数在(0,1-δr1-r2]范围时,认定t_va和t_vb没有线性关系,即节点推荐信任分数与平均推荐信任分数偏差很大,认为推荐节点为恶意节点。
通过剔除恶意节点的不合理信任评估分数,使用合理的推荐信任向量计算平均推荐信任值:
用户效用模块400,用于根据用户数据包转发和传输自身数据包的数量,建立用户效用函数。具体地,假设节点在一段时间内的收益值和贡献值分别为y和x。贡献值代表节点对网络所做的贡献即所转发的数据包,收益值表示节点从网络中获取的服务和资源,这里以自身传输的数据包代替,则车辆收入的价值为
优先值p可以显示车辆节点对网络所做的贡献,其设定可以鼓励车辆节点积极地进行数据包转发。优先值高的车辆享受更多的服务和资源,即当一些车辆同时需要传输自身的数据包或者有其它请求时,网络可以向优先值高的车辆优先提供服务,它有助于激励车辆主动转发数据包。但是车辆不会每次都参与数据包的转发,车辆节点会在自身资源充足的情况下考虑是否转发,因为如果自身资源不足会导致无法传输自身的数据。所以,车辆需要从自身的资源去平衡需要传输的数据包和可以转发的数据包,这样才能获得最大的收益。
囚徒博弈模块500,用于根据用户的效用函数,得到最优数据包转发策略。一段时间内对车辆进行观察能够传输的最大数据包数量为:
所以车辆可以通过减少当前的收益值来提高当前的优先值,如果车辆通过在一段时间内减少自己传输的数据包而不是靠转发数据包来增加自己的优先值,将导致在整个周期内该车辆的收益下降。所以车辆在优先值高时要积极的传输自己的数据包,获得最大的回报。因此在一段时间t内:
恶意节点检测模块600,用于检测攻击网络并阻碍数据包成功转发的恶意用户。具体地,通过2ack方案检测数据包转发过程中受到的恶意攻击。当发送节点发送数据包后,由第二跳的接收节点对其发送2ack包(两跳确认包)来确认其成功收到数据包。若发送节点在超时后并没有接收到2ack包,则认为接收节点没有收到数据包,即路由过程出现错误。
进一步,如图7所示,恶意节点检测模块600包括2ack方案601,2ack包验证602。所述2ack方案与2ack包验证连接。
2ack方案601,用于检测恶意节点。具体地,当节点在下一跳成功地转发数据包时,下一跳链路的目的节点将发送回一个特殊的两跳确认,称为2ack,以指示数据包已成功接收。这样的2ack传输只发生在数据包的一小部分,而不是全部,即对节点进行观察一段时间然后对具有可疑行为的节点进行两跳确认。这样的“选择性”确认旨在减少由2ack方案引起的额外路由开销。将连续的三点n1、n2、n3看作一条路径上的三个连续的节点。从源节点“s*”到目标节点“d*”的路由是在动态源路由协议(dsr)的路由发现阶段生成的。当节点n1将数据包发送给n2时,n2随后将数据包转发到下一个节点n3,这时候n1仍然不知道n2是否将数据包转发给n3,以及n3是否成功接收数据包。2ack方案要求n3向n1发送一个两跳确认,以通知其成功接收到数据包。当n3成功接收到数据包后,它通过两跳向具有相应数据包id的n1发送确认包(2ack包)。
在n1→n2→n3这条路径中,节点n1充当2ack包的接收者和观察节点,节点n2和n3节点充当了2ack包的发送者。因此,只有整个路由中的源节点不会充当2ack包的发送者,目的地和目的地之前的一个节点不会充当接收者。为了检测恶意节点以及其路由错误行为,2ack包的发送者维护已发送但未被确认的数据包的id列表。当节点n1在特定的路径上发送数据包后,即n1→n2→n3,它将数据id添加到列表中,该列表是由观察节点维护的数据结构。然后计数器cpkts(转发的数据包的数量)同时递增。
在节点n1处,每个id都会在列表中停留“υ”秒,如果与id相对应的2ack包在时间限制内到达,则将对应的id从列表中删除。否则,对应的id在其超时间隔结束后从列表中删除,同时计数器cmis(丢失的2ack包)递增。
当节点n3接收到数据包后,由它决定是否需要向节点n1发送2ack包,通过这种只有一部分数据包将通过2ack包确认而不是全部的方法来减少2ack方案带来的路由开销,这样的部分数据包的确认分数被称为确认率即rack,通过改变确认率可以动态调整路由开销。
节点n1通过一段时间(tobs)观察链路n2→n3的行为,在观察期间,节点n1通过计算丢失的2ack包的比率即cmis/cpkts,并将其和阈值rmis进行比较,如果比率大于rmis,则认为链路n2→n3出现路由错误。节点n1发送一个rerr(错误行为报告)包,因为数据包只有一部分被确认,所以rmis应该满足不等式rmis>1-rack,以此来消除这种部分确认带来的错误警报。每一个接收到这样一个rerr包的节点都会将链路n2→n3标记为行为不端链路并将其加入黑名单,避免以后其他路由使用这种行为不当的链接。
2ack包验证602,用于防止第一跳节点对2ack包进行捏造或篡改。具体地,一种简单的2ack包认证技术是数字签名算法。数字签名是唯一的,由节点添加,只要节点的安全密钥不被盗窃,2ack包就是安全的。数字签名通过非对称加密技术实现,其包括三个步骤:①密钥生成②签名创建③签名验证。
另一种使用消息认证码功能(mac):一种由消息和密钥产生的固定长度值的函数,又被称为密钥加密散列函数。这种算法接受密钥和任意长度的消息作为输入对身份进行验证,然后生成mac作为输出。两个通信方节点共用一个密钥,当节点n3向节点n1发送2ack包时,随后将计算mac函数:mac=c(k,m)。其中m是输入消息、c是mac函数、k是共享密钥、mac是消息验证码。节点n3将需要发送的2ack包和mac值一起发送给节点n1,n1使用相同的密钥对接收到的消息执行相同的计算过程生成一个新的mac,然后将新的mac与n3发送的mac进行比较来验证2ack包的完整性和真实性。如果新的mac值发生变化,则可以认定节点n2更改了2ack包或伪造了2ack包。
基于车辆编队的数据包转发方法,提供了对车辆进行信任评估、激励车辆进行数据包转发、以及检测网络中恶意节点的方法。在基于车辆编队的数据包转发策略中,如图3所示,具体步骤如下:
s100,用户申请。用户发出申请请求加入车辆编队。
s200,采集用户节点的历史行为信息。具体地,车辆节点和路边固定的接入点与应用单元au交换应用数据和其他的信息,以对车辆节点的历史行为进行评估。
s300,计算用户节点的信任度。具体地,用户之间的信任度包括基本信任度和推荐信任度两部分。通过设置信任度阈值来选取可信的用户加入车辆编队,以降低用户恶意攻击及隐私泄露的风险。
进一步,结合图5,步骤s300包括如下步骤:
s310,计算用户节点的基本信任度。具体地,排头车根据用户的历史行为对其进行初次评估。
s320,计算用户节点的推荐信任度。具体地,根据车辆编队中其他用户的推荐信息,得到用户节点的平均推荐信任度。
s400,计算用户节点的效用值。具体地,根据计算用户自身转发的数据包和传输自身的数据包来计算其效用值。
s500,得到用户进行数据包转发的最优策略。具体地,通过囚徒博弈得到用户转发数据包的数量和传输自身数据包的数量的最优策略。
进一步,结合图6,步骤s500包括如下步骤:
s510,数据包转发的最优策略。具体地,根据车辆用户的效用函数,通过平衡转发数据包的数量和传输自身数据包的数量来最大化自身效用。
s520,车辆与车辆之间形成最优数据包转发策略。具体地,根据用户的效用函数和最优数据包转发策略,达到用户效用最大、网络最稳定的状态。
步骤s500之后还包括:
s500a:通过用户对网络的贡献值即转发数据包的数量,进一步更新该用户的优先值。车辆编队中的排头车是所有车辆可以信任的节点,节点的优先值由排头车进行管理。
s600,对恶意节点进行检测。具体地,通过2ack方案对恶意节点的黑洞攻击(即丢包行为)进一步进行检测。
进一步,结合图7,步骤s600包括如下步骤:
s610,2ack检测方案。具体地,通过一个反向两跳并向发送者发送确认包确认是否成功接收数据包并对恶意节点进行检测。
s620,2ack包验证方案。具体地,根据数字签名算法和消息认证码功能验证2ack包。
步骤s600之后还可包括:
步骤s600a:将检测到的恶意节点加入黑名单。
可见,通过信任评估模型可以更好地识别出网络中的恶意用户,从而降低网络受到恶意攻击及隐私泄露的风险。通过激励机制对用户进行激励,可以使用户之间相互合作来达到一个自身效用最大、网络最稳定的状态。
综上所述,上述实施例基于车辆编队的数据包转发系统包括用户申请模块,用户信息采集模块,用户信任度模块,囚徒博弈模块,用户效用模块,恶意用户检测模块;所述用户申请模块连接用户信息采集模块;所述用户信任度模块连接用户信息采集模块;所述用户效用模块连接用户信任度模块;所述囚徒博弈模块连接用户效用模块;所述恶意节点检测模块连接囚徒博弈模块。上述实施例方法包括根据用户节点的历史行为评估用户的信任度;根据用户的效用函数,利用囚徒博弈联合车辆本身效用过程,得到车辆间合作的最优数据包转发策略;通过2ack方案检测网络中阻碍数据包成功转发的恶意用户,通过数字签名算法和消息认证码功能对2ack包进行验证,防止恶意节点篡改2ack包。
上面对本发明实施例结合附图进行了说明,但本发明不限于上述实施例,还可以根据本发明的发明创造的目的做出多种变化,凡依据本发明技术方案的精神实质和原理下做的改变、修饰、替代、组合或简化,均应为等效的置换方式,只要符合本发明的发明目的,只要不背离本发明的技术原理和发明构思,都属于本发明的保护范围。