专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种基于命名数据网络的大数据通信实现方法

一种基于命名数据网络的大数据通信实现方法

IPC分类号 : H04L12/751,H04L12/721,H04L12/727,H04L12/24,H04L29/08

申请号
CN201811075181.9
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2018-09-14
  • 公开号: CN109167728B
  • 公开日: 2019-01-08
  • 主分类号: H04L12/751
  • 专利权人: 常熟理工学院

专利摘要

本发明提供了一种基于命名数据网络的大数据通信实现方法,所述网络由一个控制器,两个以上的路由器和两个以上的节点构成;控制器和每个路由器的坐标具有唯一性,控制器和路由器由自己的坐标唯一标识;在本发明中,节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

权利要求

1.一种基于命名数据网络的大数据通信实现方法,其特征在于,所述网络由一个控制器,两个以上的路由器和两个以上的节点构成;控制器和每个路由器的坐标具有唯一性,控制器和路由器由自己的坐标唯一标识;

一种类型的数据由一个名称唯一标识并由N个数据分片构成,N为大于1的正整数,每个数据分片由分片ID n'唯一标识,n'=1...N;

一个控制器配置两个以上的有线接口,每个有线接口与一个路由器连接;一个路由器配置两个以上的上游有线接口、两个以上的下游有线接口以及两个以上的下游无线接口,每个上游有线接口与一个控制器或者路由器相连,一个路由器的下游有线接口与一个路由器或者节点相连,一个路由器的下游无线接口与节点相连;一个节点配置一个有线接口或者一个无线接口,该接口与路由器的下游接口相连,该路由器称为该节点的关联路由器;

每个有线接口或者无线接口由一个接口ID唯一标识,接口ID预先配置,接口ID为正整数;接口ID为i的接口记为为接口i,i为正整数;

一个消息由名称、消息类型、分片ID集合、接口ID集合和负载构成;

消息类型名称包括路由器发布消息、控制器发布消息、节点发布消息、删除消息、路径消息、确认消息、查询消息以及数据消息,消息类型值分别为:1、2、3、4、5、6、7和8;控制器和每个路由器保存一个路由器表,一个路由器表项包含坐标域,接口ID集合域和生命周期域;

一个路由器R定期执行下述操作以维护路由器表:

步骤101:开始;

步骤102:路由器R从每个上游接口发送一个路由器发布消息,该路由器发布消息的名称域为空,消息类型值为1,分片ID集合和接口ID集合均为空,负载为路由器R的坐标;

步骤103:判断是控制器从接口f1还是路由器从上游接口u1接收到该路由器发布消息,如果是控制器从接口f1则执行步骤112,否则执行步骤104;

步骤104:路由器将u1加入到该路由器发布消息的接口ID集合中并作为最后一个元素,然后查看路由器表;如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标值,且接口ID集合中的元素个数小于该路由器发布消息的接口ID集合中的元素个数,则执行步骤120,否则执行步骤105;

步骤105:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果存在一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,则执行步骤106,否则执行步骤107;

步骤106:从上游接口u1接收到路由器发布消息的路由器选择一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,将该路由器表项的生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤107:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数等于该路由器发布消息的接口ID集合中的元素个数,则执行步骤108,否则执行步骤109;

步骤108:从上游接口u1接收到路由器发布消息的路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤109:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果至少存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数,则执行步骤110,否则执行步骤111;

步骤110:从上游接口u1接收到路由器发布消息的路由器查看路由器表,选择所有符合条件1的路由器表项,删除选中的路由器表项,该路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

条件1:该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数;

步骤111:从上游接口u1接收到路由器发布消息的路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤112:控制器从接口f1接收到路由器发布消息后,将f1加入到该路由器发布消息的接口ID集合中并作为最后一个元素,然后查看路由器表,如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标值,且接口ID集合中的元素个数小于该路由器发布消息的接口ID集合中的元素个数,则执行步骤120,否则执行步骤113;

步骤113:从接口f1接收到路由器发布消息的控制器查看路由器表,如果存在一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,则执行步骤114,否则执行步骤115;

步骤114:从接口f1接收到路由器发布消息的控制器选择一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,将该路由器表项的生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤115:从接口f1接收到路由器发布消息的控制器查看路由器表;如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数等于该路由器发布消息的接口ID集合中的元素个数,则执行步骤116,否则执行步骤117;

步骤116:从接口f1接收到路由器发布消息的控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤117:从接口f1接收到路由器发布消息的控制器查看路由器表;如果至少存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数,则执行步骤118,否则执行步骤119;

步骤118:从接口f1接收到路由器发布消息的控制器查看路由器表;选择所有符合条件1的路由器表项,删除选中的路由器表项;该控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤119:从接口f1接收到路由器发布消息的控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤120:结束;

如果路由器或者控制器检测到一个路由器表项的生命周期衰减为0,则删除该路由器表项。

2.根据权利要求1所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,一个路由器维护一个控制器表,每个控制器表项包含接口ID集合域以及生命周期域,控制器定期执行下述操作维护控制器表:

步骤201:开始;

步骤202:控制器从每个接口发送一个控制器发布消息,该控制器发布消息的名称域为空,消息类型值为2,分片ID集合和接口ID集合均为空,负载为空;

步骤203:路由器从上游接口u2接收到控制器发布消息后,将上游接口u2加入到该控制器发布消息的接口ID集合中并作为最后一个元素,然后查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合中的元素个数小于该控制器发布消息的接口ID集合中的元素个数,则执行步骤211,否则执行步骤204;

步骤204:从上游接口u2接收到控制器发布消息的路由器查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,则执行步骤205,否则执行步骤206;

步骤205:从上游接口u2接收到控制器发布消息的路由器选择一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将该控制器表项的生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤206:从上游接口u2接收到控制器发布消息的路由器查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合的元素个数等于该控制器发布消息的接口ID集合中的元素个数,则执行步骤207,否则执行步骤208;

步骤207:从上游接口u2接收到控制器发布消息的路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤208:从上游接口u2接收到控制器发布消息的路由器查看控制器表,如果至少存在一个控制器表项,该控制器表项的接口ID集合的元素个数大于该控制器发布消息的接口ID集合中的元素个数,则执行步骤209,否则执行步骤210;

