首页 > 专利 > 陕西师范大学 > 机会网络中一种基于兴趣匹配的数据分发方法专利详情

机会网络中一种基于兴趣匹配的数据分发方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-05-19
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2017-08-04
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2018-06-08
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-05-19
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201710358457.3 申请日 2017-05-19
公开/公告号 CN106941695B 公开/公告日 2018-06-08
授权日 2018-06-08 预估到期日 2037-05-19
申请年 2017年 公开/公告年 2018年
缴费截止日
分类号 H04W28/02H04W28/06H04W28/14H04W24/08H04L12/26 主分类号 H04W28/02
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 6
权利要求数量 7 非专利引证数量 0
引用专利数量 6 被引证专利数量 0
非专利引证
引用专利 CN101771964A、CN101771964A、CN102740365A、CN103152436A、CN103561047A、EP0856955A 被引证专利
专利权维持 1 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 陕西师范大学 当前专利权人 陕西师范大学
发明人 张立臣、余岁、李丽霞、赵若男、王小明 第一发明人 张立臣
地址 陕西省西安市雁塔区长延堡办长安南路东侧 邮编 710061
申请人数量 1 发明人数量 5
申请人所在省 陕西省 申请人所在市 陕西省西安市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京鼎承知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
张波涛、管莹
摘要
针对传统方法中的数据包副本冗余和没有考虑到节点之间的关联性等缺陷,本发明提供一种机会网络中基于兴趣匹配的数据分发方法,包括:本方法中持有数据包的节点首先判断邻居节点中是否含有目标节点,其次选择剩余能量高且与数据包相似度高的节点作为中继节点并确定中继节点所携带的数据包副本数。本发明在基于节点和数据包相似度的基础上,同时考虑了节点的剩余能量和度,可以在一定程度上减少数据包的冗余、缩短数据包的传输时延和提高数据包投递率。
  • 摘要附图
    机会网络中一种基于兴趣匹配的数据分发方法
  • 说明书附图:图1
    机会网络中一种基于兴趣匹配的数据分发方法
  • 说明书附图:图2
    机会网络中一种基于兴趣匹配的数据分发方法
  • 说明书附图:图3
    机会网络中一种基于兴趣匹配的数据分发方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2018-06-08 授权
2 2017-08-04 实质审查的生效 IPC(主分类): H04W 28/02 专利申请号: 201710358457.3 申请日: 2017.05.19
3 2017-07-11 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.机会网络中一种基于兴趣匹配的数据分发方法,包括以下步骤:
步骤1:判断持有数据包的节点i是否需要发送数据包;
步骤2:对要发送的数据包进行队列管理,持有数据包的节点i从队列中取出优先级最高的数据包且待发送;
步骤3:持有数据包的节点i根据邻居节点j的兴趣历史记录表及数据包的兴趣向量,计算邻居节点j与数据包的兴趣相似度;
邻居节点j和所要发送的数据包的兴趣相似度计算公式为:
其中,αu表示兴趣u的权重,r是指整个网络共有不同兴
趣总数,τu表示具有某一特征值的邻居节点数在与持有数据包的节点相遇的全部节点的总数中所占的比例,计算式为:
其中,Nuk表示的是兴趣u中具体为k的相遇个数,Lu指的是第u种兴趣的个数;
步骤4:判断持有数据包的节点i所持有的数据包的副本数是否大于或等于候选节点集合中要发送的数据包总个数;
步骤5:持有数据包的节点i构造、广播数据包并更新数据包的副本数;
步骤6:判断数据包队列中是否还有未发送的数据包;
步骤7:持有数据包的节点i将所持有的数据包发送给一个邻居节点j后,继续等待和其它节点相遇,并重复执行所述步骤1-6。

2.根据权利要求1所述的方法,其特征在于,在所述步骤1-7中,数据包分为a、b两类,a类为节点自身产生的数据包,b类为来自于其它节点的转发数据包。

3.根据权利要求1所述的方法,其特征在于,在所述步骤2中,队列管理是由数据包的类型和生存时间共同决定的。

4.根据权利要求1所述的方法,其特征在于,在所述步骤2中,数据包优先级的计算方法为:
其中t为数据包的生存时间。

