首页 > 专利 > 常熟理工学院 > 一种以数据为中心的下一代网络实现方法专利详情

一种以数据为中心的下一代网络实现方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-05-30
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-11-30
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-09-25
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-05-30
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201810542793.8 申请日 2018-05-30
公开/公告号 CN108768855B 公开/公告日 2020-09-25
授权日 2020-09-25 预估到期日 2038-05-30
申请年 2018年 公开/公告年 2020年
缴费截止日
分类号 H04L12/721H04L12/727H04L29/08 主分类号 H04L12/721
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 4
权利要求数量 5 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2010.05.20CN 108040101 A,2018.05.15CN 106101210 A,2016.11.09CN 107979605 A,2018.05.01CN 103957162 A,2014.07.30谭云“.数据命名网络上的一种存储高效、可并行的数据名查找方案”《.万方数据库》.2017,全文.;
引用专利 US2010125584A 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院 邮编 215500
申请人数量 1 发明人数量 1
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
江苏圣典律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
胡建华
摘要
本发明提供了一种以数据为中心的下一代网络实现方法,一种类型的数据由名称唯一标识并划分为N个分片,N为大于1的正整数,每个分片由分片ID j唯一标识,j取值1~N;数据服务器能产生、保存和提供一种类型的数据,一种类型的数据能够由多个数据服务器产生;一个用户节点能够获取一种类型的数据;数据路由器能保存和提供一种类型的数据;用户节点通过本发明提供的以数据为中心的下一代网络实现方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
  • 摘要附图
    一种以数据为中心的下一代网络实现方法
  • 说明书附图:图1
    一种以数据为中心的下一代网络实现方法
  • 说明书附图:图2
    一种以数据为中心的下一代网络实现方法
  • 说明书附图:图3
    一种以数据为中心的下一代网络实现方法
  • 说明书附图:图4
    一种以数据为中心的下一代网络实现方法
  • 说明书附图:图5
    一种以数据为中心的下一代网络实现方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-09-25 授权
2 2018-11-30 实质审查的生效 IPC(主分类): H04L 12/721 专利申请号: 201810542793.8 申请日: 2018.05.30
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种以数据为中心的下一代网络实现方法,其特征在于,所述网络包括数据服务器、数据路由器和用户节点;数据服务器和用户节点分别与一个数据路由器链路相连;
一种类型的数据由名称唯一标识并划分为N个分片,N为大于1的正整数,每个分片由分片ID为j唯一标识,j取值1~N;数据服务器能产生、保存和提供一种类型的数据,一种类型的数据能够由多个数据服务器产生;一个用户节点能够获取一种类型的数据;数据路由器能保存和提供一种类型的数据;
对于每种类型的数据,数据路由器维护一个路由表,该路由表的表名为标识该种类型数据的名称;
一个路由表项包含序列号、下一跳、源服务器和距离域;
数据服务器通过新数据消息发布产生数据,新数据消息包含消息类型、名称、下一跳、源服务器和距离域;
一个数据服务器,用户节点以及数据路由器各自维护一个数据表,每个数据表项包含名称域、分片ID域、分片域以及生命周期域;
数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;数据服务器S1产生数据D1后,执行下述过程发布数据:
步骤101:开始;
步骤102:数据服务器S1设置一个变量k,变量k的初始值为1;
步骤103:数据服务器S1创建一个数据表项,该数据表项的名称域为NA1,分片ID域值为k,分片域值为sk,生命周期域值为预先设置值;
步骤104:数据服务器S1将变量k递增1,如果变量k大于N1,则执行步骤105,否则执行步骤103;
步骤105:数据服务器S1发送新数据消息,该新数据消息的消息类型为1,名称为NA1,下一跳和源服务器域值为自己的硬件地址,距离域值为1;
步骤106:如果用户节点或者数据服务器接收到该新数据消息,则执行步骤112,否则执行步骤107;
步骤107:接收到新数据消息的数据路由器判断自己是否保存一个路由表,该路由表的表名等于该新数据消息的名称,如果有,则无需创建路由表,如果没有,则创建一个路由表,该路由表的表名等于该新数据消息的名称;该数据路由器查看表名等于该新数据消息中名称域值的路由表,如果存在一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,则执行步骤109,否则执行步骤108;
步骤108:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,该数据路由器计算该路由表的路由表项总数x,创建一个路由表项,该路由表项的序列号为x+1,下一跳、源服务器以及距离域值分别等于该新数据消息的下一跳、源服务器以及距离域值,执行步骤111;
步骤109:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,判断该路由表项的距离域值是否大于该新数据消息中的距离域值,如果是,则执行步骤110,否则执行步骤112;
步骤110:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,将该路由表项的距离域值更新为该新数据消息中的距离域值;
步骤111;接收到新数据消息的数据路由器将该新数据消息的距离域值递增1,将该新数据消息中的下一跳域值更新为自己的硬件地址,转发该新数据消息,执行步骤103;
步骤112:结束。