步骤209:从上游接口u2接收到控制器发布消息的路由器查看控制器表,选择所有符合条件2的控制器表项,删除选中的控制器表项,该路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

条件2:该控制器表项接口ID集合的元素个数大于该控制器发布消息的接口ID集合中的元素个数;

步骤210:从上游接口u2接收到控制器发布消息的路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤211:结束;

如果路由器检测到一个控制器表项的生命周期衰减为0,则删除该控制器表项。

3.根据权利要求2所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,一个路由器或者控制器维护一个检索表,一个检索表项包含坐标域、名称域、分片ID集合域和生命周期域;一个路由器保存一个节点表,一个节点表项包含名称域、分片ID集合域、接口ID域和生命周期域;

在节点N1的关联路由器为路由器R1,数据C1由名称NA1唯一标识,数据C1由M1个数据分片构成,M1为大于1的正整数的条件下,如果节点N1产生或者获取了数据C1的数据分片,所述数据分片的分片ID集合为SS1,那么节点N1执行下述操作发布这些数据分片:

步骤301:开始;

步骤302:节点N1发送一个节点发布消息,该节点发布消息的名称为NA1,接口ID集合为空,分片ID集合为SS1,消息类型值为3,负载为空;

步骤303:路由器R1从下游接口x1接收到该节点发布消息后,查看节点表;如果存在一个节点表项,该节点表项的名称域值和分片ID集合分别等于该节点发布消息的名称域值和分片ID集合,且接口ID域值等于x1,路由器R1则将该节点表项的生命周期设置为最大值;否则,路由器R1创建一个节点表项,该节点表项的名称域值和分片ID集合分别等于该节点发布消息的名称域值和分片ID集合,接口ID域值等于x1,生命周期设置为最大值;

步骤304:结束。

4.根据权利要求3所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,路由器R1查看节点表,对于每个节点表项E1,路由器R1定期执行下述操作以维护检索表:

步骤401:开始;

步骤402:路由器R1查看控制器表,针对每个控制器表项,路由器R1执行下述操作:路由器R1构建一个节点发布消息,该节点发布消息的名称和分片ID集合分别等于节点表项E1的名称和分片ID集合,消息类型值为3,接口ID集合等于该控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择节点发布消息中的接口ID集合中最后一个元素所标识的接口,从节点发布消息中的接口ID集合中删除最后一个元素,从选中的接口发送该节点发布消息;

步骤403:判断是控制器还是路由器接接收到该节点发布消息,如果是控制器则执行步骤406,否则执行步骤404;

步骤404:路由器接收到该节点发布消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该路由器则将该检索表项的生命周期设置为最大值,否则,该路由器创建一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该路由器则将该检索表项的生命周期设置为最大值;

步骤405:接收到该节点发布消息的路由器选择该节点发布消息中的接口ID集合中最后一个元素所标识的接口,从该节点发布消息中的接口ID集合中删除最后一个元素,从选中的接口发送该节点发布消息,执行步骤403;

步骤406:控制器接收到该节点发布消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该控制器则将该检索表项的生命周期设置为最大值,否则,该控制器创建一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,生命周期设置为最大值;

步骤407:结束。

5.根据权利要求3所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,如果路由器R1检测到节点表项E2的生命周期衰减到0,则执行下述操作更新检索表:

步骤501:开始;

步骤502:路由器R1查看除了节点表项E2以外是否还存在一个节点表项,该节点表项的名称域值等于节点表项E2的名称域值,且分片ID集合等于节点表项E2的分片ID集合或者为节点表项E2的分片ID集合的超集,如果是,则执行步骤503,否则执行步骤504;

步骤503:路由器R1删除节点表项E2,执行步骤508;

步骤504:路由器R1查看控制器表,针对每个控制器表项,路由器R1执行下述操作:路由器R1构建一个删除消息,该删除消息的名称和分片ID集合分别等于节点表项E2的名称和分片ID集合,消息类型值为4,接口ID集合等于该控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择删除消息中的接口ID集合中最后一个元素所标识的接口,从删除消息中的接口ID集合中删除最后一个元素,从选中的接口发送该删除消息;

步骤505:判断是控制器还是路由器接收到该删除消息,如果是控制器则执行步骤507,否则执行步骤506;

步骤506:路由器接收到该删除消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该删除消息负载中的坐标,且名称与分片ID集合分别等于该删除消息的名称和分片ID集合,该路由器则删除该检索表项,该路由器选择该删除消息中的接口ID集合中最后一个元素所标识的接口,从该删除消息中的接口ID集合中删除最后一个元素,从选中的接口发送该删除消息;执行步骤505;

步骤507:控制器接收到该删除消息后查看检索表;如果存在一个检索表项,该检索表项的坐标等于该删除消息负载中的坐标,且名称与分片ID集合分别等于该删除消息的名称和分片ID集合,该控制器则删除该检索表项;

步骤508:结束。

6.根据权利要求3所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,在数据C2由名称NA2定义,数据C2由M2个数据分片构成,M2为正整数,数据C2的一些数据分片的分片ID集合为SS2的条件下,如果路由器R1的任何一个节点表项都不满足条件3,则执行下述操作获取符合条件4的检索表项:

条件3:节点表项的名称等于NA2,且分片ID集合等于分片ID集合SS2或者为分片ID集合SS2的超集;

条件4:检索表项的名称等于NA2,且分片ID集合等于分片ID集合SS2或者为分片ID集合SS2的超集;

步骤601:开始;

步骤602:路由器R1随机选取一个控制器表项,构建一个路径消息,该路径消息的名称域值为NA2,分片ID集合为SS2,消息类型值为5,接口ID集合为选中的控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择该路径消息中的接口ID集合中最后一个元素所标识的接口,从该路径消息中的接口ID集合中删除最后一个元素,从选中的接口发送该路径消息;

步骤603:判断是控制器还是路由器接收到该路径消息,如果是是控制器则执行步骤607,否则执行步骤604;

步骤604:路由器接收到该路径消息后查看检索表,如果至少存在一个检索表项,该检索表项的名称等于该路径消息中的名称,且分片ID集合等于该路径消息中的分片ID集合或者为该路径消息中的分片ID集合的超集,则执行步骤606,否则执行步骤605;

步骤605:接收到该路径消息的路由器选择该路径消息中的接口ID集合中最后一个元素所标识的接口,从该路径消息中的接口ID集合中删除最后一个元素,从选中的接口发送该路径消息,执行步骤603;

