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

一种命名数据网络的缓存和路由实现方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-05-14
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-09-03
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-06-22
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-05-14
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910397590.9 申请日 2019-05-14
公开/公告号 CN110113264B 公开/公告日 2021-06-22
授权日 2021-06-22 预估到期日 2039-05-14
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 H04L12/741 主分类号 H04L12/741
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2004.11.18田兵.多接口能源路由器主回路结构及功能仿真《.电力系统自动化》.2017,第41卷(第10期),;
引用专利 US2004230709A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃、程宏斌、殷旭东 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区) 邮编 215500
申请人数量 1 发明人数量 3
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
南京瑞弘专利商标事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨晓玲
摘要
本发明提供了一种命名数据网络的缓存和路由实现方法,所述网络包含节点、服务器和路由器;一个路由器包含两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点或者服务器相连;一个节点或者服务器具有一个接口,与路由器相连;每个接口由接口ID唯一标识,接口ID为大于0的正整数;接口ID为f的接口记为接口f;用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。
  • 摘要附图
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图1
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图2
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图3
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图4
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图5
    一种命名数据网络的缓存和路由实现方法
  • 说明书附图:图6
    一种命名数据网络的缓存和路由实现方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-06-22 授权
2 2019-09-03 实质审查的生效 IPC(主分类): H04L 12/741 专利申请号: 201910397590.9 申请日: 2019.05.14
3 2019-08-09 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种命名数据网络的缓存和路由实现方法,其特征在于,所述网络包含节点、服务器和路由器;
一个路由器包含两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点或者服务器相连;一个节点或者服务器具有一个接口,与路由器相连;
每个接口由接口ID唯一标识,接口ID为0或者大于0的正整数;接口ID为f的接口记为接口f;
一种数据由一个名称唯一标识;一个路由器具有唯一的坐标;一个节点、服务器或者路由器由一个地址唯一标识;一个地址包含坐标和接口ID;一个节点或者服务器通过电子地图获取每个路由器的坐标;一个消息由消息类型唯一标识,如下表所示:
消息类型的值 消息名称
1 节点消息
2 服务器消息
3 邻居消息
4 发布消息
5 请求消息
6 数据消息
一个路由器保存一个节点表,一个节点表项包含地址和生命周期域;一个节点消息包含消息类型和地址;节点N1与路由器R1相连,定期执行下述操作:
步骤101:开始;
步骤102:节点N1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;节点N1发送一个节点消息,该节点消息的消息类型值为1,地址为创建的地址;
步骤103:路由器R1从接口f1接收到该节点消息,将该节点消息的地址域值的接口ID设置为f1;路由器R1查看节点表,如果存在一个节点表项,该节点表项的地址等于该节点消息的地址,则将该节点表项的生命周期设置为最大值;否则,路由器R1创建一个节点表项,该节点表项的地址等于该节点消息的地址,将生命周期设置为最大值;
步骤104:结束。

2.根据权利要求1所述的一种命名数据网络的缓存和路由实现方法,其特征在于,路由器保存一个服务器表,一个服务器表项包含地址、名称和生命周期域;一个服务器或者路由器保存一个数据表,一个数据表项包含名称、数据值和生命周期;一个服务器消息包含消息类型、名称和地址;服务器S1与路由器R1相连,能提供数据DA1,数据DA1由名称NA1标识,定期执行下述操作:
步骤201:开始;
步骤202:服务器S1创建一个数据表项,该数据表项的名称为NA1,数据值为DA1,生命周期为最大值;服务器S1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;服务器S1发送一个服务器消息,该服务器消息的消息类型值为2,名称为NA1,地址为创建的地址;
步骤203:路由器R1从接口f2接收到该服务器消息,将该服务器消息的地址域值的接口ID设置为f2;路由器R1查看服务器表,如果存在一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,则将该服务器表项的生命周期设置为最大值;否则,路由器R1创建一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,将生命周期设置为最大值;
步骤204:结束。

