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

技术编号:21146052 阅读:30 留言:0更新日期:2019-05-18 06:39
本发明专利技术提供了一种命名数据网络的实现方法,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;节点通过本发明专利技术提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明专利技术可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。

An Implementation Method of Named Data Network

【技术实现步骤摘要】
一种命名数据网络的实现方法
本专利技术涉及一种实现方法,尤其涉及的是一种命名数据网络的实现方法。
技术介绍
随着命名数据网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高命名数据网络的数据通信性能。近年来,很多研究工作致力于命名数据网络数据通信方法的研究,以便使移动节点能够快速获取网络服务。随着命名数据网络技术的发展,命名数据网络数据通信方法会成为未来提供服务的一种模式。目前,命名数据网络数据通信的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低命名数据网络提供服务的延迟和代价成为近年来研究的热点问题。
技术实现思路
专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供了一种命名数据网络的实现方法。技术方案:本专利技术公开了一种命名数据网络的实现方法,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块IDn1标识,n1=1…N;如果一个节点有权限产生和提供一个数据块,则该节点称为该数据块的拥有者;一个拥有者能够产生、更新和提供两个以上的数据块,但是一个数据块只能被一个拥有者产生、更新和提供,数据块例如是英文版的电影或者中文版的电影;如果一个节点有权限获取一个数据块,则该节点称为该数据块的请求者;一个节点配置两个以上的接口,一个接口由接口ID唯一标识,一个接口与另外一个节点相连;消息由消息类型定义,如下所示:一个节点保存一个路由表,一个路由表项包含名称、数据块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,阈值TH1取值范围为最大生命周期的90%-95%,如果存在,则执行步骤108,否则执行步骤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以外的每个接口转发该拥有者发布消息;如果该节点有权限获取由该拥有者发布消息的名称和数据块IDm1等于的数据块,则执行步骤107,否则执行步骤103;步骤107:从接口f1接收到拥有者发布消息的节点从接口f1发送一个请求者发布消息,该请求者发布消息的消息类型值为1,名称等于该拥有者发布消息的名称,数据块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:结束。拥有者通过上述过程建立请求者到达自己的路由路径从而请求者能够获取所需数据块,同时,请求者通过上述过程建立拥有者到达自己的路由路径从而拥有者在更新数据块后实现数据块的实时推送,从而确保请求者快速及时或者最新数据;上述过程通过节点类型同时建立了到达请求者和拥有者的路由路径,同时通过生存时间来确保路由表项的实时性和有效性。本专利技术所述方法中,一个更新消息包含消息类型、节点类型、名称和数据块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:结束。拥有者通过上述过程更新所有到达请求者的路由路径,从而确保这些路由路径的有效性和实本文档来自技高网...

【技术保护点】
1.一种命名数据网络的实现方法,其特征在于,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块ID n1标识,n1=1…N;如果一个节点有权限产生和提供一个数据块,则该节点称为该数据块的拥有者;一个拥有者能够产生、更新和提供两个以上的数据块,但是一个数据块只能被一个拥有者产生、更新和提供;如果一个节点有权限获取一个数据块,则该节点称为该数据块的请求者;一个节点配置两个以上的接口,一个接口由接口ID唯一标识,一个接口与另外一个节点相连;消息由消息类型定义,如下所示:

【技术特征摘要】
1.一种命名数据网络的实现方法,其特征在于,所述网络包括一组节点;一种类型的数据由名称标识,数据由N个数据块构成,N大于1的整数,每个数据块由数据块IDn1标识,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,如果存在,则执行步骤108,否则执行步骤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以外的每个接口转发该拥有者发布消息;如果该节点有权限获取由该拥有者发布消息的名称和数据块IDm1等于的数据块,则执行步骤107,否则执行步骤103;步骤107:从接口f1接收到拥有者发布消息的节点从接口f1发送一个请求者发布消息,该请求者发布消息的消息类型值为1,名称等于该拥有者发布消息的名称,数据块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的路由表项...

【专利技术属性】
技术研发人员:王晓喃严卫朱海霞
申请(专利权)人:常熟理工学院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1