步骤606:接收到该路径消息的路由器选择所有符合条件5的检索表项,针对每个选中的检索表项,该路由器计算该检索表项的坐标域值与该路径消息负载中的坐标之间的距离,选择距离值最小的检索表项,如果存在两个以上的距离值最小的检索表项,该路由器则随机选取一个距离值最小的检索表项;该路由器查看路由器表,选择一个路由器表项,该路由器表项的坐标等于该路径消息负载中的坐标,构建一个确认消息,该确认消息的名称和分片ID集合分别等于该路径消息的名称和分片ID集合,消息类型值为6,接口ID集合等于选中的路由器表项的接口ID集合,负载等于选中的检索表项;该路由器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息,执行步骤608;

条件5:该检索表项的名称等于该路径消息中的名称,且分片ID集合等于该路径消息中的分片ID集合或者为该路径消息中的分片ID集合的超集;

步骤607:接收到该路径消息的控制器选择所有符合条件5的检索表项,针对每个选中的检索表项,该控制器计算该检索表项的坐标域值与该路径消息负载中的坐标之间的距离,选择距离值最小的检索表项,如果存在两个以上的距离值最小的检索表项,该控制器则随机选取一个距离值最小的检索表项;该控制器查看路由器表,选择一个路由器表项,该路由器表项的坐标等于该路径消息负载中的坐标,构建一个确认消息,该确认消息的名称和分片ID集合分别等于该路径消息的名称和分片ID集合,消息类型值为6,接口ID集合等于选中的路由器表项的接口ID集合,负载等于选中的检索表项;该控制器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息;

步骤608:如果路由器R1接收到该确认消息,则执行步骤610,否则执行步骤609;

步骤609:接收到该确认消息的路由器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息,执行步骤608;

步骤610:路由器R1接收到确认消息后,保存确认消息负载中的检索表项;

步骤611:结束。

7.根据权利要求6所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,每个路由器或者控制器维护一个查询表,一个查询表项由名称域、分片ID集合域、接口ID集合域构成;每个节点保存一个分片表,一个分片表项包含名称域、分片ID域和分片域;节点N2的关联路由器为路由器R1,需要获取数据C1的一些数据分片,数据C1由名称NA1标识,这些数据分片的分片ID集合为SS1,如果路由器R1至少存在一个节点表项,该节点表项的名称域值为NA1,且分片ID集合等于分片ID集合SS1或者分片ID集合SS1的超集,节点N2则执行下述操作获取由分片ID集合SS1定义的数据C1的数据分片:

步骤701:开始;

步骤702:节点N2发送一个查询消息,该查询消息的名称为NA1,分片ID集合为SS1,消息类型值为7,接口ID集合为空,负载为空;

步骤703:路由器R1从下游接口z1接收到该查询消息后查看查询表,如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合包含z1,则执行步骤710,否则执行步骤704;

步骤704:路由器R1查看查询表,如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,则执行步骤705,否则执行步骤706;

步骤705:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1},执行步骤710;

步骤706:路由器R1查看查询表,如果存在一个查询表项,该查询表项的名称域等于该查询消息的名称域,且分片ID集合域为该查询表项的分片ID集合域的超集,则执行步骤707,否则执行步骤708;

步骤707:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1},执行步骤710;

步骤708:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1};路由器R1查看节点表,选择一个节点表项,该节点表项的名称域值等于该查询消息的名称域值,分片ID集合等于该查询消息的分片ID集合或者该查询消息的分片ID集合的超集,从该节点表项的接口ID域值所标识的接口发送该查询消息;

步骤709:节点接收到该查询消息后,对于该查询消息分片ID集合中的每个元素创建一个二元组<分片ID,分片>,其中分片ID等于该元素,分片等于该元素所标识的分片;该节点发送一个数据消息,该数据消息的名称和分片ID集合分别等于该查询消息的名称和分片ID集合,消息类型值为7,接口ID集合为空,负载为所创建的所有二元组;

步骤710:路由器R1接收到数据消息后,选择所有满足条件6的查询表项,针对每个选择的查询表项E3,路由器R1执行下述操作:路由器R1查看查询表项E3中的分片ID集合,针对该分片ID集合中的每个分片ID,路由器R1从该数据消息负载中选择一个二元组,该二元组的分片ID等于该分片ID集合中的分片ID;路由器R1构建一个数据消息,该数据消息的名称和分片ID集合分别等于查询表项E3的名称域值和分片ID集合域值,消息类型值为7,接口ID集合等于查询表项E3的接口ID集合,负载为所有选取的二元组;路由器R1选择该数据消息中的接口ID集合中最后一个元素所标识的接口,从该数据消息中的接口ID集合中删除最后一个元素,从选中的接口发送该数据消息;路由器R1删除查询表项E3;

条件6:该查询表项的名称等于该数据消息的名称,且分片ID集合等于该数据消息的分片ID集合或者该数据消息的分片ID集合的子集;

步骤711:节点N2接收到数据消息后,针对数据消息负载中的每个二元组创建一个分片表项,该分片表项的名称为该数据消息的名称域值,分片ID和分片域值分别等于该二元组的分片ID和分片域值;

步骤712:节点N2执行步骤301~304创建节点表项;

步骤713:结束。

8.根据权利要求7所述的一种基于命名数据网络的大数据通信实现方法,其特征在于,节点N2的关联路由器为路由器R1,需要获取数据C2的一些数据分片,数据C2由名称NA2标识,这些数据分片的分片ID集合为SS2;如果路由器R1的任何一个节点表项都不满足条件7,节点N2则执行下述操作获取由分片ID集合SS2定义的数据C2的数据分片:

条件7:该节点表项的名称域值为NA2,且分片ID集合等于分片ID集合SS2或者分片ID集合SS2的超集;

步骤801:开始;

步骤802:节点N2发送一个查询消息,该查询消息的名称为NA2,分片ID集合为SS2,消息类型值为7,接口ID集合为空,负载为空;

步骤803:路由器R1从下游接口y1接收到该查询消息后查看查询表;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合包含y1,则执行步骤815,否则执行步骤804;

步骤804:路由器R1查看查询表;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,则执行步骤805,否则执行步骤806;

步骤805:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1},执行步骤815;

