首页 > 专利 > 常熟理工学院 > 一种命名数据网络的实现方法专利详情

一种命名数据网络的实现方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-03-04
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-06-11
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-12-11
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-03-04
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910159694.6 申请日 2019-03-04
公开/公告号 CN109768932B 公开/公告日 2020-12-11
授权日 2020-12-11 预估到期日 2039-03-04
申请年 2019年 公开/公告年 2020年
缴费截止日
分类号 H04L12/741H04L12/751 主分类号 H04L12/741
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 4
权利要求数量 5 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.11.01Xiaonan Wang,等“.Location-RelatedContent Communications With MobilitySupport in Vehicular Scenarios”《. IEEETransactions on Computational SocialSystems》.2018,第918-930页. 王宏宇,等.“无线网络环境下命名数据网络移动性解决方案”《.无线电工程》.2016,第12-15+42页.;
引用专利 US2018316614A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃、严卫、朱海霞 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区) 邮编 215500
申请人数量 1 发明人数量 3
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
南京瑞弘专利商标事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨晓玲
摘要
本发明提供了一种命名数据网络的实现方法,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
  • 摘要附图
    一种命名数据网络的实现方法
  • 说明书附图:图1
    一种命名数据网络的实现方法
  • 说明书附图:图2
    一种命名数据网络的实现方法
  • 说明书附图:图3
    一种命名数据网络的实现方法
  • 说明书附图:图4
    一种命名数据网络的实现方法
  • 说明书附图:图5
    一种命名数据网络的实现方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-12-11 授权
2 2019-06-11 实质审查的生效 IPC(主分类): H04L 12/741 专利申请号: 201910159694.6 申请日: 2019.03.04
3 2019-05-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种命名数据网络的实现方法,其特征在于,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;
如果一个节点有权限产生和提供一个数据块,则该节点称为该数据块的拥有者;一个拥有者能够产生、更新和提供两个以上的数据块,但是一个数据块只能被一个拥有者产生、更新和提供;
如果一个节点有权限获取一个数据块,则该节点称为该数据块的请求者;一个节点配置两个以上的接口,一个接口由接口ID唯一标识,一个接口与另外一个节点相连;
消息由消息类型定义,如下所示:
消息名称 消息类型值
拥有者发布消息 1
请求者发布消息 2
更新消息 3
推送消息 4
获取消息 5
数据消息 6
一个节点保存一个路由表,一个路由表项包含名称、数据块ID、接口ID、节点类型和生命周期;如果节点类型值为1,则表明该节点类型为拥有者,如果节点类型为0,则表明该节点类型为请求者;
数据DA1由名称NA1标识,包含N1个数据块,N1为大于正整数;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,所述数据块的数据块ID构成数据块ID集合BS1;
一个拥有者发布消息包含消息类型、名称和数据块ID集合;
一个请求者发布消息包含消息类型、名称和数据块ID;
拥有者P1产生由名称NA1和数据块集合BS1所定义的数据块后,执行下述过程建立路由表:
步骤101:开始;
步骤102:拥有者P1从每个接口发送拥有者发布消息,该拥有者发布消息中,消息类型值为1,名称为NA1,数据块ID集合为BS1;
步骤103:其他节点从接口f1接收到拥有者发布消息后,对于该拥有者发布消息中的数据块ID集合中的每个元素m1执行下述操作:该节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1,节点类型为1,生命周期大于阈值TH1,如果存在,则执行步骤114,否则执行步骤104;
步骤104:从接口f1接收到拥有者发布消息的节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,如果存在,则执行步骤105,否则执行步骤106;
步骤105:从接口f1接收到拥有者发布消息的节点选择一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,将该路由表项的接口ID更新为f1,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息,执行步骤103;
步骤106:从接口f1接收到拥有者发布消息的节点创建一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,接口ID等于f1,生命周期为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息;如果该节点有权限获取由该拥有者发布消息的名称标识的数据中数据块ID等于m1的数据块,则执行步骤107,否则执行步骤103;
步骤107:从接口f1接收到拥有者发布消息的节点从接口f1发送一个请求者发布消息,该请求者发布消息的消息类型值为2,名称等于该拥有者发布消息的名称,数据块ID等于m1,执行步骤103;
步骤108:其他节点从接口f2接收到该请求者发布消息,如果该节点是拥有者P1,则执行步骤110,否则执行步骤109;
步骤109:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID且节点类型为1,从该路由表项的接口ID所标识的接口转发该请求者发布消息,执行步骤108;
步骤110:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0且生命周期大于阈值TH1,则执行步骤114,否则执行步骤111;
步骤111:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,则执行步骤112,否则执行步骤113;
步骤112:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,将该路由表项的接口ID更新为f2,将生命周期设置为最大值,执行步骤114;
步骤113:从接口f2接收到该请求者发布消息的节点创建一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0,接口ID为f2,生命周期设置为最大值;
步骤114:结束。