5.根据权利要求1所述的方法,其特征在于,所述步骤3包括:
步骤3.1:更新持有数据包的节点i与相遇节点的兴趣历史记录表;
步骤3.2:计算邻居节点j的τu值;
步骤3.3:计算邻居节点j和所要发送数据包的兴趣相似度;
步骤3.4:判断每个邻居节点j和所发送数据包的相似度值是否超过阈值δ1,如超过,将该邻居节点j加入到候选节点集合,否则计算该节点的转发程度函数
步骤3.5:计算邻居节点j的转发程度函数
步骤3.6:判断邻居节点j的转发程度值是否大于阈值δ2,大于,则计算转发的副本数k,否则持有数据包的节点不转发数据包给该邻居节点j。

6.根据权利要求1所述的方法,其特征在于,所述步骤5包括:
步骤5.1:持有数据包的节点i构造新的数据包;
步骤5.2:计算候选节点集合中需要发送的数据包个数γ;
步骤5.3:判断数据包副本数k的值是否大于等于γ,若是,则持有数据包的节点构造新数据包;
步骤5.4:节点i广播数据包并按照集合S中的各个元素广播数据包;
步骤5.5:任意接收到数据包的邻居节点j,判断S中的元素的第一个分量是否含有该节点,若是,则邻居节点j接收数据包,并设置其副本数为包含该节点的元素的第二个分量,否则节点j丢弃该数据包。

7.根据权利要求5所述的方法,其特征在于,在所述步骤3.4中,邻居节点j的转发程度函数为
其中,ei、ej分别表示节点i和节点j的节点的
剩余能量,ηi,D、ηj,D分别是节点i与数据包的相似度和节点j与数据包的相似度,α是一个固定的参数,用于调节数据包与节点相似度和节点能量在转发程度函数中各自所占的比例。
说明书

技术领域

[0001] 本发明属于机会网络领域,特别涉及一种基于兴趣匹配的数据分发方法。

背景技术

[0002] 机会网络是一种通过节点移动带来的相遇机会来实现网络通信的,时延和分裂的可容忍的自组织网络。机会网络节点初始位置和网络的规模都不需要事先设定,不需要源
节点和目标节点之间存在完整的路径就可以很好的地应对无线环境中需要面对的间歇性
连接、大延迟、高错误率等通信特征。机会网络中,采用“存储-携带-转发”形式的路由协议
能够极大地扩大移动互联网的覆盖范围,在网络基础设施缺乏和网络环境恶劣的条件下使
得数据的分发成为可能。
[0003] 机会网络的数据包分发与其路由机制密不可分,机会路由的多副本特性使得数据包分发在其传递过程中得以实现。然而,在实际使用的过程中,为保证数据包传输的成功
率,网络中会存在大量重复的数据包副本,使得数据包分发过程极大地占用网络存储资源,
成为造成网络拥塞的主要原因。大量针对机会网络的路由算法被提出,这些算法大多从数
据包复制与拓扑预测2个方面提高机会网络的路由性能。例如:Epidemic算法与Spray and 
wait算法通过增加数据包副本数的方式提高路由效率;而Spray and Focus,Prophet,
MaxProp算法则通过预测选择投递成功率较高的中继节点的方式提高路由效率。根据网络
中单个数据包的副本数,经典的机会网络路由方法可以分为单副本路由方法和多副本路由
方法两种。一般情况下,单副本路由方法开销率低、网络耗能少,但投递率较低并且时延较
大,如:Direct Delivery路由方法和First Contact路由方法;多副本路由方法往往能保证
较高的投递率和较小的时延,但通常网络开销率和耗能较大,如:Epidemic路由方法、Spray 
and Wait路由方法和Prophet路由方法。我们还发现,在网络节点能量有限、网络节点的缓
存空间有限和被传输的数据包的生存时间有限的条件下,现有的机会网络的研究大多是针
对于某一个性能的改进,很少有基于多方面性能同时提升。与此同时,大部分的研究中持有
数据包副本的节点分发多副本的个数也是提前规定好的,不能随着网络结构的变化而随之
改变,导致网络中会存在较多的冗余副本。经典的路由算法,如Epidemic路由方法和Spray 
and Wait路由方法都没有考虑到节点之间属性的关联性,只是盲目地向邻居节点发送之前
定义好的数据包个数。Prophet路由方法考虑到了节点之间的关联性,但没有动态、合理地
给中继节点分配相应个数的数据包。因此,随着移动互联网的迅猛发展,提出一种基于多方
面因素考虑的提高数据包的投递率和减少传输延迟的数据分发方法就极为迫切。