步骤806:路由器R1查看查询表;如果存在一个查询表项,该查询表项的名称域等于该查询消息的名称域,且分片ID集合域为该查询表项的分片ID集合域的超集,则执行步骤807,否则执行步骤808;

步骤807:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1},执行步骤815;

步骤808:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1};路由器R1执行步骤601~611获取检索表项E5,检索表项E5的名称域值为NA2,且分片ID集合等于分片ID集合SS2或者分片ID集合SS2的超集;路由器R1查看路由器表,选择一个路由器表项,该路由器表项的坐标等于检索表项E5的坐标,将查询消息的接口ID集合更新为该路由器表项的接口ID集合,将接口ID集合变量P1加入到查询消息的负载中,接口ID集合变量P1的初始值为{y1};路由器R1选择该查询消息中的接口ID集合中最后一个元素所标识的接口,从该查询消息中的接口ID集合中删除最后一个元素,从选中的接口发送该查询消息;

步骤809:路由器从接口y2接收到该查询消息,将接口y2加入到该查询消息负载中接口ID集合变量P1中并作为最后一个元素;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合等于该查询消息负载中的变量P1,则执行步骤815,否则执行步骤810;

步骤810:从接口y2接收到该查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,且分片ID集合域值等于该查询消息的分片ID集合域或者为该查询消息的分片ID集合的超集,则执行步骤811,否则执行步骤812;

步骤811:从接口y2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合等于该查询消息负载中的变量P1,执行步骤815;

步骤812:从接口y2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合等于该查询消息负载中的变量P1;该路由器查看该查询消息中的接口ID集合是否为空,如果是,则执行步骤814,否则执行步骤813;

步骤813:从接口y2接收到该查询消息的路由器选择该查询消息中的接口ID集合中最后一个元素所标识的接口,从该查询消息中的接口ID集合中删除最后一个元素,从选中的接口发送该查询消息,执行步骤809;

步骤814:路由器接收到该查询消息后,查看节点表,选择一个节点表项,该节点表项的名称域值等于该查询消息的名称域值,分片ID集合等于该查询消息的分片ID集合或者该查询消息的分片ID集合的超集,从该节点表项的接口ID域值所标识的接口发送该查询消息;节点接收到该查询消息后,对于该查询消息分片ID集合中的每个元素创建一个二元组<分片ID,分片>,其中分片ID等于该元素,分片等于该元素所标识的分片;该节点发送一个数据消息,该数据消息的名称和分片ID集合分别等于该查询消息的名称和分片ID集合,消息类型值为7,接口ID集合为空,负载为所创建的所有二元组;

步骤815:如果节点接收到该数据消息,则执行步骤817,否则执行步骤816;

步骤816:路由器接收到数据消息后,选择所有满足条件6的查询表项;针对每个选择的查询表项E6,该路由器执行下述操作:该路由器查看查询表项E6中的分片ID集合,针对该分片ID集合中的每个分片ID,该路由器从该数据消息负载中选择一个二元组,该二元组的分片ID等于该分片ID集合中的分片ID;该路由器构建一个数据消息,该数据消息的名称和分片ID集合分别等于查询表项E6的名称域值和分片ID集合域值,消息类型值为7,接口ID集合等于查询表项E6的接口ID集合,负载为所有选取的二元组;该路由器选择该数据消息中的接口ID集合中最后一个元素所标识的接口,从该数据消息中的接口ID集合中删除最后一个元素,从选中的接口发送该数据消息;该路由器删除查询表项E6;执行步骤815;

步骤817:节点N2接收到数据消息后,针对数据消息负载中的每个二元组创建一个分片表项,该分片表项的名称为该数据消息的名称域值,分片ID和分片域值分别等于该二元组的分片ID和分片域值;

步骤818:节点N2执行步骤301~304创建节点表项;

步骤819:结束。

说明书

技术领域

本发明涉及一种实现方法,尤其涉及的是一种基于命名数据网络的大数据通信实现方法。

背景技术

命名数据网络中的节点之间通信通过中间节点的转发和路由来实现,因此,实现命名数据网络需要解决的关键技术之一就是降低数据传输延迟,以便使用户能够快速获取网络服务。随着命名数据网络技术的发展,命名数据网络会成为未来网络提供服务的一种模式。

目前,命名数据网络的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低命名数据网络提供服务的延迟和代价成为近年来研究的热点问题。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于命名数据网络的大数据通信实现方法。

技术方案:本发明公开了一种基于命名数据网络的大数据通信实现方法,所述网络由一个控制器,两个以上的路由器和两个以上的节点构成;控制器和每个路由器的坐标具有唯一性,控制器和路由器由自己的坐标唯一标识;

一种类型的数据由一个名称唯一标识并由N个数据分片构成,N为大于1的正整数,每个数据分片由分片ID n'唯一标识,n'=1...N;例如:数据可以是一部电视剧,由30集构成,每集电视剧即为一个数据分片;

一个控制器配置两个以上的有线接口,每个有线接口与一个路由器连接;一个路由器配置两个以上的上游有线接口、两个以上的下游有线接口以及两个以上的下游无线接口,每个上游有线接口与一个控制器或者路由器相连,一个路由器的下游有线接口与一个路由器或者节点相连,一个路由器的下游无线接口与节点相连;一个节点配置一个有线接口或者一个无线接口,该接口与路由器的下游接口相连,该路由器称为该节点的关联路由器;

每个有线接口或者无线接口由一个接口ID唯一标识,接口ID预先配置,接口ID为正整数,例如1;接口ID为i的接口记为为接口i,i为正整数;

一个消息由名称、消息类型、分片ID集合、接口ID集合和负载构成;

消息类型值如下所示:

控制器和每个路由器保存一个路由器表,一个路由器表项包含坐标域,接口ID集合域和生命周期域;

一个路由器R定期执行下述操作以维护路由器表:

步骤101:开始;

步骤102:路由器R从每个上游接口发送一个路由器发布消息,该路由器发布消息的名称域为空,消息类型值为1,分片ID集合和接口ID集合均为空,负载为路由器R的坐标;

步骤103:判断是控制器从接口f1还是路由器从上游接口u1接收到该路由器发布消息,如果是控制器从接口f1则执行步骤112,否则执行步骤104;