2.根据权利要求1所述的一种命名数据网络的实现方法,其特征在于,一个更新消息包含消息类型、节点类型、名称和数据块ID;
数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m2,拥有者P1定期执行下述操作:
步骤201:开始;
步骤202:拥有者P1选择所有符合条件1的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为0,名称为NA1,数据块ID为m2;
条件1:路由表项的名称等于NA1,数据块ID等于m2,节点类型为0;
步骤203:节点接收到更新消息后,选择所有符合条件2的路由表项,如果选中的路由表项的个数为0,则执行步骤205;否则执行步骤204;
条件2:路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型;
步骤204:接收到更新消息的节点选择所有符合条件2的路由表项,针对每个选中的路由表项,该节点执行下述操作:该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤203;
步骤205:结束。

3.根据权利要求1所述的一种命名数据网络的实现方法,其特征在于,数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1定期执行下述操作:
步骤301:开始;
步骤302:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型值为1,将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为1,名称为NA1,数据块ID为m3;
步骤303:节点接收到更新消息后,判断是否存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,是则执行步骤304,否则执行步骤305;
步骤304:接收到更新消息的节点选择存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤303;
步骤305:结束。

4.根据权利要求1所述的一种命名数据网络的实现方法,其特征在于,一个推送消息包含消息类型、名称、数据块ID和负载;数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生和更新数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m4,拥有者P1定期执行下述操作:
步骤401:开始;
步骤402:拥有者P1选择所有符合条件3的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1从该路由表项的接口ID所标识的接口发送一个推送消息,该推送消息的消息类型值为4,名称为NA1,数据块ID为m4,负载为名称NA1和数据块ID m4定义的数据块;
条件3:路由表项的名称等于NA1,数据块ID等于m4,节点类型为0;
步骤403:节点接收到推送消息后,如果该节点有权限获取该推送消息的名称和数据块ID定义的数据块,则执行步骤404,否则执行步骤405;
步骤404:接收到推送消息的节点保存该推送消息负载中的数据块;
步骤405:接收到推送消息的节点选择所有符合条件4的路由表项,如果选中的路由表项的个数为0,则执行步骤407;否则执行步骤406;
条件4:路由表项的名称和数据块ID分别等于接收到的推送消息的名称和数据块ID,节点类型为0;
步骤406:接收到推送消息的节点针对每个选中的路由表项,该节点从该路由表项的接口ID所标识的接口转发该推送消息,执行步骤403;
步骤407:结束。