2.根据权利要求1所述的一种以数据为中心的下一代网络实现方法,其特征在于,如果数据服务器删除了产生的数据,则采用删除消息来更新路由表;删除消息包含消息类型、名称以及源服务器;
数据D1由名称NA1唯一标识,数据服务器S1创建并发布了数据D1,如果数据服务器S1准备删除数据D1,则执行下述操作:
步骤201:开始;
步骤202:数据服务器S1查看数据表,选择所有名称域值等于名称NA1的数据表项,删除所述选择的数据表项;数据服务器S1发送删除消息,该删除消息的消息类型为2,名称域值为NA1,源服务器为数据服务器S1的硬件地址;
步骤203:如果用户节点或者数据服务器接收到该删除消息,则执行步骤204,否则执行步骤205;
步骤204:接收到该删除消息的用户节点或者数据服务器丢弃该删除消息,执行步骤
207;
步骤205:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,如果至少存在一个路由表项,该路由表项的源服务器域值等于该删除消息的源服务器域值,则执行步骤206,否则执行步骤207;
步骤206:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,选择所有源服务器域值等于该删除消息的源服务器域值的路由表项,删除选中的路由表项;该数据路由器转发该删除消息,执行步骤203;
步骤207:结束。

3.根据权利要求1所述的一种以数据为中心的下一代网络实现方法,其特征在于,用户节点通过发送申请消息和数据消息来获取一种类型的数据;
申请消息包含消息类型、名称、分片ID、下一跳和前一跳域;
数据消息包含消息类型、名称、分片ID、下一跳和分片域;
数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;
如果数据路由器接收到一个申请消息,该申请消息的名称为NA1,分片ID为y,且表名为名称NA1的路由表的路由表项总数为t1,则该数据路由器利用公式(1)计算下一跳数据路由器所对应的路由表项序列号r1;
每个数据路由器维护一个申请表,每个申请表项包含名称域,分片ID域和下一跳域;
每个数据路由器维护一个邻居申请表和一个数据索引表;一个邻居申请表项包含名称域、分片ID域、下一跳域和邻居域;一个数据索引表项包含名称域、分片ID域、邻居域和生命周期域;
一个数据路由器定期在一跳范围内发送信息消息,信息消息包含消息类型、邻居域和负载域,其中负载域值为该数据路由器的申请表和数据表;
数据路由器CR1定期发送信息消息,该信息消息的消息类型值为3,邻居域值为自己的硬件地址,负载域值为自己的申请表和数据表;
数据路由器CR2是数据路由器CR1的邻居数据路由器,数据路由器CR2接收到数据路由器CR1发送的信息消息后,执行下述操作:
步骤301:开始;
步骤302:数据路由器CR2接收到数据路由器CR1发送的信息消息后,查看该信息消息负载中的申请表,针对该信息消息负载中的每个申请表项,数据路由器CR2查看自己的邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值、分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则创建一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值,分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值;如果存在,则无需执行任何操作;
步骤303:接收到信息消息的数据路由器CR2查看自己的邻居申请表,选择所有邻居域值等于该信息消息邻居域值的邻居申请表项,针对每个选中的邻居申请表项,数据路由器CR2查看接收到的信息消息负载中的申请表,判断该申请表中是否存在一个申请表项,该申请表项的名称域值,分片ID以及下一跳域值分别等于该邻居申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则删除该邻居申请表项;如果存在,则无需执行任何操作;
步骤304:接收到信息消息的数据路由器CR2查看该信息消息负载中的数据表,针对该信息消息负载中的每个数据表项,数据路由器CR2查看自己的数据索引表,判断是否存在一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值和分片ID分别等于该数据表项的名称域值和分片ID,如果存在,数据路由器CR2则将该数据索引表项的生命周期域值设置为该数据表项的生命周期域值;如果不存在,数据路由器CR2创建一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值、分片ID以及生命周期域值分别等于该数据表项的名称域值、分片ID和生命周期域值;
步骤305:结束;
如果一个数据表项的生命周期衰减为0,则删除该数据表项;如果一个数据索引表项的生命周期衰减为0,则删除该数据索引表项。

4.根据权利要求3所述的一种以数据为中心的下一代网络实现方法,其特征在于,数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
用户节点U1与数据路由器R1链路相连,如果网络中所有数据路由器都没有保存数据D1,用户节点U1则通过下述过程获取数据D1:
步骤401:开始;
步骤402:用户节点U1设置一个变量k,变量k的初始值为1;
步骤403:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
步骤404:用户节点U1将变量k递增1,判断变量k是否大于N1,则执行步骤405,否则执行步骤403;
步骤405:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤414,否则执行步骤406;
步骤406:如果用户节点接收到申请消息,则执行步骤415,否则执行步骤407;
步骤407:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,如果等于,则执行步骤408,否则执行步骤415;
步骤408:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,是则执行步骤415,否则执行步骤409;
步骤409:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤410,否则执行步骤411;
步骤410:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤415;
步骤411:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤412,否则执行步骤413;
步骤412:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器则将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
步骤413:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
步骤414:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
步骤415:判断是否用户节点接收到数据消息,是则执行步骤419,否则执行步骤416;
步骤416:判断是否数据服务器接收到数据消息,是则执行步骤421,否则执行步骤417;
步骤417:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤418,否则执行步骤421;
步骤418:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤415;
步骤419:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤420,否则执行步骤421;
步骤420:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;判断该用户节点的用户表项中是否包含了数据D1的所有N1个分片,是则执行步骤421,否则执行步骤415;
步骤421:结束。