步骤104:路由器将u1加入到该路由器发布消息的接口ID集合中并作为最后一个元素,然后查看路由器表;如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标值,且接口ID集合中的元素个数小于该路由器发布消息的接口ID集合中的元素个数,则执行步骤120,否则执行步骤105;

步骤105:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果存在一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,则执行步骤106,否则执行步骤107;

步骤106:从上游接口u1接收到路由器发布消息的路由器选择一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,将该路由器表项的生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤107:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数等于该路由器发布消息的接口ID集合中的元素个数,则执行步骤108,否则执行步骤109;

步骤108:从上游接口u1接收到路由器发布消息的路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,生命周期设置为最大值,例如500ms,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤109:从上游接口u1接收到路由器发布消息的路由器查看路由器表,如果至少存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数,则执行步骤110,否则执行步骤111;

步骤110:从上游接口u1接收到路由器发布消息的路由器查看路由器表,选择所有符合条件1的路由器表项,删除选中的路由器表项,该路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

条件1:该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数;

步骤111:从上游接口u1接收到路由器发布消息的路由器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u1以外的每个上游接口转发该路由器发布消息,执行步骤103;

步骤112:控制器从接口f1接收到路由器发布消息后,将f1加入到该路由器发布消息的接口ID集合中并作为最后一个元素,然后查看路由器表,如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标值,且接口ID集合中的元素个数小于该路由器发布消息的接口ID集合中的元素个数,则执行步骤120,否则执行步骤113;

步骤113:从接口f1接收到路由器发布消息的控制器查看路由器表,如果存在一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,则执行步骤114,否则执行步骤115;

步骤114:从接口f1接收到路由器发布消息的控制器选择一个路由器表项,该路由器表项的接口ID集合等于该路由器发布消息的接口ID集合,将该路由器表项的生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤115:从接口f1接收到路由器发布消息的控制器查看路由器表;如果存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数等于该路由器发布消息的接口ID集合中的元素个数,则执行步骤116,否则执行步骤117;

步骤116:从接口f1接收到路由器发布消息的控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤117:从接口f1接收到路由器发布消息的控制器查看路由器表;如果至少存在一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,且接口ID集合的元素个数大于该路由器发布消息的接口ID集合中的元素个数,则执行步骤118,否则执行步骤119;

步骤118:从接口f1接收到路由器发布消息的控制器查看路由器表;选择所有符合条件1的路由器表项,删除选中的路由器表项;该控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤119:从接口f1接收到路由器发布消息的控制器创建一个路由器表项,该路由器表项的坐标域值等于该路由器发布消息负载中的坐标,接口ID集合等于该路由器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口f1以外的每个接口转发该路由器发布消息,执行步骤103;

步骤120:结束;

如果路由器或者控制器检测到一个路由器表项的生命周期衰减为0,则删除该路由器表项。

路由器通过上述过程建立路由器表从而建立到达其他路由器的最优路由路径,上述过程通过接口ID集合直接建立达到目的路由器的路径,中间路由器无需进行处理,因此大幅度降低了路由代价和延迟。

本发明所述方法中,一个路由器维护一个控制器表,每个控制器表项包含接口ID集合域以及生命周期域,控制器定期执行下述操作维护控制器表:

步骤201:开始;

步骤202:控制器从每个接口发送一个控制器发布消息,该控制器发布消息的名称域为空,消息类型值为2,分片ID集合和接口ID集合均为空,负载为空;

步骤203:路由器从上游接口u2接收到控制器发布消息后,将上游接口u2加入到该控制器发布消息的接口ID集合中并作为最后一个元素,然后查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合中的元素个数小于该控制器发布消息的接口ID集合中的元素个数,则执行步骤211,否则执行步骤204;

步骤204:从上游接口u2接收到路由器发布消息的路由器查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,则执行步骤205,否则执行步骤206;

步骤205:从上游接口u2接收到控制器发布消息的控制器选择一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将该控制器表项的生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤206:从上游接口u2接收到控制器发布消息的路由器查看控制器表,如果存在一个控制器表项,该控制器表项的接口ID集合的元素个数等于该控制器发布消息的接口ID集合中的元素个数,则执行步骤207,否则执行步骤208;

步骤207:从上游接口u2接收到控制器发布消息的路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,生命周期设置为最大值,例如500ms,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤208:从上游接口u2接收到控制器发布消息的路由器查看控制器表,如果至少存在一个控制器表项,该控制器表项的接口ID集合的元素个数大于该控制器发布消息的接口ID集合中的元素个数,则执行步骤209,否则执行步骤210;

步骤209:从上游接口u2接收到控制器发布消息的路由器查看控制器表,选择所有符合条件2的控制器表项,删除选中的控制器表项,该路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

条件2:该控制器表项接口ID集合的元素个数大于该控制器发布消息的接口ID集合中的元素个数;

步骤210:从上游接口u2接收到控制器发布消息的路由器创建一个控制器表项,该控制器表项的接口ID集合等于该控制器发布消息的接口ID集合,将生命周期设置为最大值,从除了接口u2以外的每个上游接口转发该控制器发布消息,执行步骤203;

步骤211:结束;

如果路由器检测到一个控制器表项的生命周期衰减为0,则删除该控制器表项。

控制器通过上述过程建立控制器表从而建立到达其他路由器的最优路由路径,上述过程通过接口ID集合直接建立达到目的路由器的路径,中间路由器无需进行处理,因此大幅度降低了路由代价和延迟。

本发明所述方法中,一个路由器或者控制器维护一个检索表,一个检索表项包含坐标域、名称域、分片ID集合域和生命周期域;一个路由器保存一个节点表,一个节点表项包含名称域、分片ID集合域、接口ID域和生命周期域;

在节点N1的关联路由器为路由器R1,数据C1由名称NA1唯一标识,数据C1由M1个数据分片构成,M1为大于1的正整数的条件下,如果节点N1产生或者获取了数据C1的数据分片,所述数据分片的分片ID集合为SS1,那么节点N1执行下述操作发布这些数据分片:

步骤301:开始;

步骤302:节点N1发送一个节点发布消息,该节点发布消息的名称为NA1,接口ID集合为空,分片ID集合为SS1,消息类型值为3,负载为空;