3.根据权利要求1所述的一种命名数据网络的缓存和路由实现方法,其特征在于,路由器保存一个邻居表,一个邻居表项包含地址、接口ID和生命周期;一个邻居消息包含消息类型和地址;路由器R1定期执行下述操作:
步骤301:开始;
步骤302:路由器R1构建一个地址,该地址的坐标等于路由器R1自己的坐标,接口ID等于0,路由器R1从每个上游接口发送一个邻居消息,该邻居消息的消息类型值为3,地址为创建的地址;
步骤303:其他路由器从接口x1接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的地址等于该邻居消息的地址,则将该邻居表项的接口ID更新为x1,将生命周期设置为最大值;否则,该路由器创建一个邻居表项,该邻居表项的地址等于该邻居消息的地址,接口ID等于x1,生命周期设置为最大值;
步骤304:结束。

4.根据权利要求1所述的一种命名数据网络的缓存和路由实现方法,其特征在于,路由器保存一个静态表,每个静态表项包含地址、名称和生命周期;发布消息包含消息类型、名称和地址;路由器R1定期执行下述操作:
步骤401:开始;
步骤402:路由器R1查看服务器表,针对每个服务器表项,路由器R1执行下述操作:路由器R1从每个上游接口发送一个发布消息,该发布消息的消息类型值为4,名称和地址分别等于该服务器表项的名称和地址;
步骤403:其他路由器从接口x2接收到发布消息后查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,且生命周期大于阈值TH1,则执行步骤408,否则执行步骤404;
步骤404:从接口x2接收到发布消息的路由器查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,则执行步骤405,否则执行步骤
406;
步骤405:从接口x2接收到发布消息的路由器查看静态表,选择一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,将该静态表项的生命周期设置为最大值,执行步骤407;
步骤406:从接口x2接收到发布消息的路由器创建一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,生命周期为最大值;
步骤407:从接口x2接收到发布消息的路由器从除了接口x2以外的所有上游接口转发该发布消息,执行步骤403;
步骤408:结束。

5.根据权利要求4所述的一种命名数据网络的缓存和路由实现方法,其特征在于,路由器保存一个数据表,每个数据表项包含名称、数值和生命周期;每个路由器保存一个动态表,一个动态表项包含地址、名称和生命周期;一个请求消息包含源地址、目的地址、路由器地址和名称;一个数据消息包含源地址、目的地址、路由器地址、名称和负载;节点N2与路由器R2相连,数据DA1由名称NA1标识;如果路由器R2检测到任何动态表项的名称域值都不等于NA1,节点N2则通过下述过程获取数据DA1:
步骤501:开始;
步骤502:节点N2构建一个地址,该地址的坐标为路由器R2的坐标,接口ID为0;节点N2发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
步骤503:路由器R2从接口z1接收到请求消息,将该请求消息的源地址的接口ID设置为z1;路由器R2选择一个静态表项,该静态表项的名称等于该请求消息的名称,将该请求消息的目的地址设置为该静态表项的地址;路由器R2构建一个地址,该地址的坐标为((x1+x2)/
2,(y1+y2)/2),接口ID为0,(x1,y1)为该请求消息源地址的坐标,(x2,y2)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R2创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R2选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
步骤504:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;
如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤506,否则执行步骤
505;
步骤505:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤504;
步骤506:接收到请求消息的路由器选择一个接口,该接口的接口ID等于该请求消息目的地址的接口ID,从该接口转发该请求消息;服务器接收到该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;
步骤507:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤508,否则执行步骤510;
步骤508:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
步骤509:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
步骤510:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
步骤511:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤513,否则执行步骤512;
步骤512:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
步骤513:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤515,否则执行步骤514;
步骤514:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
步骤515:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
步骤516:结束。