5.根据权利要求3所述的一种以数据为中心的下一代网络实现方法,其特征在于,数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
用户节点U1与数据路由器R1链路相连,如果网络中部分数据路由器保存了数据D1,则用户节点U1通过下述过程获取数据D1:
步骤501:开始;
步骤502:用户节点U1设置一个变量k,变量k的初始值为1;
步骤503:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
步骤504:用户节点U1将变量k递增1;判断变量k是否大于N1,是则执行步骤505,否则执行步骤503;
步骤505:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤518,否则执行步骤506;
步骤506:判断是否用户节点接收到申请消息,是则执行步骤519,否则执行步骤507;
步骤507:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,是则执行步骤508,否则执行步骤519;
步骤508:接收到该申请消息的数据路由器查看自己的数据表,如果存在一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤509,否则执行步骤510;
步骤509:接收到申请消息的数据路由器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项,执行步骤519;
步骤510:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,则执行步骤519,否则执行步骤511;
步骤511:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤512,否则执行步骤513;
步骤512:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤519;
步骤513:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看数据索引表,如果存在一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤514,否则执行步骤515;
步骤514:接收到该申请消息的数据路由器查看数据索引表,选择一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,将该申请消息的下一跳域值更新为该数据索引表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
步骤515:接收到该申请消息的数据路由器查看邻居申请表,如果存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤
516,否则执行步骤517;
步骤516:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
步骤517:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
步骤518:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
步骤519:判断是否用户节点接收到数据消息,是则执行步骤523,否则执行步骤520;
步骤520:判断是否数据服务器接收到数据消息,是则执行步骤525,否则执行步骤521;
步骤521:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤522,否则执行步骤525;
步骤522:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤519;
步骤523:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤524,否则执行步骤525;
步骤524:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;如果该用户节点的用户表项中包含了数据D1的所有N1个分片,则执行步骤525,否则执行步骤519;
步骤525:结束。
说明书

技术领域

[0001] 本发明涉及一种实现方法,尤其涉及的是一种以数据为中心的下一代网络实现方法。

背景技术

[0002] 下一代网络是一种新的服务模式。近年来,很多研究工作致力于下一代网络,以便用户节点能够快速获取网络服务。随着网络技术的发展,下一代网络会成为未来提供服务的一种模式。目前,下一代网络的数据通信延迟和代价都比较大,降低了网络服务性能。因此,如何降低下一代网络提供服务的延迟和代价成为近年来研究的热点问题。

发明内容