步骤303:路由器R1从下游接口x1接收到该节点发布消息后,查看节点表;如果存在一个节点表项,该节点表项的名称域值和分片ID集合分别等于该节点发布消息的名称域值和分片ID集合,且接口ID域值等于x1,路由器R1则将该节点表项的生命周期设置为最大值;否则,路由器R1创建一个节点表项,该节点表项的名称域值和分片ID集合分别等于该节点发布消息的名称域值和分片ID集合,接口ID域值等于x1,生命周期设置为最大值;

步骤304:结束。

节点通过上述过程建立节点表,这样通过节点表的名称和分片ID集合能够从获取每个节点所能提供的数据分片,同时通过接口ID能够实现消息的正确转发,从而确保数据通信的正确性并降低数据通信代价和延迟。

本发明所述方法中,路由器R1查看节点表,对于每个节点表项E1,路由器R1定期执行下述操作以维护检索表:

步骤401:开始;

步骤402:路由器R1查看控制器表,针对每个控制器表项,路由器R1执行下述操作:路由器R1构建一个节点发布消息,该节点发布消息的名称和分片ID集合分别等于节点表项E1的名称和分片ID集合,消息类型值为3,接口ID集合等于该控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择节点发布消息中的接口ID集合中最后一个元素所标识的接口,从节点发布消息中的接口ID集合中删除最后一个元素,从选中的接口发送该节点发布消息;

步骤403:判断是控制器还是路由器接接收到该节点发布消息,如果是控制器则执行步骤406,否则执行步骤404;

步骤404:路由器接收到该节点发布消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该路由器则将该检索表项的生命周期设置为最大值,例如1s;否则,该路由器创建一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该路由器则将该检索表项的生命周期设置为最大值;

步骤405:接收到该节点发布消息的路由器选择该节点发布消息中的接口ID集合中最后一个元素所标识的接口,从该节点发布消息中的接口ID集合中删除最后一个元素,从选中的接口发送该节点发布消息,执行步骤403;

步骤406:控制器接收到该节点发布消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,该控制器则将该检索表项的生命周期设置为最大值,例如1s;否则,该控制器创建一个检索表项,该检索表项的坐标等于该节点发布消息负载中的坐标,且名称与分片ID集合分别等于该节点发布消息的名称和分片ID集合,生命周期设置为最大值;

步骤407:结束。

路由器通过上述过程建立检索表从而获取每个节点所能提供的数据分片,并根据接口ID实现消息的正确转发,从而确保数据通信的正确性并降低数据通信代价和延迟。

本发明所述方法中,如果路由器R1检测到节点表项E2的生命周期衰减到0,则执行下述操作更新检索表:

步骤501:开始;

步骤502:路由器R1查看除了节点表项E2以外是否还存在一个节点表项,该节点表项的名称域值等于节点表项E2的名称域值,且分片ID集合等于节点表项E2的分片ID集合或者为节点表项E2的分片ID集合的超集,如果是,则执行步骤503,否则执行步骤504;

步骤503:路由器R1删除节点表项E2,执行步骤508;

步骤504:路由器R1查看控制器表,针对每个控制器表项,路由器R1执行下述操作:路由器R1构建一个删除消息,该删除消息的名称和分片ID集合分别等于节点表项E2的名称和分片ID集合,消息类型值为4,接口ID集合等于该控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择删除消息中的接口ID集合中最后一个元素所标识的接口,从删除消息中的接口ID集合中删除最后一个元素,从选中的接口发送该删除消息;

步骤505:判断是控制器还是路由器接收到该删除消息,如果是控制器则执行步骤507,否则执行步骤506;

步骤506:路由器接收到该删除消息后查看检索表,如果存在一个检索表项,该检索表项的坐标等于该删除消息负载中的坐标,且名称与分片ID集合分别等于该删除消息的名称和分片ID集合,该路由器则删除该检索表项,该路由器选择该删除消息中的接口ID集合中最后一个元素所标识的接口,从该删除消息中的接口ID集合中删除最后一个元素,从选中的接口发送该删除消息;执行步骤505;

步骤507:控制器接收到该删除消息后查看检索表;如果存在一个检索表项,该检索表项的坐标等于该删除消息负载中的坐标,且名称与分片ID集合分别等于该删除消息的名称和分片ID集合,该控制器则删除该检索表项;

步骤508:结束。

路由器通过上述过程更新检索表从而确保检索表信息的正确性和实时性,这样根据每个节点所能提供的数据分片以及接口ID实现消息的正确转发,从而确保数据通信的正确性并降低数据通信代价和延迟。

本发明所述方法中,在数据C2由名称NA2定义,数据C2由M2个数据分片构成,M2为正整数,数据C2的一些数据分片的分片ID集合为SS2的条件下,如果路由器R1的任何一个节点表项都不满足条件3,则执行下述操作获取符合条件4的检索表项:

条件3:节点表项的名称等于NA2,且分片ID集合等于分片ID集合SS2或者为分片ID集合SS2的超集;

条件4:检索表项的名称等于NA2,且分片ID集合等于分片ID集合SS2或者为分片ID集合SS2的超集;

步骤601:开始;

步骤602:路由器R1随机选取一个控制器表项,构建一个路径消息,该路径消息的名称域值为NA2,分片ID集合为SS2,消息类型值为5,接口ID集合为选中的控制器表项的接口ID集合,负载为路由器R1的坐标;路由器R1选择该路径消息中的接口ID集合中最后一个元素所标识的接口,从该路径消息中的接口ID集合中删除最后一个元素,从选中的接口发送该路径消息;

步骤603:判断是控制器还是路由器接收到该路径消息,如果是是控制器则执行步骤607,否则执行步骤604;

步骤604:路由器接收到该路径消息后查看检索表,如果至少存在一个检索表项,该检索表项的名称等于该路径消息中的名称,且分片ID集合等于该路径消息中的分片ID集合或者为该路径消息中的分片ID集合的超集,则执行步骤606,否则执行步骤605;

步骤605:接收到该路径消息的路由器选择该路径消息中的接口ID集合中最后一个元素所标识的接口,从该路径消息中的接口ID集合中删除最后一个元素,从选中的接口发送该路径消息,执行步骤603;