发明内容

[0004] 本发明的目的在于克服现有方法中的不足,提供一种基于兴趣匹配的数据分发方法,在基于兴趣匹配的基础上,可以在一定程度上减少数据包的冗余、缩短数据包的传输时
延和提高数据包投递率。
[0005] 为了达到上述目的,本发明提供以下技术方案:
[0006] 本发明提供了一种基于兴趣匹配的数据分发方法,包括以下步骤:
[0007] 步骤1:判断持有数据包的节点i是否需要发送数据包;
[0008] 步骤2:对要发送的数据包进行队列管理,持有数据包的节点i从队列中取出优先级最高的数据包且待发送;
[0009] 步骤3:持有数据包的节点i根据邻居节点j的兴趣历史记录表及数据包的兴趣向量,计算邻居节点j与数据包的兴趣相似度;
[0010] 步骤3.1:更新持有数据包的节点i与相遇节点的兴趣历史记录表;
[0011] 步骤3.2:计算邻居节点j的τu值;
[0012] 步骤3.3:计算邻居节点j和所要发送数据包的兴趣相似度;
[0013] 步骤3.4:判断每个邻居节点j和所发送数据包的相似度值是否超过阈值δ1,如超过,将该邻居节点j加入到候选节点集合,否则计算该节点的转发程度函数
[0014] 步骤3.5:计算邻居节点j的转发程度函数
[0015] 步骤3.6:判断邻居节点j的转发程度值是否大于阈值δ2,大于,则计算转发的副本数k,否则持有数据包的节点不转发数据包给该邻居节点j;
[0016] 步骤4:判断持有数据包的节点i所持有的数据包的副本数是否大于或等于候选节点集合中要发送的数据包总个数;
[0017] 步骤5:持有数据包的节点i构造、广播数据包并更新数据包的副本数;
[0018] 步骤5.1:持有数据包的节点i构造新的数据包;
[0019] 步骤5.2:计算候选节点集合中需要发送的数据包个数γ;
[0020] 步骤5.3:判断数据包副本数k的值是否大于等于γ,若是,则持有数据包的节点构造新数据包;
[0021] 步骤5.4:节点i广播数据包并按照集合S中的各个元素广播数据包;
[0022] 步骤5.5:任意接收到数据包的邻居节点j,判断S中的元素的第一个分量是否含有该节点,若是,则邻居节点j接收数据包,并设置其副本数为包含该节点的元素的第二个分
量,否则节点j丢弃该数据包;
[0023] 步骤6:判断数据包队列中是否还有未发送的数据包;
[0024] 步骤7:持有数据包的节点i将所持有的数据包发送给一个邻居节点j后,继续等待和其它节点相遇,并重复执行所述步骤1-6。
[0025] 优选的,所述步骤1-7中,数据包分为a、b两类,a类为节点自身产生的数据包,b类为来自于其它节点的转发数据包;
[0026] 优选的,所述步骤2中,队列管理是由数据包的类型和生存时间共同决定的;
[0027] 优选的,所述步骤2中,数据包优先级的计算方法为:
[0028]
[0029] 其中t为数据包的生存时间;
[0030] 优选的,所述步骤3中,邻居节点j和所要发送的数据包的兴趣相似度计算公式为:
[0031] 其中,参数τu表示具有某一特征值的邻居节点数在与持有数据包的节点相遇的全部节点的总数中所占的比例,计算式为:
[0032] 其中,Nuk表示的是兴趣u中具体为k的相
[0033] 遇个数,Lu指的是第j种兴趣的个数;
[0034] 更优选的,所述步骤3.4中,邻居节点j的转发程度函数为
[0035] 其中,ei、ej分别表示节点i和节点j的节点的剩余能量,ηi,D、ηj,D分别是节点i与数据包的相似度和节点j与数据包的相似度。α是一个固定的参数,用于调节数据包与节点相似度和节点能量在转发程度函数中各自所占的
比例。
[0036] 本发明的有益效果:
[0037] 本发明提出的一种基于兴趣匹配的数据分发方法,可以使数据包的源节点可以快速地选择相似度高和节点能量高的节点来转发数据包,同时计算节点被分配的数据包的副
本数。因此,此方法随着网络负载的增加,始终能够保持较高的数据包的成功投递率和较低
的投递时延。本发明考虑到节点之间的关联性,采用的兴趣匹配的方法能够保证节点缓存
中的大部分数据包都是节点感兴趣的,能够提高节点参与网络协助的积极性,极大减少了
节点对自身不感兴趣的数据包的存储耗能。这种转发的策略能够保证节点缓存区中与节点
兴趣匹配的数据包所占的空间与总的缓存空间的比值较高。