[0003] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种以数据为中心的下一代网络实现方法
[0004] 技术方案:本发明公开了一种以数据为中心的下一代网络实现方法,所述网络包括数据服务器、数据路由器和用户节点;数据服务器和用户节点分别与一个数据路由器链路相连;
[0005] 一种类型的数据由名称唯一标识并划分为N个分片,N为大于1的正整数,每个分片由分片ID为j唯一标识,j取值1~N;数据服务器能产生、保存和提供一种类型的数据,一种类型的数据能够由多个数据服务器产生;一个用户节点能够获取一种类型的数据;数据路由器能保存和提供一种类型的数据;
[0006] 对于每种类型的数据,数据路由器维护一个路由表,该路由表的表名为标识该种类型数据的名称;
[0007] 一个路由表项包含序列号、下一跳、源服务器和距离域;
[0008] 数据服务器通过新数据消息发布产生的数据,新数据消息包含消息类型、名称、下一跳、源服务器和距离域;
[0009] 一个数据服务器,用户节点以及数据路由器各自维护一个数据表,每个数据表项包含名称域、分片ID域、分片域以及生命周期域;
[0010] 数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;数据服务器S1产生数据D1后,执行下述过程发布数据:
[0011] 步骤101:开始;
[0012] 步骤102:数据服务器S1设置一个变量k,变量k的初始值为1;
[0013] 步骤103:数据服务器S1创建一个数据表项,该数据表项的名称域为NA1,分片ID域值为k,分片域值为sk,生命周期域值为预先设置值,例如30min;
[0014] 步骤104:数据服务器S1将变量k递增1,如果变量k大于N1,则执行步骤105,否则执行步骤103;
[0015] 步骤105:数据服务器S1发送新数据消息,该新数据消息的消息类型为1,名称为NA1,下一跳和源服务器域值为自己的硬件地址,例如MAC地址,距离域值为1;
[0016] 步骤106:如果用户节点或者数据服务器接收到该新数据消息,则执行步骤112,否则执行步骤107;
[0017] 步骤107:接收到新数据消息的数据路由器判断自己是否保存一个路由表,该路由表的表名等于该新数据消息的名称,如果有,则无需创建路由表,如果没有,则创建一个路由表,该路由表的表名等于该新数据消息的名称;该数据路由器查看表名等于该新数据消息中名称域值的路由表,如果存在一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,则执行步骤109,否则执行步骤108;
[0018] 步骤108:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,该数据路由器计算该路由表的路由表项总数x,创建一个路由表项,该路由表项的序列号为x+1,下一跳、源服务器以及距离域值分别等于该新数据消息的下一跳、源服务器以及距离域值,执行步骤111;
[0019] 步骤109:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,判断该路由表项的距离域值是否大于该新数据消息中的距离域值,如果是,则执行步骤110,否则执行步骤112;
[0020] 步骤110:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,将该路由表项的距离域值更新为该新数据消息中的距离域值;
[0021] 步骤111;接收到新数据消息的数据路由器将该新数据消息的距离域值递增1,将该新数据消息中的下一跳域值更新为自己的硬件地址,转发该新数据消息,执行步骤103;
[0022] 步骤112:结束。
[0023] 数据服务器通过上述过程发布新数据,上述过程,路由表的表名以名称来标识从而加速查询到达目的数据服务器的路由路径速度;另外,上述过程在数据表中创建了多个到达数据服务器的路由表项,从而实现了多个数据服务器之间的负载均衡以及网络通信流量的负载均衡;每个路由表项利用距离域值确保到达数据服务器的路径长度最短,从而提高数据通信质量。
[0024] 本发明所述方法中,如果数据服务器删除了产生的数据,则采用删除消息来更新路由表;删除消息包含消息类型、名称以及源服务器;
[0025] 数据D1由名称NA1唯一标识,数据服务器S1创建并发布了数据D1,如果数据服务器S1准备删除数据D1,则执行下述操作:
[0026] 步骤201:开始;
[0027] 步骤202:数据服务器S1查看数据表,选择所有名称域值等于名称NA1的数据表项,删除所述选中的数据表项;数据服务器S1发送删除消息,该删除消息的消息类型为2,名称域值为NA1,源服务器为数据服务器S1的硬件地址;
[0028] 步骤203:如果用户节点或者数据服务器接收到该删除消息,则执行步骤204,否则执行步骤205;
[0029] 步骤204:接收到该删除消息的用户节点或者数据服务器丢弃该删除消息,执行步骤207;
[0030] 步骤205:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,如果至少存在一个路由表项,该路由表项的源服务器域值等于该删除消息的源服务器域值,则执行步骤206,否则执行步骤207;
[0031] 步骤206:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,选择所有源服务器域值等于该删除消息的源服务器域值的路由表项,删除选中的路由表项;该数据路由器转发该删除消息,执行步骤203;
[0032] 步骤207:结束。
[0033] 如果数据服务器删除某个数据,则通过上述过程更新路由表,即所有路由器删除到达该数据服务器的路由表项,从而确保路由的实时性和正确性,提高数据通信的成功率。
[0034] 本发明所述方法中,用户节点通过发送申请消息和数据消息来获取一种类型的数据;
[0035] 申请消息包含消息类型、名称、分片ID、下一跳和前一跳域;
[0036] 数据消息包含消息类型、名称、分片ID、下一跳和分片域;
[0037] 数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;
[0038] 如果数据路由器接收到一个申请消息,该申请消息的名称为NA1,分片ID为y,且表名为名称NA1的路由表的路由表项总数为t1,则该数据路由器利用公式(1)计算下一跳数据路由器所对应的路由表项序列号r1;
[0039]
[0040] 每个数据路由器维护一个申请表,每个申请表项包含名称域,分片ID域和下一跳域;
[0041] 每个数据路由器维护一个邻居申请表和一个数据索引表;一个邻居申请表项包含名称域、分片ID域、下一跳域和邻居域;一个数据索引表项包含名称域、分片ID域、邻居域和生命周期域;
[0042] 一个数据路由器定期在一跳范围内发送信息消息,信息消息包含消息类型、邻居域和负载域,其中负载域值为该数据路由器的申请表和数据表;
[0043] 数据路由器CR1定期发送信息消息,该信息消息的消息类型值为3,邻居域值为自己的硬件地址,负载域值为自己的申请表和数据表;
[0044] 数据路由器CR2是数据路由器CR1的邻居数据路由器,数据路由器CR2接收到数据路由器CR1发送的信息消息后,执行下述操作:
[0045] 步骤301:开始;
[0046] 步骤302:数据路由器CR2接收到数据路由器CR1发送的信息消息后,查看该信息消息负载中的申请表,针对该信息消息负载中的每个申请表项,数据路由器CR2查看自己的邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值、分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则创建一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值,分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值;如果存在,则无需执行任何操作;
[0047] 步骤303:接收到信息消息的数据路由器CR2查看自己的邻居申请表,选择所有邻居域值等于该信息消息邻居域值的邻居申请表项,针对每个选中的邻居申请表项,数据路由器CR2查看接收到的信息消息负载中的申请表,判断该申请表中是否存在一个申请表项,该申请表项的名称域值,分片ID以及下一跳域值分别等于该邻居申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则删除该邻居申请表项;如果存在,则无需执行任何操作;
[0048] 步骤304:接收到信息消息的数据路由器CR2查看该信息消息负载中的数据表,针对该信息消息负载中的每个数据表项,数据路由器CR2查看自己的数据索引表,判断是否存在一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值和分片ID分别等于该数据表项的名称域值和分片ID,如果存在,数据路由器CR2则将该数据索引表项的生命周期域值设置为该数据表项的生命周期域值;如果不存在,数据路由器CR2创建一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值、分片ID以及生命周期域值分别等于该数据表项的名称域值、分片ID和生命周期域值;
[0049] 步骤305:结束;
[0050] 如果一个数据表项的生命周期衰减为0,则删除该数据表项;如果一个数据索引表项的生命周期衰减为0,则删除该数据索引表项。
[0051] 数据服务器通过上述过程实时更新邻居申请表和数据索引表,用户节点通过邻居申请表可以快速实现数据申请的聚合,通过数据索引表可以快速通过邻居数据路由器获取数据从而降低数据通信延迟和代价。
[0052] 本发明所述方法中,数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
[0053] 用户节点U1与数据路由器R1链路相连,如果网络中所有数据路由器都没有保存数据D1,例如网络刚启动的时候,用户节点U1则通过下述过程获取数据D1:
[0054] 步骤401:开始;
[0055] 步骤402:用户节点U1设置一个变量k,变量k的初始值为1;
[0056] 步骤403:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
[0057] 步骤404:用户节点U1将变量k递增1,判断变量k是否大于N1,则执行步骤405,否则执行步骤403;
[0058] 步骤405:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤414,否则执行步骤406;
[0059] 步骤406:如果用户节点接收到申请消息,则执行步骤415,否则执行步骤407;
[0060] 步骤407:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,如果等于,则执行步骤408,否则执行步骤415;
[0061] 步骤408:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,是则执行步骤415,否则执行步骤409;
[0062] 步骤409:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤410,否则执行步骤411;
[0063] 步骤410:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤415;
[0064] 步骤411:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤412,否则执行步骤413;
[0065] 步骤412:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器则将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
[0066] 步骤413:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
[0067] 步骤414:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
[0068] 步骤415:判断是否用户节点接收到数据消息,是则执行步骤419,否则执行步骤416;
[0069] 步骤416:判断是否数据服务器接收到数据消息,是则执行步骤421,否则执行步骤417;
[0070] 步骤417:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤418,否则执行步骤421;
[0071] 步骤418:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤415;
[0072] 步骤419:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤420,否则执行步骤421;
[0073] 步骤420:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;判断该用户节点的用户表项中是否包含了数据D1的所有N1个分片,是则执行步骤421,否则执行步骤415;
[0074] 步骤421:结束。
[0075] 用户节点通过上述过程获取数据;上述过程通过申请表实现数据申请的聚合,这样,用户节点通过中间数据路由器即可获取数据,多个用户节点通过一次数据通信过程能够获取所需数据,从而大幅度降低数据通信延迟和代价;上述过程通过邻居申请表项能够快速实现数据申请的聚合,从而进一步降低数据通信延迟和代价;此外,上述过程利用公式(1)选择路由表项从而实现了数据服务器之间的负载均衡以及网络通信流量的负载均衡;数据返回过程中,数据路由器通过数据表保存响应数据从而能够为用户节点提供数据,这样用户节点可以通过中间数据路由器获取数据从而降低数据通信延迟和代价;数据返回的路由路径无需路由建立过程通过申请表自动完成,因此降低了数据通信延迟和代价。
[0076] 本发明所述方法中,数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
[0077] 用户节点U1与数据路由器R1链路相连,如果网络中部分数据路由器保存了数据D1,则用户节点U1通过下述过程获取数据D1:
[0078] 步骤501:开始;
[0079] 步骤502:用户节点U1设置一个变量k,变量k的初始值为1;
[0080] 步骤503:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
[0081] 步骤504:用户节点U1将变量k递增1;判断变量k是否大于N1,是则执行步骤505,否则执行步骤503;
[0082] 步骤505:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤518,否则执行步骤506;
[0083] 步骤506:判断是否用户节点接收到申请消息,是则执行步骤519,否则执行步骤507;
[0084] 步骤507:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,是则执行步骤508,否则执行步骤519;
[0085] 步骤508:接收到该申请消息的数据路由器查看自己的数据表,如果存在一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤509,否则执行步骤510;
[0086] 步骤509:接收到申请消息的数据路由器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项,执行步骤519;
[0087] 步骤510:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,则执行步骤519,否则执行步骤511;
[0088] 步骤511:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤512,否则执行步骤513;
[0089] 步骤512:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤519;
[0090] 步骤513:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看数据索引表,如果存在一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤514,否则执行步骤515;
[0091] 步骤514:接收到该申请消息的数据路由器查看数据索引表,选择一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,将该申请消息的下一跳域值更新为该数据索引表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0092] 步骤515:接收到该申请消息的数据路由器查看邻居申请表,如果存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤516,否则执行步骤517;
[0093] 步骤516:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0094] 步骤517:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0095] 步骤518:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
[0096] 步骤519:判断是否用户节点接收到数据消息,是则执行步骤523,否则执行步骤520;
[0097] 步骤520:判断是否数据服务器接收到数据消息,是则执行步骤525,否则执行步骤521;
[0098] 步骤521:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤522,否则执行步骤525;
[0099] 步骤522:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤519;
[0100] 步骤523:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤524,否则执行步骤525;
[0101] 步骤524:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;如果该用户节点的用户表项中包含了数据D1的所有N1个分片,则执行步骤525,否则执行步骤519;
[0102] 步骤525:结束。
[0103] 用户节点通过上述过程从中间数据路由器获取数据从而降低数据通信延迟和代价;数据路由器通过数据表保存数据从而能够为用户节点提供数据,这样用户节点可以通过距离最近的数据路由器获取数据从而降低数据通信延迟和代价;上述过程通过数据索引表能够快速从邻居数据路由器快速获取数据,从而进一步降低数据通信延迟和代价;同时,通过邻居申请表和申请表快速实现数据申请的聚合,这样用户节点通过中间数据路由器共享数据,多个用户节点通过一次数据通信过程能够获取所需数据,从而大幅度降低数据通信延迟和代价;此外,上述过程利用公式(1)选择路由表项从而实现了数据服务器之间的负载均衡以及网络通信流量的负载均衡;数据返回过程中,数据路由器通过数据表保存响应数据从而能够为用户节点提供数据,这样用户节点可以通过中间数据路由器获取数据从而降低数据通信延迟和代价;数据返回的路由路径无需路由建立过程通过申请表自动完成,因此降低了数据通信延迟和代价。
[0104] 有益效果:本发明提供了一种以数据为中心的下一代网络实现方法,用户节点通过本发明提供的以数据为中心的下一代网络实现方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。

