[0079] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0080] 图1为本发明所述的构建骨干表流程示意图。
[0081] 图2为本发明所述的构建末端表流程示意图。
[0082] 图3为本发明所述的数据通信流程示意图。
[0083] 图4为本发明所述的获取数据流程示意图。具体实施方式:
[0084] 本发明提供了一种新一代数据网络通信方法,在本发明中,节点通过能够快速获取数据,从而大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
[0085] 图1为本发明所述的构建骨干表流程示意图。所述网络包括一个骨干网和两个以上的末端网,一个骨干网包括两个以上的数据路由器,一个末端网包括一个边界路由器、两个以上的接入路由器和移动节点构成;一个数据路由器有T1个接口,T1为大于1的正整数,每个接口由接口ID j1唯一标识,j1取值1~T1;边界路由器和接入路由器各自包括一个上游接口和T2个下游接口,T2为大于1的正整数,上游接口由接口ID T2+1唯一标识,每个下游接口由接口ID j2唯一标识,j2取值1~T2;一个移动节点具有一个接口;
[0086] 边界路由器的上游接口与一个数据路由器的一个接口链路相连,边界路由器的每个下游接口与一个接入路由器的上游接口链路相连;一个接入路由器的上游接口与一个接入路由器或者边界路由器的下游接口链路相连,一个接入路由器的每个下游接口与一个接入路由器的上游接口或者一个移动节点的接口链路相连;
[0087] 一种数据由一个名称唯一标识,一个名称由名称前缀和名称ID唯一标识;一个末端网或者一个末端网中的边界路由器由一个名称前缀唯一标识,该名称前缀预先设置;
[0088] 一个消息包含名称域、源接口ID集合、骨干接口ID集合、目的接口ID集合、消息类型和负载;
[0089] 消息类型如下表所示:
[0090]消息名称 消息类型值
发布消息 1
数据发布消息 2
请求消息 3
响应消息 4
[0091] 每个边界路由器保存一个骨干表和一个末端表,一个骨干表项由名称前缀域、接口ID集合域和生命周期域构成;一个末端表由名称域、接口ID集合域以及生命周期域构成;
[0092] 边界路由器ER1由名称前缀NP1唯一标识,边界路由器ER1启动后,定期执行下述操作创建骨干表:
[0093] 步骤101:开始;
[0094] 步骤102:边界路由器ER1从上游接口发送一条发布消息,该发布消息中,名称域的名称前缀为NP1,名称ID为0,源接口ID集合域值为空,骨干接口ID集合为空,目的接口ID集合为空,消息类型为1,负载为空;
[0095] 步骤103:如果数据路由器接收到发布消息,则执行步骤104,否则执行步骤108;
[0096] 步骤104:数据路由器从接口p1接收到发布消息后,将接口p1添加到该发布消息的源接口ID集合中,接口p1作为源接口ID集合的最后一个元素;该数据路由器查看骨干表,如果存在一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀且接口ID集合域值等于该发布消息的源接口ID集合,则执行步骤105,否则执行步骤106;
[0097] 步骤105:接收到发布消息的数据路由器选择一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀,且接口ID集合域值等于该发布消息的源接口ID集合,将该骨干表项的生命周期设置为最大值,执行步骤107;
[0098] 步骤106:接收到发布消息的数据路由器创建一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀,接口ID集合域值等于该发布消息的源接口ID集合,生命周期设置为最大值;
[0099] 步骤107:接收到发布消息的数据路由器从除了p1以外的每个接口转发该发布消息,执行步骤103;
[0100] 步骤108:边界路由器从自己的接口p2接收到发布消息后,将接口p2添加到该发布消息的源接口ID集合中,接口p2作为源接口ID集合的最后一个元素;该边界路由器查看骨干表,如果存在一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀,且接口ID集合域值等于该发布消息的源接口ID集合,则执行步骤109,否则执行步骤110;
[0101] 步骤109:接收到发布消息的边界路由器选择一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀,且接口ID集合域值等于该发布消息的源接口ID集合,将该骨干表项的生命周期设置为最大值,执行步骤111;
[0102] 步骤110:接收到发布消息的边界路由器创建一个骨干表项,该骨干表项的名称前缀域值等于接收到的发布消息名称中的名称前缀,接口ID集合域值等于该发布消息的源接口ID集合,生命周期设置为最大值;
[0103] 步骤111:结束。
[0104] 图2为本发明所述的构建末端表流程示意图。在数据C1由名称NA1唯一标识,名称NA1由名称前缀NP1和名称ID NID1构成的条件下,如果节点N1能够提供数据C1,它则定期执行下述操作创建末端表:
[0105] 步骤201:开始;
[0106] 步骤202:节点N1发送一条数据发布消息,该数据发布消息中,名称域为NA1,源接口ID集合域值为空,骨干接口ID集合为空,目的接口ID集合为空,消息类型为2,负载为空;
[0107] 步骤203:如果接入路由器接收到数据发布消息,则执行步骤204,否则执行步骤208;
[0108] 步骤204:接入路由器从自己的接口p3接收到数据发布消息后,将接口p3添加到该数据发布消息的源接口ID集合中,接口p3作为源接口ID集合的最后一个元素;该接入路由器查看末端表,如果存在一个末端表项,该末端表项的名称域值等于接收到的数据发布消息名称中的名称,且接口ID集合域值等于该数据发布消息的源接口ID集合,则执行步骤205,否则执行步骤206;
[0109] 步骤205:接收到数据发布消息的接入路由器选择一个末端表项,该末端表项的名称域值等于接收到的数据发布消息的名称,且接口ID集合域值等于该数据发布消息的源接口ID集合,将该末端表项的生命周期设置为最大值,执行步骤207;
[0110] 步骤206:接收到数据发布消息的接入路由器创建一个末端表项,该末端表项的名称域值等于接收到的数据发布消息的名称,接口ID集合域值等于该数据发布消息的源接口ID集合,生命周期设置为最大值;
[0111] 步骤207:接收到数据发布消息的接入路由器从除了接口p3以外的每个接口转发该数据发布消息,执行步骤203;
[0112] 步骤208:边界路由器从自己的下游接口p4接收到数据发布消息后,将接口p4添加到该数据发布消息的源接口ID集合中,接口p4作为源接口ID集合的最后一个元素;该边界路由器查看末端表,如果存在一个末端表项,该末端表项的名称域值等于接收到的数据发布消息名称中的名称,且接口ID集合域值等于该数据发布消息的源接口ID集合,则执行步骤209,否则执行步骤210;
[0113] 步骤209:接收到数据发布消息的边界路由器选择一个末端表项,该末端表项的名称域值等于接收到的数据发布消息的名称,且接口ID集合域值等于该数据发布消息的源接口ID集合,将该末端表项的生命周期设置为最大值,执行步骤211;
[0114] 步骤210:接收到数据发布消息的边界路由器创建一个末端表项,该末端表项的名称域值等于接收到的数据发布消息的名称,接口ID集合域值等于该数据发布消息的源接口ID集合,生命周期设置为最大值;
[0115] 步骤211:结束。
[0116] 图3为本发明所述的数据通信流程示意图。在数据C1由名称NA1唯一标识,名称NA1由名称前缀NP1和名称ID NID1构成,节点N1位于末端网络内,该末端网络的边界路由器为ER1的条件下,如果边界路由器ER1存在一个末端表项E1,该末端表项E1的名字域为NA1,则节点N1通过下述过程获取数据C1:
[0117] 步骤301:开始;
[0118] 步骤302:节点N1发送请求消息,该请求消息中,名称域值为NA1,源接口ID集合域为空,骨干接口ID集合域为空,目的接口ID集合域为空,消息类型为3,负载为空;
[0119] 步骤303:如果接入路由器接收到该请求消息,则执行步骤304,否则执行步骤305;
[0120] 步骤304:接入路由器从自己的下游接口x1接收到请求消息,将接口x1加入到该请求消息源接口ID集合中,接口x1作为源接口ID集合的最后一个元素,从上游接口转发该请求消息,执行步骤303;
[0121] 步骤305:边界路由器从自己的下游接口x2接收到请求消息,将接口x2加入到该请求消息源接口ID集合中,接口x2作为源接口ID集合的最后一个元素;该边界路由器选择一个末端表项,该末端表项的名称域等于该请求消息的名称域,将该请求消息的目的接口ID集合更新为该末端表项的接口ID集合;该边界路由器保存该请求消息目的接口ID集合中的最后一个接口ID L1,从该请求消息目的接口ID集合中删除接口L1,从接口L1转发该请求消息;
[0122] 步骤306:如果接入路由器接收到该请求消息,则执行步骤307,否则执行步骤308;
[0123] 步骤307:接入路由器接收到该请求消息后,保存该请求消息目的接口ID集合中的最后一个接口ID L2,从该请求消息目的接口ID集合中删除接口L2,从接口L2转发该请求消息,执行步骤306;
[0124] 步骤308:节点接收到请求消息后,发送一条响应消息,该响应消息中,名称域值等于接收到的请求消息的名称,源接口ID集合为空,骨干接口ID集合为空,目的接口ID集合等于接收到的请求消息的源接口ID集合,消息类型为4,负载为接收到的请求消息的名称所标识的数据;
[0125] 步骤309:如果接入路由器接收到该响应消息,则执行步骤310,否则执行步骤311;
[0126] 步骤310:接入路由器从下游接口接收到响应消息后,从上游接口转发该响应消息,执行步骤309;
[0127] 步骤311:边界路由器接收到响应消息后,保存该响应消息目的接口ID集合中的最后一个接口ID L3,从该响应消息目的接口ID集合中删除接口L3,从接口L3转发该响应消息;
[0128] 步骤312:如果接入路由器接收到该响应消息,则执行步骤313,否则执行步骤314;
[0129] 步骤313:接入路由器接收到该响应消息后,保存该响应消息目的接口ID集合中的最后一个接口ID L4,从该响应消息目的接口ID集合中删除接口L4,从接口L4转发该响应消息,执行步骤312;
[0130] 步骤314:节点N1接收到响应消息后,保存响应消息中的数据;
[0131] 步骤315:结束。
[0132] 图4为本发明所述的获取数据流程示意图。在数据C2由名称NA2唯一标识,名称NA2由名称前缀NP2和名称ID NID2构成,节点N1位于末端网络内,该末端网络的边界路由器为ER1的条件下,如果边界路由器ER1的末端表中不存在名字域为NA2的末端表项,则节点N1通过下述过程获取数据C2:
[0133] 步骤401:开始;
[0134] 步骤402:节点N1发送请求消息,该请求消息中,名称域值为NA1,源接口ID集合域为空,骨干接口ID集合域为空,目的接口ID集合域为空,消息类型为3,负载为空;
[0135] 步骤403:如果接入路由器接收到该请求消息,则执行步骤404,否则执行步骤405;
[0136] 步骤404:接入路由器从自己的下游接口y1接收到请求消息,将接口y1加入到该请求消息源接口ID集合中,接口y1作为源接口ID集合的最后一个元素,从上游接口转发该请求消息,执行步骤403;
[0137] 步骤405:边界路由器从自己的下游接口y2接收到请求消息,将接口y2加入到该请求消息源接口ID集合中,接口x2作为源接口ID集合的最后一个元素;该边界路由器选择一个骨干表项,该骨干表项的名称前缀域等于该请求消息名称中的名称前缀,将该请求消息的目的接口ID集合更新为该骨干表项的接口ID集合;该边界路由器保存该请求消息目的接口ID集合中的最后一个接口ID F1,从该请求消息目的接口ID集合中删除接口F1,从接口F1转发该请求消息;
[0138] 步骤406:如果边界路由器接收到该请求消息,则执行步骤408,否则执行步骤407;
[0139] 步骤407:数据路由器从自己的接口y3接收到请求消息后,将接口y3加入到该请求消息骨干接口ID集合中,接口y3作为源接口ID集合的最后一个元素;该数据路由器保存该请求消息目的接口ID集合中的最后一个接口ID F2,从该请求消息目的接口ID集合中删除接口F2,从接口F2转发该请求消息,执行步骤406;
[0140] 步骤408:边界路由器从自己的接口y4接收到请求消息,将接口y4加入到该请求消息骨干接口ID集合中,接口y4作为骨干接口ID集合的最后一个元素;该边界路由器选择一个末端表项,该末端表项的名称域等于该请求消息的名称,将该请求消息的目的接口ID集合更新为该末端表项的接口ID集合;该边界路由器保存该请求消息目的接口ID集合中的最后一个接口ID F3,从该请求消息目的接口ID集合中删除接口F3,从接口F3转发该请求消息;
[0141] 步骤409:如果接入路由器接收到该请求消息,则执行步骤410,否则执行步骤411;
[0142] 步骤410:接入路由器接收到该请求消息后,保存该请求消息目的接口ID集合中的最后一个接口ID F4,从该请求消息目的接口ID集合中删除接口F4,从接口F4转发该请求消息,执行步骤409;
[0143] 步骤411:节点接收到请求消息后,发送一条响应消息,该响应消息中,名称域值等于接收到的请求消息的名称,源接口ID集合为空,骨干接口ID集合等于接收到的请求消息的骨干接口ID集合,目的接口ID集合等于接收到的请求消息的源接口ID集合,消息类型为4,负载为接收到的请求消息的名称所标识的数据;
[0144] 步骤412:如果接入路由器接收到该响应消息,则执行步骤413,否则执行步骤414;
[0145] 步骤413:接入路由器从下游接口接收到响应消息后,从上游接口转发该响应消息,执行步骤412;
[0146] 步骤414:边界路由器接收到响应消息后,保存该响应消息骨干接口ID集合中的最后一个接口ID F5,从该响应消息骨干接口ID集合中删除接口F5,从接口F5转发该响应消息;
[0147] 步骤415:如果边界路由器接收到响应消息,则执行步骤417,否则执行步骤416;
[0148] 步骤416:数据路由器接收到响应消息后,保存该响应消息骨干接口ID集合中的最后一个接口ID F6,从该响应消息骨干接口ID集合中删除接口F6,从接口F6转发该响应消息,执行步骤415;
[0149] 步骤417:边界路由器接收到响应消息后,保存该响应消息目的接口ID集合中的最后一个接口ID F7,从该响应消息目的接口ID集合中删除接口F7,从接口F7转发该响应消息;
[0150] 步骤418:如果接入路由器接收到该响应消息,则执行步骤419,否则执行步骤420;
[0151] 步骤419:接入路由器接收到该响应消息后,保存该响应消息目的接口ID集合中的最后一个接口ID F8,从该响应消息目的接口ID集合中删除接口F8,从接口F8转发该响应消息,执行步骤418;
[0152] 步骤419:节点N1接收到响应消息后,保存响应消息中的数据;
[0153] 步骤420:结束。
[0154] 实施例1
[0155] 基于表1的仿真参数,本实施例模拟了本发明中的一种新一代数据网络通信方法,性能分析如下:当节点数量增加时,数据量随之增加,网络性能随之下降,数据通信延迟随之增加,数据通信平均延迟为1.45s。
[0156] 表1仿真参数
[0157]
[0158] 本发明提供了一种新一代数据网络通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。