发明名称 一种基于社交能量的移动社交容迟网络路由方法
摘要 本发明提出了一种基于社交能量的移动社交容迟网络路由方法,属于计算机网络技术领域。首先利用网络节点间历史接触信息建立社区,根据节点间的接触实时计算节点及所属社区的社交能量。通过比较相遇节点与当前节点社交能量大小,判断当前节点是否与目的节点处于同一个社区来转发消息。节点碰撞越频繁,节点的社交能量越多;网络社区内节点与其他节点碰撞越频繁,社区的社交能量也相应越多。同时,节点和社区的社交能量会随时间的推移而不断衰减。然后,在网络路由的全局阶段和局部阶段采取不同的转发策略,从而实现消息的高效路由。对比现有方法,有效的提高了消息传递成功率并降低传输时延,并且简单有效、易于实现。
申请公布号 CN103647714B 申请公布日期 2016.09.07
申请号 CN201310651674.3 申请日期 2013.12.05
申请人 北京理工大学 发明人 李凡;姜红;王昱
分类号 H04L12/721(2013.01)I 主分类号 H04L12/721(2013.01)I
代理机构 代理人
主权项 一种基于社交能量的移动社交容迟网络路由方法,其特征在于包括以下步骤:步骤一、统计容迟网络中所有节点之间的历史接触信息,并根据其建立节点社区,具体过程如下:首先,统计过去一段时间内容迟网络中所有节点间的相遇持续时间,并用矩阵M<sub>1</sub>表示,其中,矩阵M<sub>1</sub>的第i行、第j列的数据X<sub>i,j</sub>表示此时间段内节点v<sub>i</sub>与节点v<sub>j</sub>的相遇持续时间之和,1≤i≤N,1≤j≤N,N为所述容迟网络中的节点总数;所述一段时间段要足够长,以能够反应未来该容迟网络内节点的接触规律为准;其次,依次比较矩阵M<sub>1</sub>中的每个数字X<sub>i,j</sub>与阈值ω的大小,ω的取值由想要获得的社区的多少和大小而定,但必须满足min≤ω≤max;若X<sub>i,j</sub>&gt;ω,则在矩阵M<sub>2</sub>对应位置的元素为1,反之为0;而后,采用K‑CLIQUE社区发现方法,找出容迟网络中节点交叉重合的社区,即,查找矩阵M<sub>2</sub>中的k社区,方法如下:若两个k完全子图有k‑1个公共点,则这两个k完全子图被划分到一个k社区;特别的,网络中的孤立节点不属于任何社区;步骤二、根据容迟网络所有节点间的接触情况,实时计算每一个节点及所属社区的社交能量,方法如下:当两个节点v<sub>k</sub>、v<sub>l</sub>相遇,计为发生一次碰撞,并产生能量N<sub>k,l</sub>;能量N<sub>k,l</sub>被平均分配给发生碰撞的两个节点;每个节点贡献<img file="FDA0001012724660000011.GIF" wi="173" he="119" />能量给其所属节点社区;若该节点属于n<sub>k</sub>个社区,则贡献<img file="FDA0001012724660000012.GIF" wi="180" he="142" />能量给所属的每个社区,同时,节点自身保留<img file="FDA0001012724660000013.GIF" wi="295" he="119" />能量;其中,p是能量比重,用于衡量节点贡献给所属社区能量的多少;p越大,节点贡献给所属社区的能量越大,从社区中获得的能量也越多,受社区的影响越大;p越小,节点贡献给所属社区的能量越小,从社区中获得的能量也越少,受社区的影响越小;p的取值由希望的社区对节点的影响程度决定,但必须满足p∈[0,1];然后,计算节点v<sub>k</sub>的社区中心性和节点的碰撞所得能量E_N<sub>k</sub>;其中,节点v<sub>k</sub>的社区中心性计算公式为<img file="FDA0001012724660000021.GIF" wi="689" he="327" />其中,C<sub>k</sub>(j)是节点v<sub>k</sub>在社区C<sub>j</sub>的社区中心性,D<sub>k</sub>(i)是节点v<sub>k</sub>第i次碰撞的持续时间;假设节点v<sub>k</sub>与其他节点共发生m<sub>k</sub>次碰撞,则<img file="FDA0001012724660000022.GIF" wi="198" he="127" />是节点v<sub>k</sub>与其他节点发生碰撞的总持续时间,<img file="FDA0001012724660000023.GIF" wi="343" he="143" />是社区C<sub>j</sub>中所有成员节点发生碰撞的总持续时间;社区中心性C<sub>k</sub>(j)是两个碰撞总持续时间的比值,0≤c<sub>k</sub>(j)≤1;节点碰撞越频繁,其社区中心性越大,从社区获得的能量越大;碰撞所得能量E_N<sub>k</sub>的计算公式为<img file="FDA0001012724660000024.GIF" wi="698" he="159" />其中,E_N<sub>k</sub>(i)表示节点v<sub>k</sub>从第i次碰撞获得的保留能量,计算公式为<img file="FDA0001012724660000025.GIF" wi="885" he="174" />之后,计算节点从社区中重新分配得来的能量E_C<sub>k</sub>;公式为<img file="FDA0001012724660000026.GIF" wi="614" he="119" />其中,E_C<sub>k</sub>(j)表示节点v<sub>k</sub>从所属社区C<sub>j</sub>获得的重新分配的能量,计算公式为<img file="FDA0001012724660000027.GIF" wi="931" he="158" />其中,c<sub>k</sub>(j)是前面提到的节点v<sub>k</sub>在社区C<sub>j</sub>的社区中心性;最后,计算节点总社交能量E<sub>k</sub>;计算公式为E<sub>k</sub>=E_N<sub>k</sub>+E_C<sub>k</sub>;特别的,孤立节点无法从社区获得能量,只能通过与其他节点的碰撞获得能量;步骤三、根据步骤二的结果,对该容迟网络的路由机制进行优化;将路由机制分成两个阶段:全局阶段和局部阶段;全局阶段:消息没有被传递到目标节点所属社区时,视为路由处于全局阶段;在全局阶段,节点将消息转发给E<sub>k</sub>更高的节点,直到消息达到目的节点所在的局部社区;如果目的节点属于多个社区,则选择社交能量最高的社区,从而有效解决交叉重合社区的路由选择;局部阶段:消息到达目的节点所属社区后,视为路由处于局部阶段;在局部阶段,节点将消息转发给E_C<sub>k</sub>更高的节点,直到消息到达目的节点;优化的具体过程如下:步骤1、当中间节点v<sub>k</sub>携带消息M的q个副本,要转发给目的节点v<sub>d</sub>时遇到节点v<sub>l</sub>;步骤2、判断节点v<sub>l</sub>是否至少携带M的一个副本,若是,转步骤3;若不是,转步骤4;步骤3、节点v<sub>k</sub>持有消息M,等待下一次接触;步骤4、判断节点v<sub>l</sub>是否是目的节点v<sub>d</sub>,若是,转步骤5;若不是,转步骤6;步骤5、节点v<sub>k</sub>将M的一个副本转发给节点v<sub>l</sub>,路由结束;步骤6、判断路由是否处于全局阶段,即判断节点v<sub>k</sub>是否在目的节点v<sub>d</sub>所属社区,若是,转步骤9;若不是,则路由处于全局阶段,转步骤7;步骤7、判断容迟网络判断E<sub>k</sub><E<sub>l</sub>是否成立,若成立,则转步骤8;若不成立,转步骤3;步骤8、节点v<sub>k</sub>转发消息M的<img file="FDA0001012724660000031.GIF" wi="85" he="151" />个副本给节点v<sub>l</sub>;步骤9、判断路由是否处于局部阶段,即判断节点v<sub>l</sub>是否和节点v<sub>k</sub>一样处于目的节点v<sub>d</sub>所属社区,若是,则路由处于局部阶段,转步骤10;若不是,转步骤3;步骤10、判断E_C<sub>k</sub><E_C<sub>l</sub>是否成立,若成立,转步骤8;若不成立,转步骤3;上述过程中,所述步骤6和步骤7是全局阶段的关键步骤;步骤9和步骤10是局部阶段的关键步骤。
地址 100081 北京市海淀区中关村南大街5号