6.根据权利要求5所述的一种命名数据网络的缓存和路由实现方法,其特征在于,节点N3与路由器R3相连,数据DA1由名称NA1标识;如果路由器R3检测到至少有一个动态表项的名称域值等于NA1,节点N3则通过下述过程获取数据DA1:
步骤601:开始;
步骤602:节点N3构建一个地址,该地址的坐标为路由器R3的坐标,接口ID为0;节点N3发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
步骤603:路由器R3从接口z2接收到请求消息,将该请求消息的源地址的接口ID设置为z2;路由器R3选择所有名称等于该请求消息的动态表项,从这些动态表项中选择一个动态表项,该动态表项的地址的坐标与自己的坐标距离最近,将该请求消息的目的地址设置为该动态表项的地址;路由器R3构建一个地址,该地址的坐标为((x3+x4)/2,(y3+y4)/2),接口ID为0,(x3,y3)为该请求消息源地址的坐标,(x4,y4)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R3创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R3选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
步骤604:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;
如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤606,否则执行步骤
605;
步骤605:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤604;
步骤606:接收到请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;该路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息;
步骤607:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤608,否则执行步骤610;
步骤608:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
步骤609:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
步骤610:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
步骤611:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤613,否则执行步骤612;
步骤612:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
步骤613:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤615,否则执行步骤614;
步骤614:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
步骤615:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
步骤616:结束。
说明书

技术领域

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

背景技术

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

发明内容