步骤606:接收到该路径消息的路由器选择所有符合条件5的检索表项,针对每个选中的检索表项,该路由器计算该检索表项的坐标域值与该路径消息负载中的坐标之间的距离,选择距离值最小的检索表项,如果存在两个以上的距离值最小的检索表项,该路由器则随机选取一个距离值最小的检索表项;该路由器查看路由器表,选择一个路由器表项,该路由器表项的坐标等于该路径消息负载中的坐标,构建一个确认消息,该确认消息的名称和分片ID集合分别等于该路径消息的名称和分片ID集合,消息类型值为6,接口ID集合等于选中的路由器表项的接口ID集合,负载等于选中的检索表项;该路由器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息,执行步骤608;

条件5:该检索表项的名称等于该路径消息中的名称,且分片ID集合等于该路径消息中的分片ID集合或者为该路径消息中的分片ID集合的超集;

步骤607:接收到该路径消息的控制器选择所有符合条件5的检索表项,针对每个选中的检索表项,该控制器计算该检索表项的坐标域值与该路径消息负载中的坐标之间的距离,选择距离值最小的检索表项,如果存在两个以上的距离值最小的检索表项,该控制器则随机选取一个距离值最小的检索表项;该控制器查看路由器表,选择一个路由器表项,该路由器表项的坐标等于该路径消息负载中的坐标,构建一个确认消息,该确认消息的名称和分片ID集合分别等于该路径消息的名称和分片ID集合,消息类型值为6,接口ID集合等于选中的路由器表项的接口ID集合,负载等于选中的检索表项;该控制器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息;

步骤608:如果路由器R1接收到该确认消息,则执行步骤610,否则执行步骤609;

步骤609:接收到该确认消息的路由器选择该确认消息中的接口ID集合中最后一个元素所标识的接口,从该确认消息中的接口ID集合中删除最后一个元素,从选中的接口发送该确认消息,执行步骤608;

步骤610:路由器R1接收到确认消息后,保存确认消息负载中的检索表项;

步骤611:结束。

路由器通过上述过程获取符合条件的检索表并根据这些检索表项从节点获取所需数据从而确保数据通信的正确性和实时性,并降低数据通信代价和延迟。

本发明所述方法中,每个路由器或者控制器维护一个查询表,一个查询表项由名称域、分片ID集合域、接口ID集合域构成;每个节点保存一个分片表,一个分片表项包含名称域、分片ID域和分片域;节点N2的关联路由器为路由器R1,需要获取数据C1的一些数据分片,数据C1由名称NA1标识,这些数据分片的分片ID集合为SS1,如果路由器R1至少存在一个节点表项,该节点表项的名称域值为NA1,且分片ID集合等于分片ID集合SS1或者分片ID集合SS1的超集,节点N2则执行下述操作获取由分片ID集合SS1定义的数据C1的数据分片:

步骤701:开始;

步骤702:节点N2发送一个查询消息,该查询消息的名称为NA1,分片ID集合为SS1,消息类型值为7,接口ID集合为空,负载为空;

步骤703:路由器R1从下游接口z1接收到该查询消息后查看查询表,如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合包含z1,则执行步骤710,否则执行步骤704;

步骤704:路由器R1查看查询表,如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,则执行步骤705,否则执行步骤706;

步骤705:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1},执行步骤710;

步骤706:路由器R1查看查询表,如果存在一个查询表项,该查询表项的名称域等于该查询消息的名称域,且分片ID集合域为该查询表项的分片ID集合域的超集,则执行步骤707,否则执行步骤708;

步骤707:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1},执行步骤710;

步骤708:从下游接口z1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{z1};路由器R1查看节点表,选择一个节点表项,该节点表项的名称域值等于该查询消息的名称域值,分片ID集合等于该查询消息的分片ID集合或者该查询消息的分片ID集合的超集,从该节点表项的接口ID域值所标识的接口发送该查询消息;

步骤709:节点接收到该查询消息后,对于该查询消息分片ID集合中的每个元素创建一个二元组<分片ID,分片>,其中分片ID等于该元素,分片等于该元素所标识的分片;该节点发送一个数据消息,该数据消息的名称和分片ID集合分别等于该查询消息的名称和分片ID集合,消息类型值为7,接口ID集合为空,负载为所创建的所有二元组;

步骤710:路由器R1接收到数据消息后,选择所有满足条件6的查询表项,针对每个选择的查询表项E3,路由器R1执行下述操作:路由器R1查看查询表项E3中的分片ID集合,针对该分片ID集合中的每个分片ID,路由器R1从该数据消息负载中选择一个二元组,该二元组的分片ID等于该分片ID集合中的分片ID;路由器R1构建一个数据消息,该数据消息的名称和分片ID集合分别等于查询表项E3的名称域值和分片ID集合域值,消息类型值为7,接口ID集合等于查询表项E3的接口ID集合,负载为所有选取的二元组;路由器R1选择该数据消息中的接口ID集合中最后一个元素所标识的接口,从该数据消息中的接口ID集合中删除最后一个元素,从选中的接口发送该数据消息;路由器R1删除查询表项E3;

条件6:该查询表项的名称等于该数据消息的名称,且分片ID集合等于该数据消息的分片ID集合或者该数据消息的分片ID集合的子集;

步骤711:节点N2接收到数据消息后,针对数据消息负载中的每个二元组创建一个分片表项,该分片表项的名称为该数据消息的名称域值,分片ID和分片域值分别等于该二元组的分片ID和分片域值;

步骤712:节点N2执行步骤301~304创建节点表项;

步骤713:结束。

节点通过上述过程从本地获取所需数据分片并实现数据通信的正确性和实时性,由于上述过程通过分片表和查询表实现数据通信,因此大幅度降低了数据通信代价和延迟。

本发明所述方法中,节点N2的关联路由器为路由器R1,需要获取数据C2的一些数据分片,数据C2由名称NA2标识,这些数据分片的分片ID集合为SS2;如果路由器R1的任何一个节点表项都不满足条件7,节点N2则执行下述操作获取由分片ID集合SS2定义的数据C2的数据分片:

条件7:该节点表项的名称域值为NA2,且分片ID集合等于分片ID集合SS2或者分片ID集合SS2的超集;

步骤801:开始;

步骤802:节点N2发送一个查询消息,该查询消息的名称为NA2,分片ID集合为SS2,消息类型值为7,接口ID集合为空,负载为空;

步骤803:路由器R1从下游接口y1接收到该查询消息后查看查询表;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合包含y1,则执行步骤815,否则执行步骤804;

