[0084] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0085] 图1为本发明所述的注册流程示意图。
[0086] 图2为本发明所述的建立邻居表流程示意图。
[0087] 图3为本发明所述的创建邻居表流程示意图。
[0088] 图4为本发明所述的建立路由流程示意图。
[0089] 图5为本发明所述的更新流程示意图。
[0090] 图6为本发明所述的数据通信流程示意图。具体实施方式:
[0091] 本发明提供了一种以数据为中心的新一代网络实现方法,用户通过本发明所提供的一种以数据为中心的新一代网络实现方法能够快速获取数据,从而有效缩短了获取服务数据的延迟和代价,提高数据通信成功率,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
[0092] 图1为本发明所述的注册流程示意图。所述网络包括节点和路由器;路由器分为接入路由器和骨干路由器;
[0093] 一种类型的数据由名称唯一定义,一种类型的数据能够有两种以上的版本,每种版本由版本号标识;如果一个骨干路由器有权限产生和更新一种或者两种以上的类型的数据,那么该骨干路由器称为数据路由器;一种类型的数据只能被一个数据路由器产生和更新,一个数据路由器能够有权限产生和更新两种以上的类型的数据;
[0094] 一个节点或者路由器具有一个网络唯一性的硬件ID,例如MAC地址;如果一个节点有权限获取一种类型的数据,该节点则成为该数据的用户节点;一个节点能够是两种以上的类型数据的用户节点;
[0095] 骨干路由器配置两个以上的接口,每个接口与一个路由器相连;接入路由器配置两个以上的接口,这些接口分为上游接口和下游接口,上游接口与路由器相连,下游接口与节点相连;节点配置一个接口,与接入路由器相连;一个接口由接口ID唯一标识,接口ID为x的接口能够记为接口x;消息由消息类型唯一定义,如下表所示:
[0096]消息类型的值 消息名称
1 注册消息
2 邻居消息
3 路径消息
4 更新消息
5 推送消息
6 请求消息
7 响应消息
[0097] 接入路由器保存一个节点表,每个节点表项包含硬件ID、接口ID、名称、版本号和生命周期;注册消息包含消息类型,名称集合和硬件ID;节点ND1有权限获取两种以上的类型的数据,所述数据的名称构成名称集合NS1;节点ND1与接入路由器AR1相连,定期执行下述注册操作:
[0098] 步骤101:开始;
[0099] 步骤102:节点ND1发送注册消息,该注册消息的消息类型值为1,名称集合为NS1,硬件ID为节点ND1的硬件ID;
[0100] 步骤103:接入路由器AR1从接口f1接收到注册消息,对于该注册消息名称集合中的每个名称NA0,接入路由器AR1执行下述操作:如果接入路由器AR1保存有一个节点表项,该节点表项的硬件ID等于该注册消息的硬件ID且名称等于NA0,接入路由器AR1则将该节点表项的接口ID更新为f1,将生命周期设置为最大值;否则接入路由器AR1创建一个节点表项,该节点表项的硬件ID等于该注册消息的硬件ID,名称等于NA0,接口ID为f1,将生命周期设置为最大值,版本号为0;
[0101] 步骤104:结束。
[0102] 节点通过上述过程向接入路由器进行注册操作,这样,接入路由器能够获取该节点的实时信息,接入路由器通过节点表能够掌握与自己链接的节点是哪些数据的用户节点,以及与这些节点链接的接口ID从而实现正确的消息转发。接入路由器通过生命周期来确保邻居节点信息的实时性和正确性,从而确保了数据通信的正确性和实时性。
[0103] 图2为本发明所述的建立邻居表流程示意图。一个路由器保存一个邻居表,一个邻居表项包含硬件ID、接口ID和生命周期;邻居消息包含消息类型和硬件ID;骨干路由器BR1定期执行下述操作:
[0104] 步骤201:开始;
[0105] 步骤202:骨干路由器BR1从每个接口发送邻居消息,该邻居消息的消息类型值为2,硬件ID等于骨干路由器BR1的硬件ID;
[0106] 步骤203:邻居路由器从接口f2接收到邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该邻居消息的硬件ID,该邻居路由器则将该邻居表项的接口ID更新为f2,将生命周期设置为最大值;否则,邻居路由器创建一个邻居表项,该邻居表项的硬件ID等于该邻居消息的硬件ID,接口ID等于f2,将生命周期设置为最大值;
[0107] 步骤204:结束。
[0108] 图3为本发明所述的创建邻居表流程示意图。接入路由器AR1定期执行下述操作:
[0109] 步骤301:开始;
[0110] 步骤302:接入路由器AR1从每个上游接口发送邻居消息,该邻居消息的消息类型值为2,硬件ID等于接入路由器AR1的硬件ID;
[0111] 步骤303:邻居路由器从接口f3接收到邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该邻居消息的硬件ID,该邻居路由器则将该邻居表项的接口ID更新为f3,将生命周期设置为最大值;否则,邻居路由器创建一个邻居表项,该邻居表项的硬件ID等于该邻居消息的硬件ID,接口ID等于f3,将生命周期设置为最大值;
[0112] 步骤304:结束。
[0113] 路由器通过上述过程建立邻居表,从而获取每个邻居路由器的硬件ID以及相连的接口信息,这样,路由器通过邻居路由器的硬件ID能够获取相应的接口ID并将消息转发给该邻居路由器,从而实现正确的转发操作;由于邻居表通过生命周期来控制每个邻居路由器信息的正确性和实时性,从而确保了转发操作的正确性和实时性。
[0114] 图4为本发明所述的建立路由流程示意图。一个数据路由器保存一个用户表,一个用户表项包含名称、硬件ID集合和生命周期;
[0115] 接入路由器保存一个转发表,一个转发表项包含名称、硬件ID集合和生命周期;
[0116] 骨干路由器保存一个消息表,一个消息表项包含序列号和生命周期;
[0117] 数据路由器到达一个接入路由器的路径由硬件ID集合标识,该硬件ID集合由该路径所含的路由器的硬件ID构成;数据路由器DR1有权限产生和更新数据DA1,数据DA1由名称NA1唯一标识;
[0118] 路径消息包含消息类型、硬件ID集合、名称和序列号;
[0119] 更新消息包含消息类型、硬件ID集合、名称和负载;
[0120] 数据路由器DR1的硬件ID为HID1,数据路由器DR1定期执行下述操作:
[0121] 步骤401:开始;
[0122] 步骤402:数据路由器DR1产生一个随机数,从每个接口发送一个路径消息,该路径消息的消息类型值为3,硬件ID集合为{HID1},名称为NA1,序列号为产生的随机数;
[0123] 步骤403:其他路由器从接口x1接收到路径消息,如果该路由器为骨干路由器,则执行步骤404,否则执行步骤406;
[0124] 步骤404:从接口x1接收到路径消息的路由器查看消息表,如果存在一个消息表项,该消息表项的序列号等于该路径消息的序列号,则执行步骤412,否则执行步骤405;
[0125] 步骤405:从接口x1接收到路径消息的路由器将自己的硬件ID加入到该路径消息的硬件ID集合中并作为第一个元素,创建一个消息表项,该消息表项的序列号等于该路径消息的序列号,生命周期设置为最大值,从除了接口x1以外的所有接口转发该路径消息,执行步骤403;
[0126] 步骤406:从接口x1接收到路径消息的路由器查看转发表,如果存在一个转发表项,该转发表项的名称等于该路径消息的名称,且生命周期大于阈值TH1,阈值TH1等于最大生命周期的70%,则执行步骤412,否则执行步骤407;
[0127] 步骤407:从接口x1接收到路径消息的路由器查看转发表,如果存在一个转发表项,该转发表项的名称等于该路径消息的名称,则执行步骤408,否则执行步骤409;
[0128] 步骤408:从接口x1接收到路径消息的路由器选择一个转发表项,该转发表项的名称等于该路径消息的名称,将该转发表项的硬件ID集合设置为该路径消息的硬件ID集合,将生命周期设置为最大值,执行步骤410;
[0129] 步骤409:从接口x1接收到路径消息的路由器创建一个转发表项,该转发表项的名称等于该路径消息的名称,硬件ID集合等于该路径消息的硬件ID集合,将生命周期设置为最大值;
[0130] 步骤410:从接口x1接收到路径消息的路由器将自己的硬件ID加入到路径消息的硬件ID集合中并作为第一个元素,从除了接口x1以外的每个上游接口转发该路径消息;该路由器查看节点表,如果存在一个节点表项,该节点表项的名称等于该路径消息的名称,则执行步骤411,否则执行步骤403;
[0131] 步骤411:从接口x1接收到路径消息的路由器选择一个转发表项,该转发表项的名称等于该路径消息的名称,设置一个硬件ID集合变量hs1,变量hs1的值等于该转发表项的硬件ID集合,将路由器自己的硬件ID加入到变量hs1并作为第一个元素,从变量hs1中删除最后一个元素;该路由器创建一个更新消息,该更新消息的消息类型值为4,硬件ID集合等于该转发表项的硬件ID集合,名称等于该转发表项的名称,负载为参数hs1;该路由器选择一个邻居表项,该邻居表项的硬件ID等于该更新消息的硬件ID集合的第一个元素,从该更新消息的硬件ID集合中删除第一个元素,从该邻居表项的接口ID所标识的接口发送该更新消息,执行步骤403;
[0132] 步骤412:路由器接收到更新消息,如果该更新消息的硬件ID集合为空,则执行步骤414,否则执行步骤413;
[0133] 步骤413:接收到更新消息的路由器选择一个邻居表项,该邻居表项的硬件ID等于该更新消息的硬件ID集合的第一个元素,从该更新消息的硬件ID集合中删除第一个元素,从该邻居表项的接口ID所标识的接口发送该更新消息,执行步骤412;
[0134] 步骤414:接收到更新消息的路由器查看用户表,如果存在一个用户表项,该用户表项的名称等于该更新消息的名称,且硬件ID集合的第一个元素等于该更新消息负载中的变量hs1中的第一个元素,则将该用户表项的硬件ID集合更新为该更新消息负载中的变量hs1,将生命周期设置为最大值;否则该路由器创建一个用户表项,该用户表项的名称等于该更新消息的名称,硬件ID集合等于该更新消息负载中的变量hs1,将生命周期设置为最大值;
[0135] 步骤415:结束。
[0136] 数据路由器通过上述过程建立自己到达接入路由器的路由路径,这样,接入路由器无需建立路由即可实现与数据路由器的通信,从而降低了数据延迟和代价;同时,接入路由器通过上述过程建立自己到达数据路由器的路由路径,这样,数据路由器能够无需路由建立即可向自己发布消息,从而进一步降低了数据通信延迟和代价。
[0137] 图5为本发明所述的更新流程示意图。一个路由器保存一个数据表,一个数据表项包含名称、数据值和生命周期;数据路由器DR1有权限产生和更新数据DA1,数据DA1由名称NA1唯一标识;一个推动消息由消息类型、名称、版本号和硬件ID集合构成;如果数据路由器DR1产生了数据DA1,其版本号为V2,数据路由器DR1则执行下述操作:
[0138] 步骤501:开始;
[0139] 步骤502:数据路由器DR1查看数据表,如果存在一个数据表项,该数据表项的名称为NA1,则将该数据表项的版本号更新为V2,将数据值更新为数据DA1,将生命周期设置为最大值;否则,数据路由器DR1创建一个数据表项,该数据表项的名称为NA1,版本号为V2,数据值为数据DA1,将生命周期设置为最大值;
[0140] 步骤503:数据路由器DR1选择所有名称等于NA1的用户表项,针对每个用户表项,数据路由器DR1执行下述操作:创建一个推送消息,该推送消息的消息类型值为5,名称为NA1,版本号为V2,硬件ID集合为该用户表项的硬件ID集合,数据路由器DR1选择一个邻居表项,该邻居表项的硬件ID等于该推送消息的硬件ID集合的最后一个元素,从该推送消息的硬件ID集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口发送该推送消息;
[0141] 步骤504:路由器接收到推送消息,如果该路由器存在一个数据表项,该数据表项的名称等于该推送消息的名称但是版本号不等于该推送消息的版本号,则执行步骤505,否则执行步骤506;
[0142] 步骤505:接收到推送消息的路由器删除一个数据表项,该数据表项的名称等于该推送消息的名称但是版本号不等于该推送消息的版本号;
[0143] 步骤506:如果该推送消息的硬件ID集合为空,则执行步骤508,否则执行步骤507;
[0144] 步骤507:接收到推送消息的路由器选择一个邻居表项,该邻居表项的硬件ID等于该推送消息的硬件ID集合的最后一个元素,从该推送消息的硬件ID集合中删除第一个元素,从该邻居表项的接口ID所标识的接口发送该推送消息,执行步骤506;
[0145] 步骤508:接收到推送消息的路由器查看节点表,选择所有名称等于该推送消息的名称的节点表项,针对每个选中的节点表项,该路由器将该节点表项的版本号更新为该推送消息的版本号;
[0146] 步骤509:结束。
[0147] 数据路由器通过上述过程最新的版本号,这样节点能够获取最新版本号的数据,从而确保数据的实时性和有效性,由于上述推送过程无需建立路由,且没有通过广播方式推送,因此大幅度降低了数据路由器推送版本号的代价和延迟。
[0148] 图6为本发明所述的数据通信流程示意图。节点ND1有权限获取数据DA1,数据DA1由名称NA1标识;
[0149] 请求消息包含消息类型、版本号、名称、硬件ID集合和负载;
[0150] 响应消息包含消息类型、版本号、名称、路由器硬件ID、硬件ID集合和负载;
[0151] 节点ND1的硬件ID为HID2,与接入路由器AR1相连,通过下述过程获取数据DA1:
[0152] 步骤601:开始;
[0153] 步骤602:节点ND1设置一个硬件ID变量hs2,该变量的值为{HID2},节点ND1发送一个请求消息,该请求消息的消息类型值为6,版本号为0,名称为NA1,硬件ID集合为空,负载为变量hs2;
[0154] 步骤603:接入路由器AR1接收到请求消息后选择一个节点表项,该节点表项的名称等于该请求消息的名称,接入路由器AR1选择一个转发表项,该转发表项的名称等于该请求消息的名称;接入路由器AR1将该请求消息的版本号更新为该节点表项的版本号,将该请求消息的硬件ID集合设置为该转发表项的硬件ID集合;如果接入路由器AR1保存一个数据表项,该数据表项的名称和版本号分别等于该请求消息的名称和版本号,则执行步骤604,否则执行步骤605;
[0155] 步骤604:接入路由器AR1选择一个数据表项,该数据表项的名称和版本号分别等于该请求消息的名称和版本号,将该数据表项的生命周期设置为最大值,接入路由器AR1构建一个响应消息,该响应消息的消息类型值为7,版本号和名称分别等于该请求消息的版本号和名称,路由器硬件ID为空,硬件ID集合等于该请求消息负载中的变量hs2,负载为该数据表项的数据值;接入路由器AR1选择一个节点表项,该节点表项的硬件ID等于该响应消息的硬件ID集合的最后一个元素,从该响应消息的硬件ID集合中删除最后一个元素,从该节点表项的接口ID所标识的接口发送该响应消息,执行步骤609;
[0156] 步骤605:接入路由器AR1将自己的硬件ID加入到该请求消息负载中的变量hs2中并作为最后一个元素,选择一个邻居表项,该邻居表项的硬件ID等于该请求消息的硬件ID集合的第一个元素,从该请求消息的硬件ID集合中删除第一个元素,从该邻居表项的接口ID所标识的接口发送该请求消息;
[0157] 步骤606:其他路由器接收到该请求消息,如果该路由器保存一个数据表项,该数据表项的名称和版本号分别等于该请求消息的名称和版本号,则执行步骤607,否则执行步骤608;
[0158] 步骤607:接收到该请求消息的路由器选择一个数据表项,该数据表项的名称和版本号分别等于该请求消息的名称和版本号,接收到该请求消息的路由器将该数据表项的生命周期设置为最大值,构建一个响应消息,该响应消息的消息类型值为7,版本号和名称分别等于该请求消息的版本号和名称,路由器硬件ID等于该请求消息负载中变量hs2中的第元素,其中,z为变量hs2的元素个数,硬件ID集合等于该请求消息负载中的变量hs2,负载为该数据表项的数据值;该路由器选择一个邻居表项,该邻居表项的硬件ID等于该响应消息的硬件ID集合的最后一个元素,从该响应消息的硬件ID集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口发送该响应消息,执行步骤609;
[0159] 步骤608:接收到该请求消息的路由器将自己的硬件ID加入到该请求消息负载中的变量hs2中并作为最后一个元素,选择一个邻居表项,该邻居表项的硬件ID等于该请求消息的硬件ID集合的第一个元素,从该请求消息的硬件ID集合中删除第一个元素,从该邻居表项的接口ID所标识的接口发送该请求消息,执行步骤606;
[0160] 步骤609:如果是节点接收到该响应消息,则执行步骤615,否则执行步骤610;
[0161] 步骤610:路由器接收到响应消息后判断自己的硬件ID是否等于该响应消息的路由器硬件ID,如果等于,则执行步骤611,否则执行步骤612;
[0162] 步骤611:接收到响应消息的路由器创建一个数据表项,该数据表项的名称和版本号分别等于该响应消息的名称和版本号,数据值等于该响应消息的负载中的数据值,生命周期设置为最大值;
[0163] 步骤612:接收到响应消息的路由器判断该响应消息的硬件ID集合中是否只存在一个元素,如果是,则执行步骤613,否则执行步骤614;
[0164] 步骤613:接收到响应消息的路由器选择一个节点表项,该节点表项的硬件ID等于该响应消息的硬件ID集合的唯一一个元素,从该响应消息的硬件ID集合中删除该元素,从该节点表项的接口ID所标识的接口发送该响应消息,执行步骤609;
[0165] 步骤614:接收到响应消息的路由器选择一个邻居表项,该邻居表项的硬件ID等于该响应消息的硬件ID集合的最后一个元素,从该响应消息的硬件ID集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口发送该响应消息,执行步骤609;
[0166] 步骤615:节点接收到该响应消息后,保存响应消息负载中的数据;
[0167] 步骤616:结束。
[0168] 节点通过上述过程获取所需数据,由于上述过程中,中间路由器被选择来保存响应数据,这样,节点能够从中间路由器获取数据从而大幅度降低了数据通信延迟,同时也节省了路由器用于缓存数据的存储空间,此外上述通信过程无需建立路由,因此进一步降低了数据通信延迟和代价。
[0169] 实施例1
[0170] 基于表1的仿真参数,本实施例模拟了本发明中的一种以数据为中心的新一代网络实现方法,性能分析如下:当传输的数据量增加的情况下,数据通信延迟随之增加,当传输的数据量减少的情况下,数据通信延迟随之下降。数据获取的平均代价为1057ms。
[0171] 表1仿真参数
[0172]
[0173] 本发明提供了一种以数据为中心的新一代网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。