5.根据权利要求1所述的一种命名数据网络的实现方法,其特征在于,
获取消息包括消息类型、名称和数据块ID;
数据消息包括消息类型、名称、数据块ID和负载;
节点维护一个消息表,一个消息表项包含名称、数据块ID和接口ID;
数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1执行下述操作获取该数据块:
步骤501:开始;
步骤502:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型为1,从该路由表项的接口ID所标识的接口发送一个获取消息,该获取消息的消息类型值为5,名称为NA1,数据块ID为m3;
步骤503:其他节点从接口x1接收到该获取消息,如果该节点能够提供该获取消息中的名称和数据块ID所标识的数据块,则执行步骤508,否则执行步骤504;
步骤504:从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,则执行步骤509,否则执行步骤505;
步骤505;从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID,则执行步骤506,否则执行步骤507;
步骤506:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,执行步骤509;
步骤507:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,选择一个路由表项,该路由表项的名称和数据块ID分别等于该获取消息的名称和数据块ID,且节点类型为1,从选中的路由表项的接口ID所标识的接口转发该获取消息,执行步骤503;
步骤508:从接口x1接收到该获取消息的节点从接口x1发送一个数据消息,该数据消息的消息类型值为6,名称和数据块ID分别等于该获取消息的名称和数据块ID,负载为该获取消息的名称和数据块ID所标识的数据块;
步骤509:节点接收到该数据消息,如果该节点有权限获取该数据消息的名称和数据块ID所标识的数据块,则执行步骤510,否则执行步骤511;
步骤510:接收到数据消息的节点保存该数据消息负载中的数据块;
步骤511:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,如果选中的消息表项的个数为0,则执行步骤513,否则执行步骤512;
条件5:消息表项的名称和数据块ID分别等于接收到的数据消息的名称和数据块ID;
步骤512:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,针对每个选中的消息表项,该节点从该消息表项的接口ID所标识的接口转发该数据消息,删除该数据消息,执行步骤509;
步骤513:结束。
说明书

技术领域

[0001] 本发明涉及一种实现方法,尤其涉及的是一种命名数据网络的实现方法。

背景技术

[0002] 随着命名数据网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高命名数据网络的数据通信性能。近年来,很多研究工作致力于命名数据网络数据通信方法的研究,以便使移动节点能够快速获取网络服务。随着命名数据网络技术的发展,命名数据网络数据通信方法会成为未来提供服务的一种模式。
[0003] 目前,命名数据网络数据通信的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低命名数据网络提供服务的延迟和代价成为近年来研究的热点问题。