步骤804:路由器R1查看查询表;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,则执行步骤805,否则执行步骤806;

步骤805:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1},执行步骤815;

步骤806:路由器R1查看查询表;如果存在一个查询表项,该查询表项的名称域等于该查询消息的名称域,且分片ID集合域为该查询表项的分片ID集合域的超集,则执行步骤807,否则执行步骤808;

步骤807:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1},执行步骤815;

步骤808:从下游接口y1接收到该查询消息的路由器R1创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合为{y1};路由器R1执行步骤601~611获取检索表项E5,检索表项E5的名称域值为NA2,且分片ID集合等于分片ID集合SS2或者分片ID集合SS2的超集;路由器R1查看路由器表,选择一个路由器表项,该路由器表项的坐标等于检索表项E5的坐标,将查询消息的接口ID集合更新为该路由器表项的接口ID集合,将接口ID集合变量P1加入到查询消息的负载中,接口ID集合变量P1的初始值为{y1};路由器R1选择该查询消息中的接口ID集合中最后一个元素所标识的接口,从该查询消息中的接口ID集合中删除最后一个元素,从选中的接口发送该查询消息;

步骤809:路由器从接口y2接收到该查询消息,将接口y2加入到该查询消息负载中分片ID集合变量P1中并作为最后一个元素;如果存在一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,且接口ID集合等于该查询消息负载中的变量P1,则执行步骤815,否则执行步骤810;

步骤810:从接口y2接收到该查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,且分片ID集合域值等于该查询消息的分片ID集合域或者为该查询消息的分片ID集合的超集,则执行步骤811,否则执行步骤812;

步骤811:从接口y2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合等于该查询消息负载中的变量P1,执行步骤815;

步骤812:从接口y2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域和分片ID集合域分别等于该查询消息的名称域和分片ID集合域,接口ID集合等于该查询消息负载中的变量P1;该路由器查看该查询消息中的接口ID集合是否为空,如果是,则执行步骤814,否则执行步骤813;

步骤813:从接口y2接收到该查询消息的路由器选择该查询消息中的接口ID集合中最后一个元素所标识的接口,从该查询消息中的接口ID集合中删除最后一个元素,从选中的接口发送该查询消息,执行步骤809;

步骤814:路由器接收到该查询消息后,查看节点表,选择一个节点表项,该节点表项的名称域值等于该查询消息的名称域值,分片ID集合等于该查询消息的分片ID集合或者该查询消息的分片ID集合的超集,从该节点表项的接口ID域值所标识的接口发送该查询消息;节点接收到该查询消息后,对于该查询消息分片ID集合中的每个元素创建一个二元组<分片ID,分片>,其中分片ID等于该元素,分片等于该元素所标识的分片;该节点发送一个数据消息,该数据消息的名称和分片ID集合分别等于该查询消息的名称和分片ID集合,消息类型值为7,接口ID集合为空,负载为所创建的所有二元组;

步骤815:如果节点接收到该数据消息,则执行步骤817,否则执行步骤816;

步骤816:路由器接收到数据消息后,选择所有满足条件6的查询表项;针对每个选择的查询表项E6,该路由器执行下述操作:该路由器查看查询表项E6中的分片ID集合,针对该分片ID集合中的每个分片ID,该路由器从该数据消息负载中选择一个二元组,该二元组的分片ID等于该分片ID集合中的分片ID;该路由器构建一个数据消息,该数据消息的名称和分片ID集合分别等于查询表项E6的名称域值和分片ID集合域值,消息类型值为7,接口ID集合等于查询表项E6的接口ID集合,负载为所有选取的二元组;该路由器选择该数据消息中的接口ID集合中最后一个元素所标识的接口,从该数据消息中的接口ID集合中删除最后一个元素,从选中的接口发送该数据消息;该路由器删除查询表项E6;执行步骤815;

步骤817:节点N2接收到数据消息后,针对数据消息负载中的每个二元组创建一个分片表项,该分片表项的名称为该数据消息的名称域值,分片ID和分片域值分别等于该二元组的分片ID和分片域值;

步骤818:节点N2执行步骤301~304创建节点表项;

步骤819:结束。

节点通过上述过程从远程获取所需数据分片并实现数据通信的正确性和实时性,由于上述过程从距离最近的节点获取数据分片,因此大幅度降低了数据通信代价和延迟。

有益效果:本发明提供了一种基于命名数据网络的大数据通信实现方法,在本发明中,节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的维护路由器表流程示意图。

图2为本发明所述的维护控制器表流程示意图。

图3为本发明所述的发布数据流程示意图。

图4为本发明所述的维护检索表流程示意图。

图5为本发明所述的更新检索表表流程示意图。

图6为本发明所述的获取检索表项流程示意图。

图7为本发明所述的本地数据通信流程示意图。

图8为本发明所述的远程数据通信流程示意图。

具体实施方式:

本发明提供了一种基于命名数据网络的大数据通信实现方法,在本发明中,节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

图1为本发明所述的维护路由器表流程示意图。所述网络由一个控制器,两个以上的路由器和两个以上的节点构成;控制器和每个路由器的坐标具有唯一性,控制器和路由器由自己的坐标唯一标识;

一种类型的数据由一个名称唯一标识并由N个数据分片构成,N为大于1的正整数,每个数据分片由分片ID n'唯一标识,n'=1...N;

一个控制器配置两个以上的有线接口,每个有线接口与一个路由器连接;一个路由器配置两个以上的上游有线接口、两个以上的下游有线接口以及两个以上的下游无线接口,每个上游有线接口与一个控制器或者路由器相连,一个路由器的下游有线接口与一个路由器或者节点相连,一个路由器的下游无线接口与节点相连;一个节点配置一个有线接口或者一个无线接口,该接口与路由器的下游接口相连,该路由器称为该节点的关联路由器;

每个有线接口或者无线接口由一个接口ID唯一标识,接口ID预先配置,接口ID为正整数;接口ID为i的接口记为为接口i,i为正整数;

一个消息由名称、消息类型、分片ID集合、接口ID集合和负载构成;

消息类型值如下所示:

消息类型名称消息类型值路由器发布消息1控制器发布消息2节点发布消息3删除消息4路径消息 一种基于命名数据网络的大数据通信实现方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部