[0003] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供了一种命名数据网络的缓存和路由实现方法。节点通过本发明从距离最近的路由器获取数据,从而降低获取数据的延迟和代价,从而有效提高网络服务性能。
[0004] 技术方案:本发明公开了一种命名数据网络的缓存和路由实现方法,所述网络包含节点、服务器和路由器;
[0005] 一个路由器包含两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点或者服务器相连;一个节点或者服务器具有一个接口,与路由器相连;每个接口由接口ID唯一标识,接口ID为大于0的正整数;接口ID为f的接口记为接口f;
[0006] 一种数据由一个名称唯一标识;一个路由器具有唯一的坐标;一个节点、服务器或者路由器由一个地址唯一标识;一个地址包含坐标和接口ID;一个节点或者服务器通过电子地图获取每个路由器的坐标;一个消息由消息类型唯一标识,如下表所示:节点或者服务器预先配置电子地图,电子地图包含每个路由的坐标;
[0007] 消息类型的值 消息名称1 节点消息
2 服务器消息
3 邻居消息
4 发布消息
5 请求消息
6 数据消息
[0008] 一个路由器保存一个节点表,一个节点表项包含地址和生命周期域;一个节点消息包含消息类型和地址;节点N1与路由器R1相连,定期执行下述操作:
[0009] 步骤101:开始;
[0010] 步骤102:节点N1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;节点N1发送一个节点消息,该节点消息的消息类型值为1,地址为创建的地址;
[0011] 步骤103:路由器R1从接口f1接收到该节点消息,将该节点消息的地址域值的接口ID设置为f1;路由器R1查看节点表,如果存在一个节点表项,该节点表项的地址等于该节点消息的地址,则将该节点表项的生命周期设置为最大值;否则,路由器R1创建一个节点表项,该节点表项的地址等于该节点消息的地址,将生命周期设置为最大值;
[0012] 步骤104:结束。
[0013] 节点通过上述过程在相连的路由器建立节点表,这样路由器可以获取相连的节点的信息,由于节点地址包含接口ID,因此路由器通过节点的地址可以实现消息的正确转发,从而实现正确通信。另外,上述过程通过生命周期来确保节点表的有效性,因为也确保了通信的有效性和正确性。
[0014] 本发明所述方法中,路由器保存一个服务器表,一个服务器表项包含地址、名称和生命周期域;一个服务器或者路由器保存一个数据表,一个数据表项包含名称、数据值和生命周期;一个服务器消息包含消息类型、名称和地址;服务器S1与路由器R1相连,能提供数据DA1,数据DA1由名称NA1标识,定期执行下述操作:
[0015] 步骤201:开始;
[0016] 步骤202:服务器S1创建一个数据表项,该数据表项的名称为NA1,数据值为DA1,生命周期为最大值;服务器S1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;服务器S1发送一个服务器消息,该服务器消息的消息类型值为2,名称为NA1,地址为创建的地址;
[0017] 步骤203:路由器R1从接口f2接收到该服务器消息,将该服务器消息的地址域值的接口ID设置为f2;路由器R1查看服务器表,如果存在一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,则将该服务器表项的生命周期设置为最大值;否则,路由器R1创建一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,将生命周期设置为最大值;
[0018] 步骤204:结束。
[0019] 服务器通过上述过程在相连的路由器建立服务器表,这样路由器可以获取相连的服务器的信息,由于服务器地址包含接口ID,因此路由器通过服务器的地址可以实现消息的正确转发,从而实现正确通信。另外,上述过程通过生命周期来确保服务器表的有效性,因为也确保了通信的有效性和正确性。
[0020] 本发明所述方法中,路由器保存一个邻居表,一个邻居表项包含地址、接口ID和生命周期;一个邻居消息包含消息类型和地址;路由器R1定期执行下述操作:
[0021] 步骤301:开始;
[0022] 步骤302:路由器R1构建一个地址,该地址的坐标等于路由器R1自己的坐标,接口ID等于0,路由器R1从每个上游接口发送一个邻居消息,该邻居消息的消息类型值为3,地址为创建的地址;
[0023] 步骤303:其他路由器从接口x1接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的地址等于该邻居消息的地址,则将该邻居表项的接口ID更新为x1,将生命周期设置为最大值;否则,该路由器创建一个邻居表项,该邻居表项的地址等于该邻居消息的地址,接口ID等于x1,生命周期设置为最大值;
[0024] 步骤304:结束。
[0025] 路由器通过上述过程建立邻居表,这样路由器可以根据邻居表地址域值中的坐标选择下一跳从而构建到达目的路由器的最优路由路径,降低数据通信延迟;邻居表通过接口ID实现消息的正确转发,从而确保了数据通信的正确性。
[0026] 本发明所述方法中,路由器保存一个静态表,每个静态表项包含地址、名称和生命周期;发布消息包含消息类型、名称和地址;路由器R1定期执行下述操作:
[0027] 步骤401:开始;
[0028] 步骤402:路由器R1查看服务器表,针对每个服务器表项,路由器R1执行下述操作:路由器R1从每个上游接口发送一个发布消息,该发布消息的消息类型值为4,名称和地址分别等于该服务器表项的名称和地址;
[0029] 步骤403:其他路由器从接口x2接收到发布消息后查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,且生命周期大于阈值TH1,则执行步骤408,否则执行步骤404;阈值TH1取值范围为最大生命周期的90%‑95%;
[0030] 步骤404:从接口x2接收到发布消息的路由器查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,则执行步骤405,否则执行步骤406;
[0031] 步骤405:从接口x2接收到发布消息的路由器查看静态表,选择一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,将该静态表项的生命周期设置为最大值,执行步骤407;
[0032] 步骤406:从接口x2接收到发布消息的路由器创建一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,生命周期为最大值;
[0033] 步骤407:从接口x2接收到发布消息的路由器从除了接口x2以外的所有上游接口转发该发布消息,执行步骤403;
[0034] 步骤408:结束。
[0035] 路由器通过上述过程建立静态表,这样节点可以通过静态表从服务器获取数据,从而确保数据通信的正确性和实时性;上述过程通过生命周期来确保静态表的有效性,从而提高了数据通信的成功率。
[0036] 本发明所述方法中,路由器保存一个数据表,每个数据表项包含名称、数值和生命周期;每个路由器保存一个动态表,一个动态表项包含地址、名称和生命周期;一个请求消息包含源地址、目的地址、路由器地址和名称;一个数据消息包含源地址、目的地址、路由器地址、名称和负载;节点N2与路由器R2相连,数据DA1由名称NA1标识;如果路由器R2检测到任何动态表项的名称域值都不等于NA1,节点N2则通过下述过程获取数据DA1:
[0037] 步骤501:开始;
[0038] 步骤502:节点N2构建一个地址,该地址的坐标为路由器R2的坐标,接口ID为0;节点N2发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
[0039] 步骤503:路由器R2从接口z1接收到请求消息,将该请求消息的源地址的接口ID设置为z1;路由器R2选择一个静态表项,该静态表项的名称等于该请求消息的名称,将该请求消息的目的地址设置为该静态表项的地址;路由器R2构建一个地址,该地址的坐标为((x1+x2)/2,(y1+y2)/2),接口ID为0,(x1,y1)为该请求消息源地址的坐标,(x2,y2)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R2创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R2选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
[0040] 步骤504:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤506,否则执行步骤505;
[0041] 步骤505:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤504;
[0042] 步骤506:接收到请求消息的路由器选择一个接口,该接口的接口ID等于该请求消息目的地址的接口ID,从该接口转发该请求消息;服务器接收到该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;
[0043] 步骤507:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤508,否则执行步骤510;
[0044] 步骤508:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
[0045] 步骤509:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0046] 步骤510:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
[0047] 步骤511:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤513,否则执行步骤512;
[0048] 步骤512:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0049] 步骤513:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤515,否则执行步骤514;
[0050] 步骤514:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0051] 步骤515:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
[0052] 步骤516:结束。
[0053] 节点通过上述过程从服务器获取数据,由于上述过程通过邻居表来建立到达服务器的最优路由路径,从而降低了数据通信延迟和代价;此外,由于节点和服务器的地址包含接口ID,从而实现了数据的正确转发,确保了数据通信的成功率。
[0054] 本发明所述方法中,节点N3与路由器R3相连,数据DA1由名称NA1标识;如果路由器R3检测到至少有一个动态表项的名称域值等于NA1,节点N3则通过下述过程获取数据DA1:
[0055] 步骤601:开始;
[0056] 步骤602:节点N3构建一个地址,该地址的坐标为路由器R3的坐标,接口ID为0;节点N3发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
[0057] 步骤603:路由器R3从接口z2接收到请求消息,将该请求消息的源地址的接口ID设置为z2;路由器R3选择所有名称等于该请求消息的动态表项,从这些动态表项中选择一个动态表项,该动态表项的地址的坐标与自己的坐标距离最近,将该请求消息的目的地址设置为该动态表项的地址;路由器R3构建一个地址,该地址的坐标为((x3+x4)/2,(y3+y4)/2),接口ID为0,(x3,y3)为该请求消息源地址的坐标,(x4,y4)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R3创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R3选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
[0058] 步骤604:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤606,否则执行步骤605;
[0059] 步骤605:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤604;
[0060] 步骤606:接收到请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;该路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息;
[0061] 步骤607:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤608,否则执行步骤610;
[0062] 步骤608:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
[0063] 步骤609:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0064] 步骤610:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
[0065] 步骤611:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤613,否则执行步骤612;
[0066] 步骤612:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0067] 步骤613:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤615,否则执行步骤614;
[0068] 步骤614:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0069] 步骤615:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
[0070] 步骤616:结束。
[0071] 节点通过上述过程从距离最近的路由器获取数据,由于上述过程中路由器能够缓存数据并为节点提供数据,因此大幅度降低了数据通信延迟和代价,同时,上述过程通过邻居表来建立到达服务器的最优路由路径,从而降低了数据通信延迟和代价;此外,由于节点和服务器的地址包含接口ID,从而实现了数据的正确转发,确保了数据通信的成功率。
[0072] 有益效果:本发明提供了一种命名数据网络的缓存和路由实现方法,用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。