发明内容

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供了一种命名数据网络的实现方法。
[0005] 技术方案:本发明公开了一种命名数据网络的实现方法,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;
[0006] 如果一个节点有权限产生和提供一个数据块,则该节点称为该数据块的拥有者;一个拥有者能够产生、更新和提供两个以上的数据块,但是一个数据块只能被一个拥有者产生、更新和提供,数据块例如是英文版的电影或者中文版的电影;
[0007] 如果一个节点有权限获取一个数据块,则该节点称为该数据块的请求者;一个节点配置两个以上的接口,一个接口由接口ID唯一标识,一个接口与另外一个节点相连;
[0008] 消息由消息类型定义,如下所示:
[0009]
[0010]
[0011] 一个节点保存一个路由表,一个路由表项包含名称、数据块ID、接口ID、节点类型和生命周期;如果节点类型值为1,则表明该节点类型为拥有者,如果节点类型为0,则表明该节点类型为请求者;
[0012] 数据DA1由名称NA1标识,包含N1个数据块,N1为大于正整数;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,所述数据块的数据块ID构成数据块ID集合BS1;
[0013] 一个拥有者发布消息包含消息类型、名称和数据块ID集合;
[0014] 一个请求者发布消息包含消息类型、名称和数据块ID;
[0015] 拥有者P1产生由名称NA1和数据块集合BS1所定义的数据块后,执行下述过程建立路由表:
[0016] 步骤101:开始;
[0017] 步骤102:拥有者P1从每个接口发送拥有者发布消息,该拥有者发布消息中,消息类型值为1,名称为NA1,数据块ID集合为BS1;
[0018] 步骤103:其他节点从接口f1接收到拥有者发布消息后,对于该拥有者发布消息中的数据块ID集合中的每个元素m1执行下述操作:该节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1,节点类型为1,生命周期大于阈值TH1,阈值TH1取值范围为最大生命周期的90%-95%,如果存在,则执行步骤108,否则执行步骤104;
[0019] 步骤104:从接口f1接收到拥有者发布消息的节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,如果存在,则执行步骤105,否则执行步骤106;
[0020] 步骤105:从接口f1接收到拥有者发布消息的节点选择一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,将该路由表项的接口ID更新为f1,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息,执行步骤103;
[0021] 步骤106:从接口f1接收到拥有者发布消息的节点创建一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,接口ID等于f1,生命周期为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息;如果该节点有权限获取由该拥有者发布消息的名称和数据块ID m1等于的数据块,则执行步骤107,否则执行步骤103;
[0022] 步骤107:从接口f1接收到拥有者发布消息的节点从接口f1发送一个请求者发布消息,该请求者发布消息的消息类型值为1,名称等于该拥有者发布消息的名称,数据块ID等于m1,执行步骤103;
[0023] 步骤108:其他节点从接口f2接收到该请求者发布消息,如果该节点是拥有者P1,则执行步骤110,否则执行步骤109;
[0024] 步骤109:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID且节点类型为1,从该路由表项的接口ID所标识的接口转发该请求者发布消息,执行步骤108;
[0025] 步骤110:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0且生命周期大于阈值TH1,则执行步骤114,否则执行步骤111;
[0026] 步骤111:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,则执行步骤112,否则执行步骤113;
[0027] 步骤112:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,将该路由表项的接口ID更新为f2,将生命周期设置为最大值,执行步骤114;
[0028] 步骤113:从接口f2接收到该请求者发布消息的节点创建一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0,接口ID为f2,生命周期设置为最大值;
[0029] 步骤114:结束。
[0030] 拥有者通过上述过程建立请求者到达自己的路由路径从而请求者能够获取所需数据块,同时,请求者通过上述过程建立拥有者到达自己的路由路径从而拥有者在更新数据块后实现数据块的实时推送,从而确保请求者快速及时或者最新数据;上述过程通过节点类型同时建立了到达请求者和拥有者的路由路径,同时通过生存时间来确保路由表项的实时性和有效性。
[0031] 本发明所述方法中,一个更新消息包含消息类型、节点类型、名称和数据块ID;
[0032] 数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m2,拥有者P1定期执行下述操作:
[0033] 步骤201:开始;
[0034] 步骤202:拥有者P1选择所有符合条件1的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为0,名称为NA1,数据块ID为m2;
[0035] 条件1:路由表项的名称等于NA1,数据块ID等于m2,节点类型为0;
[0036] 步骤203:节点接收到更新消息后,选择所有符合条件2的路由表项,如果选中的路由表项的个数为0,则执行步骤205;否则执行步骤204;
[0037] 条件2:路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型;
[0038] 步骤204:接收到更新消息的节点选择所有符合条件2的路由表项,针对每个选中的路由表项,该节点执行下述操作:该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤203;
[0039] 步骤205:结束。
[0040] 拥有者通过上述过程更新所有到达请求者的路由路径,从而确保这些路由路径的有效性和实时性,由于拥有者通过自己到达请求者的路由路径进行数据推送,因此大幅度提高了数据推送的成功率,降低了数据推送的延迟和代价。
[0041] 本发明所述方法中,数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1定期执行下述操作:
[0042] 步骤301:开始;
[0043] 步骤302:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型值为1,将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为1,名称为NA1,数据块ID为m3;
[0044] 步骤303:节点接收到更新消息后,判断是否存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,是则执行步骤304,否则执行步骤305;
[0045] 步骤304:接收到更新消息的节点选择存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤303;
[0046] 步骤305:结束。
[0047] 请求者通过上述过程更新拥有者的路由路径,从而确保这些路由路径的有效性和实时性,由于请求者通过自己到达拥有者的路由路径获取数据,因此路由表项的更新操作大幅度提高了请求者获取数据的成功率,降低了获取数据的延迟和代价。
[0048] 本发明所述方法中,一个推送消息包含消息类型、名称、数据块ID和负载;数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生和更新数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m4,拥有者P1定期执行下述操作:
[0049] 步骤401:开始;
[0050] 步骤402:拥有者P1选择所有符合条件3的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1从该路由表项的接口ID所标识的接口发送一个推送消息,该推送消息的消息类型值为4,名称为NA1,数据块ID为m4,负载为名称NA1和数据块ID m4定义的数据块;
[0051] 条件3:路由表项的名称等于NA1,数据块ID等于m4,节点类型为0;
[0052] 步骤403:节点接收到推送消息后,如果该节点由权限获取该推送消息的名称和数据块ID定义的数据块,则执行步骤404,否则执行步骤405;
[0053] 步骤404:接收到推送消息的节点保存该推送消息负载中的数据块;
[0054] 步骤405:接收到推送消息的节点选择所有符合条件4的路由表项,如果选中的路由表项的个数为0,则执行步骤407;否则执行步骤406;
[0055] 条件4:路由表项的名称和数据块ID分别等于接收到的推送消息的名称和数据块ID,节点类型为0;
[0056] 步骤406:接收到推送消息的节点选择所有符合条件4的路由表项,针对每个选中的路由表项,该节点从该路由表项的接口ID所标识的接口转发该推送消息,执行步骤403;
[0057] 步骤407:结束。
[0058] 拥有者通过上述过程定期将数据块推送到请求者,从而确保请求者能够及时获取更新后的数据,从而降低请求获取数据的延迟和代价,同时能够确请求者获取数据的实时性和有效性。
[0059] 本发明所述方法中,获取消息包括消息类型、名称和数据块ID;
[0060] 数据消息包括消息类型、名称、数据块ID和负载;
[0061] 节点维护一个消息表,一个消息表项包含名称、数据块ID和接口ID;
[0062] 数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1执行下述操作获取该数据块:
[0063] 步骤501:开始;
[0064] 步骤502:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型为1,从该路由表项的接口ID所标识的接口发送一个获取消息,该获取消息的消息类型值为5,名称为NA1,数据块ID为m3;
[0065] 步骤503:其他节点从接口x1接收到该获取消息,如果该节点能够提供该获取消息中的名称和数据块ID所标识的数据块,则执行步骤508,否则执行步骤504;
[0066] 步骤504:从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,则执行步骤509,否则执行步骤505;
[0067] 步骤505;从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID,则执行步骤506,否则执行步骤507;
[0068] 步骤506:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,执行步骤509;
[0069] 步骤507:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,选择一个路由表项,该路由表项的名称和数据块ID分别等于该获取消息的名称和数据块ID,且节点类型为1,从选中的路由表项的接口ID所标识的接口转发该获取消息,执行步骤503;
[0070] 步骤508:从接口x1接收到该获取消息的节点从接口x1发送一个数据消息,该数据消息的消息类型值为6,名称和数据块ID分别等于该获取消息的名称和数据块ID,负载为该获取消息的名称和数据块ID所标识的数据块;
[0071] 步骤509:节点接收到该数据消息,如果该节点由权限获取该数据消息的名称和数据块ID所标识的数据块,则执行步骤510,否则执行步骤511;
[0072] 步骤510:接收到数据消息的节点保存该数据消息负载中的数据块;
[0073] 步骤511:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,如果选中的消息表项的个数为0,则执行步骤513,否则执行步骤512;
[0074] 条件5:消息表项的名称和数据块ID分别等于接收到的数据消息的名称和数据块ID;
[0075] 步骤512:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,针对每个选中的消息表项,该节点从该消息表项的接口ID所标识的接口转发该数据消息,删除该数据消息,执行步骤509;
[0076] 步骤513:结束。
[0077] 请求者通过上述过程能够获取所需数据块,上述过程通过消息表实现消息聚合,从而使得两个以上的请求者通过一次数据通信操作即可获取数据,因此降低了数据通信延迟和代价,同时,这些请求者可以从中间节点分享数据,从而进一步降低了获取数据的延迟和代价。
[0078] 有益效果:本发明提供了一种命名数据网络的实现方法,节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。