实施方案

[0041] 下面结合附图对本发明的技术方案做详细描述。
[0042] 本发明实施例采用连接图G(V,E)来表示机会网络,其中V代表节点的集合,每个节点代表一个用户,eij∈E表示节点i和节点j的连接边。网络中任意一对节点i和节点j之间的
相遇服从参数为λij的指数分布,网络中的每个节点具有一定的初始能量,在转发和接收数
据包时都会消耗一定的能量。网络中的节点转发和接收数据包具体方法流程如图1所示,包
括如下步骤:
[0043] 步骤1:判断节点i是否需要发送数据包。
[0044] 如果有数据包需要发送,则进入发送环节,否则节点i需要等待有发送需求的数据包或者直到与其他节点相遇。
[0045] 步骤2:对要发送的数据包队列进行排序,节点i从队列中取出优先级最高的数据包且待发送。
[0046] 步骤3:节点i根据每个邻居节点j的兴趣历史记录表及数据包的兴趣向量,计算每个邻居节点j与数据包的兴趣相似度,并依据所计算兴趣相似度决定是否将数据包发送给
该节点。
[0047] 步骤4:判断节点i持有的数据包的副本数k是否大于或等于集合S中要发送的数据包总个数,如果是大于或等于,进行下一步骤,否则节点i优先选择转发条件好的节点作为
中继节点。
[0048] 步骤5:节点i构造、广播数据包并更新数据包的副本数k,进一步包括如下步骤:
[0049] 步骤5.1:节点i构造新的数据包。
[0050] 假设有S和H两个集合,如下表所示:
[0051]S H
[0052] 其中,S是候选节点二元组的集合,H是候选节点接收数据包的副本数的集合。新数据包包含集合S,集合S中包含有二元组(m,hm),其中m代表的节点的编号,hm代表的是节点m
接收的数据包副本数。
[0053] 步骤5.2:计算集合S中需要发送的数据包的个数γ。
[0054]
[0055] 其中|S|是候选集合S的势,m是指候选节点的编号,hm是编号为m的候选节点接收数据包的个数。
[0056] 步骤5.3:判断数据包副本数k的值是否大于等于γ,若是,则节点i构造新数据包。否则节点i将集合S中二元组中hm为1的二元组保持不变,其他二元组的hm值置为0,构造数据
包D。
[0057] 步骤5.4:节点i广播数据包并按照集合S中的各个元素广播数据包。
[0058] 步骤5.5:任意接收到数据包的邻居节点j,判断S中的元素的第一个分量是否含有该节点,若是,则邻居节点j接收数据包,并设置其副本数为包含该节点的元素的第二个分
量,否则节点j丢弃该数据包。
[0059] 进一步的,若节点j的数据包队列已有数据包,则丢弃新接收的数据包。
[0060] 若节点j的数据包队列已满,则节点j比较新到的数据包的优先级(设为α)与队列中所含数据包的最低优先级(设为β)的大小关系,若α大于β,则节点j丢弃优先级为β的数据包,并存优先级为α的数据包,否则节点j放弃对新数据包的存储。
[0061] 步骤6:判断数据包队列中是否还有未发送的数据包。
[0062] 如果数据包队列中还有未发送的数据包,返回执行步骤2,对剩余数据包进行排序,并从队列中取出优先级最高的数据包且计算每个邻居节点j与该数据包的相似度。
[0063] 步骤7:节点i将所持有的数据包发送给一个邻居节点后,继续等待和其它节点相遇,并重复执行步骤1-6。
[0064] 如图2所示,为本发明实施例数据包队列管理示意图。若某个节点同时有多个数据包等待发送,就按照一定的转发策略将所要发送的数据包形成队列进行管理。队列管理就
是对节点存储的数据包进行恰当的分类,从而在节点相遇时决策存储队列中数据包的转发
顺序,并在存储达到最大值时决策数据包的丢弃规则。机会网络中的数据包主要分为两种
类型:(a)节点自身产生的数据,封装为数据包存入数据包队列;(b)来自于其它节点的转发
数据包,存入数据包队列。在上述两种类型的数据包中,a类数据包刚刚产生,还没有经过传
输,而b类数据包已经被传输过了。因此,令a类数据包比b类数据包先发送,即a类数据包的
类别高于b类数据包。对于网络中的数据包,其生存时间越久,副本数目就可能越多,成功递
交到目标节点的概率也越大,因此生存时间也可以用来表示数据包在网络中的重要性和冗
余程度。
[0065] 假设在数据包的首部设有一个生存时间域,用来记录数据包在网络中的存活时间,此外,
[0066] 每个节点均有一个本地计时器。对于数据包的生存时间,按照如下的规则进行计算和更新:
[0067] ①刚生成的数据包,其生存时间被赋于0,并被存入数据包队列。
[0068] ②当数据包被转发到某个邻居节点时,此节点直接将其存入数据包队列,而对数据包的生存时间不做任何修改。同样,当数据包被传送给其它节点并重新放回数据包队列
后,其生存时间同样不变。之所以这么做是由于数据包在节点间的传输时间非常短,几乎可
以忽略。
[0069] ③数据包在被放入节点的数据包队列之后,其生存时间会在计时器超时片刻被自动增加。
[0070] 队列管理是由数据包的类型和生存时间共同决定的。数据包队列中的所有数据包按照先发送a类数据包后发送b类数据包的顺序排列并发送,而对于类别相同的数据包,则
依据各自的生存时间长短来排序,生存时间越小的数据包,其排列顺序越前。最后数据包队
列中数据包按照优先级从大到小排序。
[0071] 当节点的数据包队列已满,又有新数据包需要被入列时,节点比较新到的数据包和队尾的数据包的类别,并参照二者的生存时间做出数据包丢弃决定。规则如下:
[0072] ①若新数据包的优先级和队尾数据包的类别相同,且新数据包的生存时间较长,则直接丢弃新数据包;
[0073] ②若新数据包的和队尾数据包的类别相同,且新消时息的生存时间较短,则队尾数据包被丢弃,而新数据包会按照上述的数据包类别和生存时间的规则被插入到数据包队
列中;
[0074] ③若新数据包的类别高于队尾数据包的类别,新数据包也会按照上述的数据包的类别和生存时间的规则被插入到数据包队列中。
[0075] 数据包D的优先级PD计算方法如下:
[0076]
[0077] 其中t为数据包的生存时间。
[0078] 如图3所示,为本发明实施例邻居节点与数据包兴趣相似度匹配流程图,具体步骤如下:
[0079] 步骤3.1:更新持有数据包的节点i与相遇节点的兴趣历史记录表。
[0080] 兴趣向量F表示用户对各种兴趣的喜好程度,也表示内容在各个兴趣上的相关程度:
[0081] F=
[0082] F是一个兴趣向量,具有r个分量:f1到fr,fi代表第i个兴趣。如兴趣表(表1)所示:
[0083] 表1
[0084]  描述 值
f1 饮食 中餐
f2 音乐 古典乐
f3 阅读 看报
f4 影视 韩剧,美剧
… … …
fi 书籍 文学
… … …
fr 棋类 围棋
[0085] 每个兴趣具有多个可能的值。例如,f4表示影视,其值可能是“韩剧”或者“古装剧”。
[0086] 网络中任意一对节点相遇后会交换各自的兴趣形成各自的兴趣历史记录。本方法采用表格来记录节点的兴趣历史记录,如兴趣历史记录表(表2)所示:
[0087] 表2
[0088]特征 值1 值2 …
饮食 中餐(3) 西餐(3) …
音乐 古典乐(6) 流行乐(2) …
阅读 看报(6) 读书(2) …
影视 韩剧(2) 美剧(5) …
书籍 文学(5) 哲学(1) …
棋类 围棋(6) 象棋(2) …
… … … …
[0089] 网络中有如下的兴趣列表:(饮食,音乐,阅读,影视,书籍,棋类)。节点i的兴趣向量Fi=,代表的是(“中餐”,“古典乐”,“看报”,“韩剧,美剧”,“文学”,“围棋”)。节点i和邻居交换兴趣后,邻居节点和节点i的兴趣历史记录表会相对应地更新。
例如,如果节点i已经更新了f2的值为“古典乐=2”,则说明它曾经遇到两个对古典乐感兴
趣的节点。
[0090] 假设数据包L具有兴趣列表F=(“中餐”,“古典乐”,“看报”,“韩剧,美剧”,“文学”,“围棋”),在节点i的历史相遇记录中,对于兴趣“饮食”,存在两个喜欢“中餐”的节点,三个喜欢“西餐”的节点。因此, 类似地,对于兴趣“影视”,我们可以得到因此,我们得到:
[0091]
[0092] 假设αj=1,对于所有j=1,2,3,…,r,可得节点i和数据包L的兴趣相似性是0.5202。
[0093] 步骤3.2:计算邻居节点j的τu值,计算公式为:
[0094]
[0095] 参数τu表示具有某一特征值的邻居节点数在与持有数据包的节点相遇的全部节点的总数中所占的比例,Nuk表示的是兴趣u中具体为k的相遇个数,Lu指的是第j种兴趣的个
数。持有数据包D的节点i会收到所有邻居节点发来的历史相遇记录表,数据包D的兴趣向量
节点i根据数据包D和它的邻居节点们的历史相遇记录表来
计算它们的兴趣相似度。
[0096] 步骤3.3:计算邻居节点j和所要发送的数据包的兴趣相似度ηj,D,计算公式为:
[0097]
[0098] 其中,r是指整个网络共有不同兴趣总数,αu是兴趣u的权重,并且
[0099] 相似度ηj,D值越高,表示该邻居节点与所要发送的数据包的兴趣更相关。因此,如果采用该邻居节点作为中继节点,那么就更可能遇到对该数据包感兴趣的其它节点,这在
一定程度上提高了数据包D的投递率。
[0100] 步骤3.4:判断每个邻居节点j和所发送数据包的相似度值是否超过阈值δ1,如果超过,则将二元组(j,1)加入到候选节点集合,否则计算节点i与节点j之间的转发程度函数
[0101] 步骤3.5:计算邻居节点j的转发程度值
[0102] 通过计算邻居节点j和持有数据包的节点i的转发程度函数 来判断邻居节点j是否有能力帮助节点i转发数据包,转发程度函数 计算公式为:
[0103]
[0104] 其中,ei、ej分别表示节点i和节点j的节点的剩余能量,ηi,D,ηj,D分别是节点i与数据包的相似度和节点j与数据包的相似度。α是一个固定的参数,用于调节数据包与节点相似度和节点能量在转发程度函数中各自所占的比例。
[0105] 步骤:3.6:判断节点j的转发程度值 是否大于阈值δ2。
[0106] 如果节点j的转发程度值 大于阈值δ2,计算转发的副本数εj,并将二元组(j,εj)加入到集合S中,否则节点i不转发数据包给节点j。
[0107] 副本数εj的计算公式为:
[0108]
[0109] 其中,k表示节点i持有的数据包的副本数,n表示符合转发条件邻居结点的个数,σi表示节点i的度,公式为:
[0110]
[0111] 1/λij表示节点i和节点j之间的相遇时间间隔,1/λij越小,表明节点i和节点j之间的相遇频繁度越大,它们之间传输的数据包时会有更少的传输延迟。
[0112] 以下,对为了确认本发明得到的效果而实施的实验例进行说明。
[0113] 实验例1,持有数据包的节点具有多个数据包需要发送,且当前邻居节点有多个:
[0114] 设节点A有三个数据包据需要发送,持有的数据包D1是a类型数据包,生存时间为0,数据包D2是b类型数据包,生存时间为3h,数据包D3是b类型数据包,生存时间为1h,生存
时间的单位是小时。节点A的当前邻居有:节点B,节点C和节点E,节点A的度是20,节点B的度
是30,节点C的度是50,节点E的度是60,单位是个/秒。按照本发明数据包的分发方式,具体
实施方式如下:
[0115] 1)节点A判断自身是否有数据包需要发送,如果有数据包需要发送,则进行下一步,否则,节点A等待直到与其他节点相遇;
[0116] 2)计算得节点A的数据包D1的优先级是2,数据包D2的优先级是0.25,数据包D2的优先级是0.5。节点A按照优先级的大小排序数据包形成数据包队列。节点A要发送的数据包
队列中取出优先级最高的数据包D1,计算周围邻居节点中含有数据包D1的个数在总的邻居
节点中的比例为0.3,没有超过阈值δ3,δ3的值为0.8,将D1的副本数初始值为k=10;
[0117] 3)节点A根据当前邻居的兴趣历史记录表及数据包D1的兴趣向量,计算每个邻居与数据包D1的相似度。节点A的当前邻居有节点B,节点C和节点E,节点A分别计算数据包D1
和它们的相似度的值,即ηB,D1,ηC,D1,ηE,D1,计算得ηA,D=0.80,ηB,D1=0.55,ηC,D1=0.50,ηE,D1=0.32;
[0118] 4)对于当前所有的邻居节点和数据包D1的相似度的值ηB,D1,ηC,D1,ηE,D1,节点A判断它们是否超过阈值δ1,δ1的值为0.55。比较过后发现只有节点B满足条件,对于节点B,节点A则将二元组(B,1)加入到候选节点集合S中;节点A对于节点C和节点E的转发程度函数值为节点A判断转发程度函数值是否超过阈值δ2,δ2的值为0.45,比较
过后发现只有节点B满足条件,计算得节点B的副本数值εB=3,并将二元组(C,3)加入到集
合S中;
[0119] 5)节点A判断候选节点集合S是否为空,若集合S不为空,广播数据包D1。其方式为节点A先构造数据包D1’,D1’中包含的二元组有(B,1)和(C,3)。二元组的前一个分量代表的是节点的编号,后一个分量代表的是该编号的节点接收数据包的副本数。节点A的当前邻居
节点们收到数据包D1’后,判断S中的元素的第一个分量是否含有该节点,节点B接收数据包
D1,并设置其副本数为D1;则节点C接收数据包1,并设置其副本数为3;节点E丢弃该数据包
D1;
[0120] 6)节点A更新数据包1的副本数k=6的值;
[0121] 7)判断数据包队列中是否还有未发送的数据包,本实例中还有数据包没发送,故跳转至步骤2。
[0122] 实验例2,持有数据包的节点具有1个数据包需要发送,且当前邻居节点有多个:
[0123] 设节点A持有数据包D1,节点A的当前邻居有:节点B,节点C和节点E,节点A的度是20,节点B的度是30,节点C的度是50,节点E的度是60,单位是个/秒。则按照本发明的数据包
的分发方式,具体实施方式如下:
[0124] 1)节点A判断自身是否有数据包需要发送,如果有数据包需要发送,则进行下一步,否则,节点A等待直到与其他节点相遇;
[0125] 2)节点A要发送数据包为数据包D1,计算周围邻居节点中含有数据包D1的个数在总的邻居节点中的比例为0.2,没有超过阈值δ3,δ3的值为0.8,将D1的副本数初始值为k=
10;
[0126] 3)节点A根据当前邻居的兴趣历史记录表及数据包D1的兴趣向量,计算每个邻居与数据包D1的相似度。节点A的当前邻居有节点B,节点C和节点E,节点A分别计算数据包D1
和它们的相似度的值,即ηB,D1,ηC,D1,ηE,D1,计算得ηA,D=0.80,ηB,D1=0.55,ηC,D1=0.50,ηE.D1=0.32;
[0127] 4)对于当前所有的邻居节点和数据包D1的相似度的值ηB,D1,ηC,D1,ηE,D1,节点A判断它们是否超过阈值δ1,δ1的值为0.55。比较过后发现只有节点B满足条件,对于节点B,节点A则将二元组(B,1)加入到候选节点集合S中;对于节点C和节点E,计算节点A和节点C和节点E的转发程度函数值 节点A判断转发程度函数值是否超过阈值δ2,
δ2的值为0.45,比较过后发现只有节点B满足条件,则根据公式(5)和公式(6)计算节点C的
副本数值εB=3,并将二元组(C,3)加入到集合S中。节点A放弃让节点E转发数据包D1;
[0128] 5)节点A判断候选节点集合S是否为空,若集合S不为空,广播数据包D1。其方式为节点A先构造数据包D1’,D1’中包含的二元组有(B,1)和(C,3)。二元组的前一个分量代表的是节点的编号,后一个分量代表的是该编号的节点接收数据包的副本数。节点A的当前邻居
节点们收到数据包D1’后,判断S中的元素的第一个分量是否含有该节点,节点B接收数据包
D1,并设置其副本数为1;则节点C接收数据包D1,并设置其副本数为3;节点E丢弃该数据包
D1;
[0129] 6)节点A更新数据包D1的副本数k=6的值;
[0130] 7)节点A暂时停止发送数据包,等待与其他节点相遇。
[0131] 实验例3,持有数据包的节点具有多个数据包需要发送,且当前邻居节点有1个:
[0132] 设节点A当前时刻三个数据包据需要发送,持有数据包D1是a类型数据包,生存时间0,数据包D2是b类型数据包,生存时间3h和数据包D3是b类型数据包,生存时间1h,生存时
间的单位是小时,节点A的当前邻居节点只有节点C,节点A的度是20,节点C的度是50,单位
是个/秒。则按照本发明的数据包的分发方式,具体实施方式如下:
[0133] 1)节点A判断自身是否有数据包需要发送,如果有数据包需要发送,则进行下一步,否则,节点A等待直到与其他节点相遇;
[0134] 2)节点A的数据包D1的优先级是2,数据包D2的优先级是0.25,数据包D2的优先级是0.5,节点A按照优先级的大小排序数据包形成数据包队列。节点A要发送的数据包队列中
取出优先级最高的数据包D1,计算周围邻居节点中含有数据包D1的个数在总的邻居节点中
的比例为0.3,没有超过阈值δ3,δ3的值为0.8。将D1的副本数初始值为k=10;
[0135] 3)节点A根据当前邻居的兴趣历史记录表及数据包D1的兴趣向量,计算邻居节点C与数据包D的相似度。节点A的当前邻居只有节点C,节点A分别计算数据包1和节点C的相似
度的值,即ηC.D1,计算得ηA.D=0.80,ηC,D1=0.50;
[0136] 4)对于当前邻居节点C和数据包D1的相似度的值ηC.D1,节点A判断它们是否超过阈值δ1,δ1的值为0.55。比较过后发现只有节点C不满足条件,节点A和节点C的转发程度函数值节点A判断转发程度函数值是否超过阈值δ2,δ2的值为0.45,比较过后发现节
点C满足条件,计算得节点B的副本数值εB=3,并将二元组(C,3)加入到集合S中;
[0137] 5)节点A判断候选节点集合S是否为空,若集合S不为空,广播数据包D1,其方式为:节点A先构造数据包D1’,D1’中包含的二元组(C,3),二元组的前一个分量代表的是节点的
编号,后一个分量代表的是该编号的节点接收数据包的副本数;节点A的当前邻居节点C收
到数据包D1’后,判断S中的元素的第一个分量是否含有该节点,节点B接收数据包D1,并设
置其副本数为1,则节点C接收数据包D1,并设置其副本数为3;
[0138] 6)节点A更新数据包D1的副本数k=6的值;
[0139] 7)判断数据包队列中是否还有未发送的数据包,本实例中还有数据包没发送,故跳转至步骤2)。
[0140] 实验例4,持有数据包的节点A具有1个或者多个数据包需要发送,且当前无邻居节点,则节点A等待直到和其他节点相遇。

附图说明

[0038] 图1为本发明实施例机会网络中一种基于兴趣匹配的数据分发方法流程图;
[0039] 图2为本发明实施例数据包队列管理示意图;
[0040] 图3为本发明实施例邻居节点与数据包兴趣相似度匹配流程图。
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号