附图说明

[0073] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0074] 图1为本发明所述的维护节点表流程示意图。
[0075] 图2为本发明所述的维护服务器表流程示意图。
[0076] 图3为本发明所述的维护邻居表流程示意图。
[0077] 图4为本发明所述的维护静态表流程示意图。
[0078] 图5为本发明所述的数据通信流程示意图。
[0079] 图6为本发明所述的数据获取流程示意图。具体实施方式:
[0080] 本发明提供了一种命名数据网络的缓存和路由实现方法,用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。
[0081] 图1为本发明所述的维护节点表流程示意图。所述网络包含节点、服务器和路由器;
[0082] 一个路由器包含两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点或者服务器相连;一个节点或者服务器具有一个接口,与路由器相连;每个接口由接口ID唯一标识,接口ID为大于0的正整数;接口ID为f的接口记为接口f;
[0083] 一种数据由一个名称唯一标识;一个路由器具有唯一的坐标;一个节点、服务器或者路由器由一个地址唯一标识;一个地址包含坐标和接口ID;一个节点或者服务器通过电子地图获取每个路由器的坐标;一个消息由消息类型唯一标识,如下表所示:节点或者服务器预先配置电子地图,电子地图包含每个路由的坐标;
[0084]消息类型的值 消息名称
1 节点消息
2 服务器消息
3 邻居消息
4 发布消息
5 请求消息
6 数据消息
[0085] 一个路由器保存一个节点表,一个节点表项包含地址和生命周期域;一个节点消息包含消息类型和地址;节点N1与路由器R1相连,定期执行下述操作:
[0086] 步骤101:开始;
[0087] 步骤102:节点N1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;节点N1发送一个节点消息,该节点消息的消息类型值为1,地址为创建的地址;
[0088] 步骤103:路由器R1从接口f1接收到该节点消息,将该节点消息的地址域值的接口ID设置为f1;路由器R1查看节点表,如果存在一个节点表项,该节点表项的地址等于该节点消息的地址,则将该节点表项的生命周期设置为最大值;否则,路由器R1创建一个节点表项,该节点表项的地址等于该节点消息的地址,将生命周期设置为最大值;
[0089] 步骤104:结束。
[0090] 节点通过上述过程在相连的路由器建立节点表,这样路由器可以获取相连的节点的信息,由于节点地址包含接口ID,因此路由器通过节点的地址可以实现消息的正确转发,从而实现正确通信。另外,上述过程通过生命周期来确保节点表的有效性,因为也确保了通信的有效性和正确性。
[0091] 图2为本发明所述的维护服务器表流程示意图。路由器保存一个服务器表,一个服务器表项包含地址、名称和生命周期域;一个服务器或者路由器保存一个数据表,一个数据表项包含名称、数据值和生命周期;一个服务器消息包含消息类型、名称和地址;服务器S1与路由器R1相连,能提供数据DA1,数据DA1由名称NA1标识,定期执行下述操作:
[0092] 步骤201:开始;
[0093] 步骤202:服务器S1创建一个数据表项,该数据表项的名称为NA1,数据值为DA1,生命周期为最大值;服务器S1构建一个地址,该地址的坐标为路由器R1的坐标,接口ID为0;服务器S1发送一个服务器消息,该服务器消息的消息类型值为2,名称为NA1,地址为创建的地址;
[0094] 步骤203:路由器R1从接口f2接收到该服务器消息,将该服务器消息的地址域值的接口ID设置为f2;路由器R1查看服务器表,如果存在一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,则将该服务器表项的生命周期设置为最大值;否则,路由器R1创建一个服务器表项,该服务器表项的地址和名称分别等于该服务器消息的地址和名称,将生命周期设置为最大值;
[0095] 步骤204:结束。
[0096] 服务器通过上述过程在相连的路由器建立服务器表,这样路由器可以获取相连的服务器的信息,由于服务器地址包含接口ID,因此路由器通过服务器的地址可以实现消息的正确转发,从而实现正确通信。另外,上述过程通过生命周期来确保服务器表的有效性,因为也确保了通信的有效性和正确性。
[0097] 图3为本发明所述的维护邻居表流程示意图。路由器保存一个邻居表,一个邻居表项包含地址、接口ID和生命周期;一个邻居消息包含消息类型和地址;路由器R1定期执行下述操作:
[0098] 步骤301:开始;
[0099] 步骤302:路由器R1构建一个地址,该地址的坐标等于路由器R1自己的坐标,接口ID等于0,路由器R1从每个上游接口发送一个邻居消息,该邻居消息的消息类型值为3,地址为创建的地址;
[0100] 步骤303:其他路由器从接口x1接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的地址等于该邻居消息的地址,则将该邻居表项的接口ID更新为x1,将生命周期设置为最大值;否则,该路由器创建一个邻居表项,该邻居表项的地址等于该邻居消息的地址,接口ID等于x1,生命周期设置为最大值;
[0101] 步骤304:结束。
[0102] 路由器通过上述过程建立邻居表,这样路由器可以根据邻居表地址域值中的坐标选择下一跳从而构建到达目的路由器的最优路由路径,降低数据通信延迟;邻居表通过接口ID实现消息的正确转发,从而确保了数据通信的正确性。
[0103] 图4为本发明所述的维护静态表流程示意图。路由器保存一个静态表,每个静态表项包含地址、名称和生命周期;发布消息包含消息类型、名称和地址;路由器R1定期执行下述操作:
[0104] 步骤401:开始;
[0105] 步骤402:路由器R1查看服务器表,针对每个服务器表项,路由器R1执行下述操作:路由器R1从每个上游接口发送一个发布消息,该发布消息的消息类型值为4,名称和地址分别等于该服务器表项的名称和地址;
[0106] 步骤403:其他路由器从接口x2接收到发布消息后查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,且生命周期大于阈值TH1,则执行步骤408,否则执行步骤404;阈值TH1取值范围为最大生命周期的90%‑95%;
[0107] 步骤404:从接口x2接收到发布消息的路由器查看静态表,如果存在一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,则执行步骤405,否则执行步骤406;
[0108] 步骤405:从接口x2接收到发布消息的路由器查看静态表,选择一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,将该静态表项的生命周期设置为最大值,执行步骤407;
[0109] 步骤406:从接口x2接收到发布消息的路由器创建一个静态表项,该静态表项的名称和地址分别等于该发布消息的名称和地址,生命周期为最大值;
[0110] 步骤407:从接口x2接收到发布消息的路由器从除了接口x2以外的所有上游接口转发该发布消息,执行步骤403;
[0111] 步骤408:结束。
[0112] 路由器通过上述过程建立静态表,这样节点可以通过静态表从服务器获取数据,从而确保数据通信的正确性和实时性;上述过程通过生命周期来确保静态表的有效性,从而提高了数据通信的成功率。
[0113] 图5为本发明所述的数据通信流程示意图。路由器保存一个数据表,每个数据表项包含名称、数值和生命周期;每个路由器保存一个动态表,一个动态表项包含地址、名称和生命周期;一个请求消息包含源地址、目的地址、路由器地址和名称;一个数据消息包含源地址、目的地址、路由器地址、名称和负载;节点N2与路由器R2相连,数据DA1由名称NA1标识;如果路由器R2检测到任何动态表项的名称域值都不等于NA1,节点N2则通过下述过程获取数据DA1:
[0114] 步骤501:开始;
[0115] 步骤502:节点N2构建一个地址,该地址的坐标为路由器R2的坐标,接口ID为0;节点N2发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
[0116] 步骤503:路由器R2从接口z1接收到请求消息,将该请求消息的源地址的接口ID设置为z1;路由器R2选择一个静态表项,该静态表项的名称等于该请求消息的名称,将该请求消息的目的地址设置为该静态表项的地址;路由器R2构建一个地址,该地址的坐标为((x1+x2)/2,(y1+y2)/2),接口ID为0,(x1,y1)为该请求消息源地址的坐标,(x2,y2)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R2创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R2选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
[0117] 步骤504:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤506,否则执行步骤505;
[0118] 步骤505:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤504;
[0119] 步骤506:接收到请求消息的路由器选择一个接口,该接口的接口ID等于该请求消息目的地址的接口ID,从该接口转发该请求消息;服务器接收到该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;
[0120] 步骤507:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤508,否则执行步骤510;
[0121] 步骤508:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
[0122] 步骤509:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0123] 步骤510:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
[0124] 步骤511:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤513,否则执行步骤512;
[0125] 步骤512:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0126] 步骤513:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤515,否则执行步骤514;
[0127] 步骤514:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤507;
[0128] 步骤515:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
[0129] 步骤516:结束。
[0130] 节点通过上述过程从服务器获取数据,由于上述过程通过邻居表来建立到达服务器的最优路由路径,从而降低了数据通信延迟和代价;此外,由于节点和服务器的地址包含接口ID,从而实现了数据的正确转发,确保了数据通信的成功率。
[0131] 图6为本发明所述的数据获取流程示意图。节点N3与路由器R3相连,数据DA1由名称NA1标识;如果路由器R3检测到至少有一个动态表项的名称域值等于NA1,节点N3则通过下述过程获取数据DA1:
[0132] 步骤601:开始;
[0133] 步骤602:节点N3构建一个地址,该地址的坐标为路由器R3的坐标,接口ID为0;节点N3发送一个请求消息,该请求消息的消息类型值为5,源地址为创建的地址,目的地址和路由器地址为空,名称为NA1;
[0134] 步骤603:路由器R3从接口z2接收到请求消息,将该请求消息的源地址的接口ID设置为z2;路由器R3选择所有名称等于该请求消息的动态表项,从这些动态表项中选择一个动态表项,该动态表项的地址的坐标与自己的坐标距离最近,将该请求消息的目的地址设置为该动态表项的地址;路由器R3构建一个地址,该地址的坐标为((x3+x4)/2,(y3+y4)/2),接口ID为0,(x3,y3)为该请求消息源地址的坐标,(x4,y4)为该请求消息目的地址的坐标,将该请求消息的路由器地址设置为构建的地址;路由器R3创建一个动态表项,该动态表项的名称为该请求消息的名称,地址为该请求消息的路由器地址,生命周期为最大值;路由器R3选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息;
[0135] 步骤604:路由器接收到请求消息后查看动态表;如果存在一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该请求消息的名称且地址等于该请求消息的路由器地址,将该动态表项的生命周期设置为最大值;如果该路由器的坐标等于该请求消息的目的地址的坐标,则执行步骤606,否则执行步骤605;
[0136] 步骤605:接收到请求消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该请求消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤604;
[0137] 步骤606:接收到请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个数据消息,该数据消息的消息类型值为6,源地址等于该请求消息的目的地址,目的地址等于该请求消息的源地址,路由器地址和名称分别等于该请求消息的路由器地址和名称,负载为该数据表项的数据值;该路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息;
[0138] 步骤607:路由器接收到该数据消息,如果该路由器的坐标等于该数据消息路由器地址的坐标,则执行步骤608,否则执行步骤610;
[0139] 步骤608:接收到该数据消息的路由器将该数据消息的路由器地址设置为0并查看数据表;如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值;否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数据值等于该数据消息负载中的数据,生命周期设置为最大值;
[0140] 步骤609:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0141] 步骤610:接收到该数据消息的路由器查看动态表,如果存在一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,则将该动态表项的生命周期设置为最大值;否则该路由器创建一个动态表项,该动态表项的名称等于该数据消息的名称且地址等于该数据消息的路由器地址,将该动态表项的生命周期设置为最大值;
[0142] 步骤611:接收到该数据消息的路由器判断该数据消息的路由器地址是否为0,如果是,则执行步骤613,否则执行步骤612;
[0143] 步骤612:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息路由器地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0144] 步骤613:接收到该数据消息的路由器判断自己的坐标是否等于该数据消息的目的地址的坐标,如果是,则执行步骤615,否则执行步骤614;
[0145] 步骤614:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址的坐标与该数据消息目的地址的坐标距离最近,从该邻居表项的接口ID所标识的接口发送该数据消息,执行步骤607;
[0146] 步骤615:接收到数据消息的路由器选择一个接口,该接口的接口ID等于该数据消息目的地址的接口ID,从该接口转发该数据消息;节点N2接收到该数据消息后,保存该数据消息负载中的数据;
[0147] 步骤616:结束。
[0148] 节点通过上述过程从距离最近的路由器获取数据,由于上述过程中路由器能够缓存数据并为节点提供数据,因此大幅度降低了数据通信延迟和代价,同时,上述过程通过邻居表来建立到达服务器的最优路由路径,从而降低了数据通信延迟和代价;此外,由于节点和服务器的地址包含接口ID,从而实现了数据的正确转发,确保了数据通信的成功率。
[0149] 实施例1
[0150] 基于表1的仿真参数,本实施例模拟了本发明中的一种命名数据网络的缓存和路由实现方法,该实现方法的性能分析如下:当节点移动速度增加时,网络性能下降,数据通信成功率有所降低,当节点移动速度降低时,网络性能增强,数据通信成功率有所提高,数据获取的平均成功率为98.37%。
[0151] 表1仿真参数
[0152]
[0153]
[0154] 本发明提供了一种命名数据网络的缓存和路由实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号