附图说明

[0079] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0080] 图1为本发明所述的建立路由表流程示意图。
[0081] 图2为本发明所述的更新路由表流程示意图。
[0082] 图3为本发明所述的修改路由表流程示意图。
[0083] 图4为本发明所述的数据推送流程示意图。
[0084] 图5为本发明所述的数据通信流程示意图。具体实施方式:
[0085] 本发明提供了一种命名数据网络的实现方法,节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
[0086] 图1为本发明所述的建立路由表流程示意图。所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;
[0087] 如果一个节点有权限产生和提供一个数据块,则该节点称为该数据块的拥有者;一个拥有者能够产生、更新和提供两个以上的数据块,但是一个数据块只能被一个拥有者产生、更新和提供,数据块例如是英文版的电影或者中文版的电影;
[0088] 如果一个节点有权限获取一个数据块,则该节点称为该数据块的请求者;一个节点配置两个以上的接口,一个接口由接口ID唯一标识,一个接口与另外一个节点相连;
[0089] 消息由消息类型定义,如下所示:
[0090]消息名称 消息类型值
拥有者发布消息 1
请求者发布消息 2
更新消息 3
推送消息 4
获取消息 5
数据消息 6
[0091] 一个节点保存一个路由表,一个路由表项包含名称、数据块ID、接口ID、节点类型和生命周期;如果节点类型值为1,则表明该节点类型为拥有者,如果节点类型为0,则表明该节点类型为请求者;
[0092] 数据DA1由名称NA1标识,包含N1个数据块,N1为大于正整数;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,所述数据块的数据块ID构成数据块ID集合BS1;
[0093] 一个拥有者发布消息包含消息类型、名称和数据块ID集合;
[0094] 一个请求者发布消息包含消息类型、名称和数据块ID;
[0095] 拥有者P1产生由名称NA1和数据块集合BS1所定义的数据块后,执行下述过程建立路由表:
[0096] 步骤101:开始;
[0097] 步骤102:拥有者P1从每个接口发送拥有者发布消息,该拥有者发布消息中,消息类型值为1,名称为NA1,数据块ID集合为BS1;
[0098] 步骤103:其他节点从接口f1接收到拥有者发布消息后,对于该拥有者发布消息中的数据块ID集合中的每个元素m1执行下述操作:该节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1,节点类型为1,生命周期大于阈值TH1,阈值TH1取值范围为最大生命周期的90%-95%,如果存在,则执行步骤108,否则执行步骤104;
[0099] 步骤104:从接口f1接收到拥有者发布消息的节点判断是否存在一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,如果存在,则执行步骤105,否则执行步骤106;
[0100] 步骤105:从接口f1接收到拥有者发布消息的节点选择一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,将该路由表项的接口ID更新为f1,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息,执行步骤103;
[0101] 步骤106:从接口f1接收到拥有者发布消息的节点创建一个路由表项,该路由表项的名称等于该拥有者发布消息的名称,数据块ID等于m1且节点类型等于1,接口ID等于f1,生命周期为最大值,从除了接口f1以外的每个接口转发该拥有者发布消息;如果该节点有权限获取由该拥有者发布消息的名称和数据块ID m1等于的数据块,则执行步骤107,否则执行步骤103;
[0102] 步骤107:从接口f1接收到拥有者发布消息的节点从接口f1发送一个请求者发布消息,该请求者发布消息的消息类型值为1,名称等于该拥有者发布消息的名称,数据块ID等于m1,执行步骤103;
[0103] 步骤108:其他节点从接口f2接收到该请求者发布消息,如果该节点是拥有者P1,则执行步骤110,否则执行步骤109;
[0104] 步骤109:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID且节点类型为1,从该路由表项的接口ID所标识的接口转发该请求者发布消息,执行步骤108;
[0105] 步骤110:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0且生命周期大于阈值TH1,则执行步骤114,否则执行步骤111;
[0106] 步骤111:从接口f2接收到该请求者发布消息的节点查看路由表,如果存在一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,则执行步骤112,否则执行步骤113;
[0107] 步骤112:从接口f2接收到该请求者发布消息的节点选择一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID并且节点类型为0,将该路由表项的接口ID更新为f2,将生命周期设置为最大值,执行步骤114;
[0108] 步骤113:从接口f2接收到该请求者发布消息的节点创建一个路由表项,该路由表项的名称和数据块ID分别等于该请求者发布消息的名称和数据块ID,节点类型为0,接口ID为f2,生命周期设置为最大值;
[0109] 步骤114:结束。
[0110] 拥有者通过上述过程建立请求者到达自己的路由路径从而请求者能够获取所需数据块,同时,请求者通过上述过程建立拥有者到达自己的路由路径从而拥有者在更新数据块后实现数据块的实时推送,从而确保请求者快速及时或者最新数据;上述过程通过节点类型同时建立了到达请求者和拥有者的路由路径,同时通过生存时间来确保路由表项的实时性和有效性。
[0111] 图2为本发明所述的更新路由表流程示意图。一个更新消息包含消息类型、节点类型、名称和数据块ID;
[0112] 数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生、更新和提供数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m2,拥有者P1定期执行下述操作:
[0113] 步骤201:开始;
[0114] 步骤202:拥有者P1选择所有符合条件1的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为0,名称为NA1,数据块ID为m2;
[0115] 条件1:路由表项的名称等于NA1,数据块ID等于m2,节点类型为0;
[0116] 步骤203:节点接收到更新消息后,选择所有符合条件2的路由表项,如果选中的路由表项的个数为0,则执行步骤205;否则执行步骤204;
[0117] 条件2:路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型;
[0118] 步骤204:接收到更新消息的节点选择所有符合条件2的路由表项,针对每个选中的路由表项,该节点执行下述操作:该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤203;
[0119] 步骤205:结束。
[0120] 拥有者通过上述过程更新所有到达请求者的路由路径,从而确保这些路由路径的有效性和实时性,由于拥有者通过自己到达请求者的路由路径进行数据推送,因此大幅度提高了数据推送的成功率,降低了数据推送的延迟和代价。
[0121] 图3为本发明所述的修改路由表流程示意图。数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1定期执行下述操作:
[0122] 步骤301:开始;
[0123] 步骤302:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型值为1,将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口发送一个更新消息,该更新消息的消息类型值为3,节点类型为1,名称为NA1,数据块ID为m3;
[0124] 步骤303:节点接收到更新消息后,判断是否存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,是则执行步骤304,否则执行步骤305;
[0125] 步骤304:接收到更新消息的节点选择存在一个路由表项,该路由表项的名称、数据块ID和节点类型分别等于接收到的更新消息的名称、数据块ID和节点类型,该节点将该路由表项的生命周期设置为最大值,从该路由表项的接口ID所标识的接口转发该更新消息,执行步骤303;
[0126] 步骤305:结束。
[0127] 请求者通过上述过程更新拥有者的路由路径,从而确保这些路由路径的有效性和实时性,由于请求者通过自己到达拥有者的路由路径获取数据,因此路由表项的更新操作大幅度提高了请求者获取数据的成功率,降低了获取数据的延迟和代价。
[0128] 图4为本发明所述的数据推送流程示意图。一个推送消息包含消息类型、名称、数据块ID和负载;数据DA1由名称NA1定义,包含N1个数据块;拥有者P1有权限产生和更新数据DA1中的两个以上的数据块,这些数据块的数据块ID构成数据块ID集合BS1;对于数据块ID集合BS1中的每个元素m4,拥有者P1定期执行下述操作:
[0129] 步骤401:开始;
[0130] 步骤402:拥有者P1选择所有符合条件3的路由表项,针对每个选中的路由表项,拥有者P1执行下述操作:拥有者P1从该路由表项的接口ID所标识的接口发送一个推送消息,该推送消息的消息类型值为4,名称为NA1,数据块ID为m4,负载为名称NA1和数据块ID m4定义的数据块;
[0131] 条件3:路由表项的名称等于NA1,数据块ID等于m4,节点类型为0;
[0132] 步骤403:节点接收到推送消息后,如果该节点由权限获取该推送消息的名称和数据块ID定义的数据块,则执行步骤404,否则执行步骤405;
[0133] 步骤404:接收到推送消息的节点保存该推送消息负载中的数据块;
[0134] 步骤405:接收到推送消息的节点选择所有符合条件4的路由表项,如果选中的路由表项的个数为0,则执行步骤407;否则执行步骤406;
[0135] 条件4:路由表项的名称和数据块ID分别等于接收到的推送消息的名称和数据块ID,节点类型为0;
[0136] 步骤406:接收到推送消息的节点选择所有符合条件4的路由表项,针对每个选中的路由表项,该节点从该路由表项的接口ID所标识的接口转发该推送消息,执行步骤403;
[0137] 步骤407:结束。
[0138] 拥有者通过上述过程定期将数据块推送到请求者,从而确保请求者能够及时获取更新后的数据,从而降低请求获取数据的延迟和代价,同时能够确请求者获取数据的实时性和有效性。
[0139] 图5为本发明所述的数据通信流程示意图。获取消息包括消息类型、名称和数据块ID;
[0140] 数据消息包括消息类型、名称、数据块ID和负载;
[0141] 节点维护一个消息表,一个消息表项包含名称、数据块ID和接口ID;
[0142] 数据DA1由名称NA1定义,包含N1个数据块;请求者C1有权限访问数据DA1中的数据块ID为m3的数据块,请求者C1执行下述操作获取该数据块:
[0143] 步骤501:开始;
[0144] 步骤502:请求者C1选择一个路由表项,该路由表项的名称为NA1,数据块ID为m3,节点类型为1,从该路由表项的接口ID所标识的接口发送一个获取消息,该获取消息的消息类型值为5,名称为NA1,数据块ID为m3;
[0145] 步骤503:其他节点从接口x1接收到该获取消息,如果该节点能够提供该获取消息中的名称和数据块ID所标识的数据块,则执行步骤508,否则执行步骤504;
[0146] 步骤504:从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,则执行步骤509,否则执行步骤505;
[0147] 步骤505;从接口x1接收到该获取消息的节点查看消息表,如果存在一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID,则执行步骤506,否则执行步骤507;
[0148] 步骤506:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,执行步骤509;
[0149] 步骤507:从接口x1接收到该获取消息的节点创建一个消息表项,该消息表项的名称和数据块ID分别等于该获取消息中的名称和数据块ID且接口ID等于x1,选择一个路由表项,该路由表项的名称和数据块ID分别等于该获取消息的名称和数据块ID,且节点类型为1,从选中的路由表项的接口ID所标识的接口转发该获取消息,执行步骤503;
[0150] 步骤508:从接口x1接收到该获取消息的节点从接口x1发送一个数据消息,该数据消息的消息类型值为6,名称和数据块ID分别等于该获取消息的名称和数据块ID,负载为该获取消息的名称和数据块ID所标识的数据块;
[0151] 步骤509:节点接收到该数据消息,如果该节点由权限获取该数据消息的名称和数据块ID所标识的数据块,则执行步骤510,否则执行步骤511;
[0152] 步骤510:接收到数据消息的节点保存该数据消息负载中的数据块;
[0153] 步骤511:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,如果选中的消息表项的个数为0,则执行步骤513,否则执行步骤512;
[0154] 条件5:消息表项的名称和数据块ID分别等于接收到的数据消息的名称和数据块ID;
[0155] 步骤512:接收到数据消息的节点查看消息表,选择所有符合条件5的消息表项,针对每个选中的消息表项,该节点从该消息表项的接口ID所标识的接口转发该数据消息,删除该数据消息,执行步骤509;
[0156] 步骤513:结束。
[0157] 请求者通过上述过程能够获取所需数据块,上述过程通过消息表实现消息聚合,从而使得两个以上的请求者通过一次数据通信操作即可获取数据,因此降低了数据通信延迟和代价,同时,这些请求者可以从中间节点分享数据,从而进一步降低了获取数据的延迟和代价。
[0158] 实施例1
[0159] 基于表1的仿真参数,本实施例模拟了本发明中的一种命名数据网络的实现方法,性能分析如下:当传输数据量增加时,网络性能下降,数据通信成功率有所增加,当传输数据量降低时,网络性能增强,数据通信成功率有所降低,数据获取的平均成功率为98.63%。
[0160] 表1仿真参数
[0161]
[0162] 本发明提供了一种命名数据网络的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号