附图说明

[0105] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0106] 图1为本发明所述的发布数据流程示意图。
[0107] 图2为本发明所述的路由表更新流程示意图。
[0108] 图3为本发明所述的更新流程示意图。
[0109] 图4为本发明所述的获取数据流程示意图。
[0110] 图5为本发明所述的数据通信流程示意图。具体实施方式:
[0111] 本发明提供了一种以数据为中心的下一代网络实现方法,用户节点通过本发明提供的以数据为中心的下一代网络实现方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
[0112] 图1为本发明所述的发布数据流程示意图。所述网络包括数据服务器、数据路由器和用户节点;数据服务器和用户节点分别与一个数据路由器链路相连;
[0113] 一种类型的数据由名称唯一标识并划分为N个分片,N为大于1的正整数,每个分片由分片ID为j唯一标识,j取值1~N;数据服务器能产生、保存和提供一种类型的数据,一种类型的数据能够由多个数据服务器产生;一个用户节点能够获取一种类型的数据;数据路由器能保存和提供一种类型的数据;
[0114] 对于每种类型的数据,数据路由器维护一个路由表,该路由表的表名为标识该种类型数据的名称;
[0115] 一个路由表项包含序列号、下一跳、源服务器和距离域;
[0116] 数据服务器通过新数据消息发布产生的数据,新数据消息包含消息类型、名称、下一跳、源服务器和距离域;
[0117] 一个数据服务器,用户节点以及数据路由器各自维护一个数据表,每个数据表项包含名称域、分片ID域、分片域以及生命周期域;
[0118] 数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;数据服务器S1产生数据D1后,执行下述过程发布数据:
[0119] 步骤101:开始;
[0120] 步骤102:数据服务器S1设置一个变量k,变量k的初始值为1;
[0121] 步骤103:数据服务器S1创建一个数据表项,该数据表项的名称域为NA1,分片ID域值为k,分片域值为sk,生命周期域值为预先设置值;
[0122] 步骤104:数据服务器S1将变量k递增1,如果变量k大于N1,则执行步骤105,否则执行步骤103;
[0123] 步骤105:数据服务器S1发送新数据消息,该新数据消息的消息类型为1,名称为NA1,下一跳和源服务器域值为自己的硬件地址,距离域值为1;
[0124] 步骤106:如果用户节点或者数据服务器接收到该新数据消息,则执行步骤112,否则执行步骤107;
[0125] 步骤107:接收到新数据消息的数据路由器判断自己是否保存一个路由表,该路由表的表名等于该新数据消息的名称,如果有,则无需创建路由表,如果没有,则创建一个路由表,该路由表的表名等于该新数据消息的名称;该数据路由器查看表名等于该新数据消息中名称域值的路由表,如果存在一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,则执行步骤109,否则执行步骤108;
[0126] 步骤108:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,该数据路由器计算该路由表的路由表项总数x,创建一个路由表项,该路由表项的序列号为x+1,下一跳、源服务器以及距离域值分别等于该新数据消息的下一跳、源服务器以及距离域值,执行步骤111;
[0127] 步骤109:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,判断该路由表项的距离域值是否大于该新数据消息中的距离域值,如果是,则执行步骤110,否则执行步骤112;
[0128] 步骤110:接收到新数据消息的数据路由器查看表名等于该新数据消息名称的路由表,选择一个路由表项,该路由表项的下一跳和源服务器域值分别等于该新数据消息的下一跳和源服务器域值,将该路由表项的距离域值更新为该新数据消息中的距离域值;
[0129] 步骤111;接收到新数据消息的数据路由器将该新数据消息的距离域值递增1,将该新数据消息中的下一跳域值更新为自己的硬件地址,转发该新数据消息,执行步骤103;
[0130] 步骤112:结束。
[0131] 图2为本发明所述的路由表更新流程示意图。如果数据服务器删除了产生的数据,则采用删除消息来更新路由表;删除消息包含消息类型、名称以及源服务器;
[0132] 数据D1由名称NA1唯一标识,数据服务器S1创建并发布了数据D1,如果数据服务器S1准备删除数据D1,则执行下述操作:
[0133] 步骤201:开始;
[0134] 步骤202:数据服务器S1查看数据表,选择所有名称域值等于名称NA1的数据表项,删除所述选中的数据表项;数据服务器S1发送删除消息,该删除消息的消息类型为2,名称域值为NA1,源服务器为数据服务器S1的硬件地址;
[0135] 步骤203:如果用户节点或者数据服务器接收到该删除消息,则执行步骤204,否则执行步骤205;
[0136] 步骤204:接收到该删除消息的用户节点或者数据服务器丢弃该删除消息,执行步骤207;
[0137] 步骤205:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,如果至少存在一个路由表项,该路由表项的源服务器域值等于该删除消息的源服务器域值,则执行步骤206,否则执行步骤207;
[0138] 步骤206:接收到删除消息的数据路由器查看表名等于该删除消息名称的路由表,选择所有源服务器域值等于该删除消息的源服务器域值的路由表项,删除选中的路由表项;该数据路由器转发该删除消息,执行步骤203;
[0139] 步骤207:结束。
[0140] 图3为本发明所述的更新流程示意图。用户节点通过发送申请消息和数据消息来获取一种类型的数据;
[0141] 申请消息包含消息类型、名称、分片ID、下一跳和前一跳域;
[0142] 数据消息包含消息类型、名称、分片ID、下一跳和分片域;
[0143] 数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个数据分片由分片ID为j1标识;
[0144] 如果数据路由器接收到一个申请消息,该申请消息的名称为NA1,分片ID为y,且表名为名称NA1的路由表的路由表项总数为t1,则该数据路由器利用公式(1)计算下一跳数据路由器所对应的路由表项序列号r1;
[0145]
[0146] 每个数据路由器维护一个申请表,每个申请表项包含名称域,分片ID域和下一跳域;
[0147] 每个数据路由器维护一个邻居申请表和一个数据索引表;一个邻居申请表项包含名称域、分片ID域、下一跳域和邻居域;一个数据索引表项包含名称域、分片ID域、邻居域和生命周期域;
[0148] 一个数据路由器定期在一跳范围内发送信息消息,信息消息包含消息类型、邻居域和负载域,其中负载域值为该数据路由器的申请表和数据表;
[0149] 数据路由器CR1定期发送信息消息,该信息消息的消息类型值为3,邻居域值为自己的硬件地址,负载域值为自己的申请表和数据表;
[0150] 数据路由器CR2是数据路由器CR1的邻居数据路由器,数据路由器CR2接收到数据路由器CR1发送的信息消息后,执行下述操作:
[0151] 步骤301:开始;
[0152] 步骤302:数据路由器CR2接收到数据路由器CR1发送的信息消息后,查看该信息消息负载中的申请表,针对该信息消息负载中的每个申请表项,数据路由器CR2查看自己的邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值、分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则创建一个邻居申请表项,该邻居申请表项的邻居域值等于该信息消息的邻居域值,并且该邻居申请表项的名称域值,分片ID以及下一跳域值分别等于该申请表项的名称域值、分片ID以及下一跳域值;如果存在,则无需执行任何操作;
[0153] 步骤303:接收到信息消息的数据路由器CR2查看自己的邻居申请表,选择所有邻居域值等于该信息消息邻居域值的邻居申请表项,针对每个选中的邻居申请表项,数据路由器CR2查看接收到的信息消息负载中的申请表,判断该申请表中是否存在一个申请表项,该申请表项的名称域值,分片ID以及下一跳域值分别等于该邻居申请表项的名称域值、分片ID以及下一跳域值,如果不存在,数据路由器CR2则删除该邻居申请表项;如果存在,则无需执行任何操作;
[0154] 步骤304:接收到信息消息的数据路由器CR2查看该信息消息负载中的数据表,针对该信息消息负载中的每个数据表项,数据路由器CR2查看自己的数据索引表,判断是否存在一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值和分片ID分别等于该数据表项的名称域值和分片ID,如果存在,数据路由器CR2则将该数据索引表项的生命周期域值设置为该数据表项的生命周期域值;如果不存在,数据路由器CR2创建一个数据索引表项,该数据索引表项的邻居域值等于该信息消息的邻居域值,并且该数据索引表项的名称域值、分片ID以及生命周期域值分别等于该数据表项的名称域值、分片ID和生命周期域值;
[0155] 步骤305:结束;
[0156] 如果一个数据表项的生命周期衰减为0,则删除该数据表项;如果一个数据索引表项的生命周期衰减为0,则删除该数据索引表项。
[0157] 图4为本发明所述的获取数据流程示意图。数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
[0158] 用户节点U1与数据路由器R1链路相连,如果网络中所有数据路由器都没有保存数据D1,用户节点U1则通过下述过程获取数据D1:
[0159] 步骤401:开始;
[0160] 步骤402:用户节点U1设置一个变量k,变量k的初始值为1;
[0161] 步骤403:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
[0162] 步骤404:用户节点U1将变量k递增1,判断变量k是否大于N1,则执行步骤405,否则执行步骤403;
[0163] 步骤405:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤414,否则执行步骤406;
[0164] 步骤406:如果用户节点接收到申请消息,则执行步骤415,否则执行步骤407;
[0165] 步骤407:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,如果等于,则执行步骤408,否则执行步骤415;
[0166] 步骤408:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,是则执行步骤415,否则执行步骤409;
[0167] 步骤409:接收到该申请消息的数据路由器查看申请表,判断是否存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤410,否则执行步骤411;
[0168] 步骤410:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤415;
[0169] 步骤411:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看邻居申请表,判断是否存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,是则执行步骤412,否则执行步骤413;
[0170] 步骤412:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器则将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
[0171] 步骤413:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤405;
[0172] 步骤414:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
[0173] 步骤415:判断是否用户节点接收到数据消息,是则执行步骤419,否则执行步骤416;
[0174] 步骤416:判断是否数据服务器接收到数据消息,是则执行步骤421,否则执行步骤417;
[0175] 步骤417:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤418,否则执行步骤421;
[0176] 步骤418:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤415;
[0177] 步骤419:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,如果是则执行步骤420,否则执行步骤421;
[0178] 步骤420:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;判断该用户节点的用户表项中是否包含了数据D1的所有N1个分片,是则执行步骤421,否则执行步骤415;
[0179] 步骤421:结束。
[0180] 图5为本发明所述的数据通信流程示意图。数据D1由名称NA1唯一标识,划分为N1个分片sj1,j1取值1~N1,每个分片由分片ID为j1标识;
[0181] 用户节点U1与数据路由器R1链路相连,如果网络中部分数据路由器保存了数据D1,则用户节点U1通过下述过程获取数据D1:
[0182] 步骤501:开始;
[0183] 步骤502:用户节点U1设置一个变量k,变量k的初始值为1;
[0184] 步骤503:用户节点U1发送申请消息,申请消息的消息类型为4,名称为NA1,分片ID为k,下一跳为数据路由器R1的硬件地址,前一跳为用户节点U1的硬件地址;
[0185] 步骤504:用户节点U1将变量k递增1;判断变量k是否大于N1,是则执行步骤505,否则执行步骤503;
[0186] 步骤505:判断是否数据服务器接收到该申请消息且能够提供该申请消息名称所标识的数据,是则执行步骤518,否则执行步骤506;
[0187] 步骤506:判断是否用户节点接收到申请消息,是则执行步骤519,否则执行步骤507;
[0188] 步骤507:接收到该申请消息的数据路由器判断自己的硬件地址是否等于该申请消息的下一跳域值,是则执行步骤508,否则执行步骤519;
[0189] 步骤508:接收到该申请消息的数据路由器查看自己的数据表,如果存在一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤509,否则执行步骤510;
[0190] 步骤509:接收到申请消息的数据路由器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项,执行步骤519;
[0191] 步骤510:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,则执行步骤519,否则执行步骤511;
[0192] 步骤511:接收到该申请消息的数据路由器查看申请表,如果存在一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤512,否则执行步骤513;
[0193] 步骤512:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值,执行步骤519;
[0194] 步骤513:接收到该申请消息的数据路由器创建一个申请表项,该申请表项的名称和分片ID分别等于该申请消息的名称和分片ID且下一跳域值等于该申请消息的前一跳域值;该数据路由器查看数据索引表,如果存在一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤514,否则执行步骤515;
[0195] 步骤514:接收到该申请消息的数据路由器查看数据索引表,选择一个数据索引表项,该数据索引表项的名称和分片ID分别等于该申请消息的名称和分片ID,将该申请消息的下一跳域值更新为该数据索引表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0196] 步骤515:接收到该申请消息的数据路由器查看邻居申请表,如果存在一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,则执行步骤516,否则执行步骤517;
[0197] 步骤516:接收到该申请消息的数据路由器查看邻居申请表,选择一个邻居申请表项,该邻居申请表项的名称和分片ID分别等于该申请消息的名称和分片ID,该数据路由器将该申请消息的下一跳域值更新为该邻居申请表项的邻居域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0198] 步骤517:接收到该申请消息的数据路由器查看表名等于该申请消息中名称域值的路由表,利用公式(1)计算下一跳对应的路由表项的序列号r1,从该路由表中选择序列号为r1的路由表项,将该申请消息的下一跳域值更新为该路由表项的下一跳域值,将该申请消息的前一跳域值更新为自己的硬件地址,转发该申请消息,执行步骤505;
[0199] 步骤518:接收到申请消息的数据服务器查看数据表,选择一个数据表项,该数据表项的名称和分片ID分别等于该申请消息的名称和分片ID,发送数据消息,该数据消息的消息类型为5,名称和分片ID分别等于该申请消息的名称和分片ID,下一跳等于该申请消息的前一跳,分片域值等于选中的数据表项;
[0200] 步骤519:判断是否用户节点接收到数据消息,是则执行步骤523,否则执行步骤520;
[0201] 步骤520:判断是否数据服务器接收到数据消息,是则执行步骤525,否则执行步骤521;
[0202] 步骤521:接收到数据消息的数据路由器判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤522,否则执行步骤525;
[0203] 步骤522:接收到数据消息的数据路由器创建一个数据表项,该数据表项的名称、分片ID,分片域值以及生命周期分别等于该数据消息负载中数据表项的名称、分片ID,分片域值以及生命周期;该数据路由器查看申请表,选择所有名称域值和分片ID域值分别等于该数据消息的名称和分片ID的申请表项,针对每个选中的申请表项,该数据路由器将下一跳更新为该申请表项的下一跳域值,转发该数据消息,执行步骤519;
[0204] 步骤523:接收到数据消息的用户节点判断自己的硬件地址是否等于该数据消息的下一跳域值,是则执行步骤524,否则执行步骤525;
[0205] 步骤524:接收到数据消息的用户节点将该数据消息负载中的数据表项加入到自己的数据表中;如果该用户节点的用户表项中包含了数据D1的所有N1个分片,则执行步骤525,否则执行步骤519;
[0206] 步骤525:结束。
[0207] 实施例1
[0208] 基于表1的仿真参数,本实施例模拟了本发明中的一种以数据为中心的下一代网络实现方法,数据服务器产生数据后,通过执行步骤101-112执行数据发布过程以建立路由表,如果数据服务器删除了数据,则通过执行步骤201-207更新路由表,数据路由器通过执行步骤301-305更新邻居申请表和数据索引表,在网络启动初期,用户节点通过执行步骤401-421获取数据,在网络运行中后期,用户节点通过执行步骤501-525获取数据,性能分析如下:当移动速度增加时,网络性能下降,数据获取延迟有所增加,当移动速度降低时,网络性能提高,数据获取延迟有所下降,数据获取的平均延迟为3.76s。
[0209] 表1仿真参数
[0210]
[0211] 本发明提供了一种以数据为中心的下一代网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号