[0095] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0096] 图1为本发明所述的建立路由表流程示意图。
[0097] 图2为本发明所述的建立服务器表流程示意图。
[0098] 图3为本发明所述的注册流程示意图。
[0099] 图4为本发明所述的获取映射表项流程示意图。
[0100] 图5为本发明所述的获取数据流程示意图。
[0101] 图6为本发明所述的数据通信流程示意图。具体实施方式:
[0102] 本发明提供了一种以数据为中心的未来网络实现方法,节点通过本发明所提供的实现方法能够快速获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取等领域,具有广泛的应用前景。
[0103] 图1为本发明所述的建立路由表流程示意图。所述网络包括核心网络和末端域,核心网络包括两个以上的路由器,一个路由器包含两个以上的有线接口,每个有线接口由一个接口ID唯一标识;一个末端域包括一个接入节点和两个以上的移动设备;一个移动设备具有一个无线接口;接入节点不能移动,具有一个无线接口和一个有线接口;接入节点的有线接口与一个路由器的有线接口链路相连,接入节点的无线接口与移动设备的无线接口链接;
[0104] 一种数据由一个名称前缀和名称ID唯一标识;移动设备通过名称和消息来获取或者提供数据;名称由位置前缀、名称前缀和名称ID构成;一个末端域以及该末端域的接入节点由一个名称前缀唯一标识,该名称前缀预先设置;,例如china/js/sz/;
[0105] 消息由名称域、消息类型域和负载域构成;消息类型域如下表所示:
[0106]消息类型 值
域发布消息 1
服务器发布消息 2
注册消息 3
映射消息 4
确认消息 5
请求消息 6
数据消息 7
[0107] 每个路由器维护一个路由表,一个路由表项包含位置前缀、接口ID以及生命周期域值;一个末端域中的接入节点启动后,定期发布标识该末端域的名称前缀以建立或者更新路由表,过程如下所示:
[0108] 步骤101:开始;
[0109] 步骤102:接入节点创建一个名称,该名称的位置前缀等于标识接入节点的名称前缀,名称前缀和名称ID为空;接入节点通过有线接口发送一个域发布消息,该域发布消息中,名称域值为构建的名称,消息类型域值为1,负载为空;
[0110] 步骤103:如果路由器从接口ID为x的接口接收到域发布消息,则执行步骤104,否则执行步骤107;
[0111] 步骤104:路由器从接口ID为x的接口接收到域发布消息后,查看路由表,如果存在一个路由表项,该路由表项同时满足以下两个条件:1)该路由表项的位置前缀等于接收到的域发布消息的名称的位置前缀;2)该路由表项的接口ID域值等于x,则执行步骤105,否则执行步骤106;
[0112] 步骤105:从接口ID为x的接口接收到域发布消息的路由器选择一个路由表项,该路由表项的位置前缀等于接收到的域发布消息的名称的位置前缀且接口ID域值等于x,将该路由表项的生命周期设置为最大值,执行步骤107;
[0113] 步骤106:从接口ID为x的接口接收到域发布消息的路由器创建一个路由表项,该路由表项的位置前缀等于接收到的域发布消息的名称的位置前缀,接口ID域值等于x,生命周期设置为最大值,然后从除了接口x以外的所有接口转发接收到的域发布消息,执行步骤103;
[0114] 步骤107:结束;
[0115] 如果一个路由表项的生命周期衰减为0,则从路由表中删除该路由表项。
[0116] 上述过程能够快速更新路由表从而确保节点能够快速获取数据。
[0117] 图2为本发明所述的建立服务器表流程示意图。所述网络中包含一个映射服务器,该映射服务器与一个路由器集成在一起;每个路由器维护一个服务器表,一个服务器表项包含接口ID域值和生命周期域值;与路由器R1集成在一起的映射路由器启动后,定期执行下述操作以建立服务器表项:
[0118] 步骤201:开始;
[0119] 步骤202:映射路由器从路由器R1的每个接口发送一个服务器发布消息,该服务器发布消息中,名称域值为空,消息类型为2,负载为空;
[0120] 步骤203:如果路由器从自己的接口ID为x1的接口接收到服务器发布消息,则执行步骤204,否则执行步骤207;
[0121] 步骤204:路由器从自己的接口ID为x1的接口接收到服务器发布消息后,查看服务器表,如果存在一个服务器表项,该服务器表项的接口ID域值等于x1,则执行步骤205,否则执行步骤206;
[0122] 步骤205:从接口ID为x1的接口接收到服务器发布消息的路由器选择一个服务器表项,该服务器表项的接口ID域值等于x1,将该服务器表项的生命周期设置为最大值,执行步骤207;
[0123] 步骤206:从接口ID为x1的接口接收到服务器发布消息的路由器创建一个服务器表项,该服务器表项的接口ID域值等于x1,将生命周期设置为最大值,然后从除了接口x1以外的所有接口转发接收到的服务器发布消息,执行步骤203;
[0124] 步骤207:结束;
[0125] 如果一个服务器表项的生命周期衰减为0,则从服务器表中删除该服务器表项。
[0126] 上述过程能够快速建立服务器表从而确保节点能够快速获取数据。
[0127] 图3为本发明所述的注册流程示意图。映射服务器维护一个映射表,一个映射表项包含位置前缀域、名称前缀域、名称ID域和生命周期域;在所述网络的映射服务器与路由器R1集成在一起,末端域D1由名称前缀NP1唯一标识,移动设备MD1能提供数据C1,数据C1由名称前缀NP1和名称ID NID1标识的条件下,如果移动设备MD1位于除了末端域D1以外的任何末端域,则执行下述注册操作:
[0128] 步骤301:开始;
[0129] 步骤302:移动设备MD1构建一个名称,该名称的位置前缀为标识移动设备MD1所在末端域的名称前缀,名称前缀为NP1,名称ID为NID1;移动设备MD1发送注册消息,该注册消息的名称为构建的名称,消息类型为3,负载为空;移动设备MD1所在末端域的接入节点接收到该注册消息后,从有线接口转发该注册消息;
[0130] 步骤303:如果路由器R1接收到注册消息,则执行步骤305,否则执行步骤304;
[0131] 步骤304:路由器从自己的接口ID为x2的接口接收到注册消息后,查看服务器表,随机选取一个服务器表项,从该服务器表项的接口ID域发送该注册消息,执行步骤303;
[0132] 步骤305:路由器R1从自己的接口ID为x3的接口接收到注册消息后,与路由器R1集成在一起的映射服务器查看映射表;如果存在一个映射表项,该映射表项的位置前缀域、名称前缀域和名称ID域值分别等于接收到的注册消息名称中的位置前缀、名称前缀以及名称ID,则执行步骤306,否则执行步骤307;
[0133] 步骤306:接收到注册消息的映射服务器选择一个映射表项,该映射表项的位置前缀域、名称前缀域和名称ID域值分别等于接收到的注册消息名称中的位置前缀、名称前缀以及名称ID,将该映射表项的生命周期设置为最大值,执行步骤308;
[0134] 步骤307:接收到注册消息的映射服务器创建一个映射表项,该映射表项的位置前缀域、名称前缀域和名称ID域值分别等于接收到的注册消息名称中的位置前缀、名称前缀以及名称ID,该映射表项的生命周期为最大值;
[0135] 步骤308:结束;
[0136] 如果一个映射表项的生命周期衰减为0,则从映射表中删除该映射表项。
[0137] 上述过程能够快速完成注册过程从而确保节点能够快速获取数据。
[0138] 图4为本发明所述的获取映射表项流程示意图。映射服务器与路由器R1集成在一起,如果移动设备MD1需要获取数据C1,数据C1由名称前缀NP1和名称ID NID1唯一标识,移动设备MD1则执行下述过程获取映射表项:
[0139] 步骤401:开始;
[0140] 步骤402:移动设备MD1构建一个名称,该名称的位置前缀为空,名称前缀为NP1,名称ID为NID1,发送一个映射消息,该映射消息的名称域值为构建的名称,消息类型为4,负载为标识移动设备MD1所在末端域的名称前缀;移动设备MD1所在末端域的接入节点接收到映射消息后,从有线接口转发该映射消息;
[0141] 步骤403:如果路由器R1接收到映射消息,则执行步骤405,否则执行步骤404;
[0142] 步骤404:接收到映射消息的路由器查看服务器表,随机选择一个服务器表项,从该服务器表项的接口域值转发该映射消息,执行步骤403;
[0143] 步骤405:路由器R1接收到映射消息后,与路由器R1集成在一起的映射服务器查看映射表,如果至少存在一个映射表项,该映射表项的名称前缀和名称ID分别等于接收到的映射消息名称中的名称前缀和名称ID,则执行步骤406,否则执行步骤407;
[0144] 步骤406:映射服务器选择所有名称前缀和名称ID分别等于接收到的映射消息名称中的名称前缀和名称ID的映射表项,构建一个名称,该名称的位置前缀等于接收到的映射消息负载中的名称前缀,名称前缀和名称ID分别等于接收到的映射消息名称中的名称前缀和名称ID;映射服务器构建一个确认消息,该确认消息的名称域值等于构建的名称,消息类型为5,负载为所选择的映射表项,执行步骤408;
[0145] 步骤407:映射服务器构建一个名称,该名称的位置前缀等于接收到的映射消息负载中的名称前缀,名称前缀和名称ID分别等于接收到的映射消息名称中的名称前缀和名称ID;映射服务器构建一个确认消息,该确认消息的名称域值等于构建的名称,消息类型为5,负载为空;
[0146] 步骤408:映射服务器查看路由表,选择一个路由表项,该路由表项的位置前缀等于构建的确认消息名称中的位置前缀,然后从该路由表项的接口域值转发确认消息;
[0147] 步骤409:如果接入路由器接收到确认消息,则执行步骤411,否则执行步骤410;
[0148] 步骤410:接收到确认消息的路由器选择一个路由表项,该路由表项的位置前缀等于接收到的确认消息名称中的位置前缀,然后从该路由表项的接口域值转发确认消息,执行步骤409;
[0149] 步骤411:接入节点接收到确认消息后,从无线接口转发该确认消息;移动设备MD1接收到确认消息后,保存该确认消息;
[0150] 步骤412:结束。
[0151] 图5为本发明所述的获取数据流程示意图。如果移动设备MD1需要获取数据C1,数据C1由名称前缀NP1和名称ID NID1唯一标识,移动设备MD1首先执行步骤401~412获取映射表项,如果接收到的确认消息负载为空,则通过下数据过程获取数据C1:
[0152] 步骤501:开始;
[0153] 步骤502:移动设备MD1构建一个名称,该名称的位置前缀为数据名称NP1,名称前缀为NP1,名称ID为NID1;移动设备MD1发送一个请求消息,该请求消息的名称域值为构建的名称,消息类型为6,负载为标识移动设备MD1所在末端域的名称前缀;
[0154] 步骤503:移动设备MD1所在末端域的接入节点接收到请求消息后,如果标识该接入节点的名称前缀等于请求消息名称域值中的位置前缀,则执行步骤507,否则执行步骤504;
[0155] 步骤504:移动设备MD1所在末端域的接入节点从有线接口转发接收到的请求消息;
[0156] 步骤505:如果接入节点接收到请求消息,则执行步骤507,否则执行步骤506;
[0157] 步骤506:接收到请求消息的路由器查看路由表,选择一个路由表项,该路由表项的位置前缀域等于接收到的请求消息名称中的位置前缀,从该路由表项的接口域值转发该请求消息,执行步骤505;
[0158] 步骤507:接收到请求消息的接入节点从无线接口转发该请求消息并启动一个时钟,例如1s;移动设备接收到该请求消息后,如果该移动设备不能提供请求消息名称中的名称前缀和名称ID所确认的数据,则执行步骤508,否则执行步骤509;
[0159] 步骤508:接收到请求消息的移动设备丢弃该请求消息,执行步骤517;
[0160] 步骤509:该移动设备构建一个名称,该名称的位置前缀等于接收到的请求消息负载中的名称前缀,该名称的名称前缀和名称ID分别等于接收到的请求消息名称中的名称前缀和名称ID;该移动设备发送一个数据消息,该数据消息的名称为构建的名称,消息类型为7,负载为接收到的请求消息中的名称前缀和名称ID所标识的数据;
[0161] 步骤510:如果接入节点在时钟指定的时间范围内接收到数据消息,则执行步骤512,否则执行步骤511;
[0162] 步骤511:接入节点丢弃接收到的数据消息,执行步骤517;
[0163] 步骤512:接收到数据消息的接入节点停止时钟;如果标识该接入节点所在末端域的名称前缀等于接收到的数据消息名称中的位置前缀,则执行步骤516,否则执行步骤513;
[0164] 步骤513:接收到数据消息的接入节点从有线接口转发该数据消息;
[0165] 步骤514:如果接入节点接收到数据消息,则执行步骤516,否则执行步骤515;
[0166] 步骤515:接收到数据消息的路由器查看路由表,选择一个路由表项,该路由表项的位置前缀域等于接收到的数据消息名称中的位置前缀,从该路由表项的接口域值转发该数据消息,执行步骤514;
[0167] 步骤516:接入节点接收到数据消息后,从无线接口转发该数据消息;
[0168] 步骤517:移动设备MD1接收到数据消息后,保存数据消息负载中的数据;
[0169] 步骤518:结束。
[0170] 移动设备通过上述过程能够快速获取数据。
[0171] 图6为本发明所述的数据通信流程示意图。如果移动设备MD1需要获取数据C1,数据C1由名称前缀NP1和名称ID NID1唯一标识,移动设备MD1首先执行步骤401~412获取映射表项,如果接收到的确认消息负载不为空,则从负载中选择生命周期值最大的映射表项E1,然后通过下数据过程获取数据C1:
[0172] 步骤601:开始;
[0173] 步骤602:移动设备MD1构建一个名称,该名称的位置前缀为映射表项E1的位置前缀,名称前缀为NP1,名称ID为NID1;移动设备MD1发送一个请求消息,该请求消息的名称域值为构建的名称,消息类型为6,负载为标识移动设备MD1所在末端域的名称前缀;
[0174] 步骤603:移动设备MD1所在末端域的接入节点接收到请求消息后,如果标识该接入节点所在末端域的名称前缀等于请求消息名称域值中的位置前缀,则执行步骤607,否则执行步骤604;
[0175] 步骤604:移动设备MD1所在末端域的接入节点从有线接口转发接收到的请求消息;
[0176] 步骤605:如果接入节点接收到请求消息,则执行步骤607,否则执行步骤606;
[0177] 步骤606:接收到请求消息的路由器查看路由表,选择一个路由表项,该路由表项的位置前缀域等于接收到的请求消息名称中的位置前缀,从该路由表项的接口域值转发该请求消息,执行步骤605;
[0178] 步骤607:接收到请求消息的接入节点从无线接口转发该请求消息并启动一个时钟,例如1s;移动设备接收到该请求消息后,如果该移动设备不能提供请求消息名称中的名称前缀和名称ID所确认的数据,则执行步骤608,否则执行步骤609;
[0179] 步骤608:接收到请求消息的移动设备丢弃该请求消息,执行步骤617;
[0180] 步骤609:该移动设备构建一个名称,该名称的位置前缀等于接收到的请求消息负载中的名称前缀,该名称的名称前缀和名称ID分别等于接收到的请求消息名称中的名称前缀和名称ID;该移动设备发送一个数据消息,该数据消息的名称为构建的名称,消息类型为7,负载为接收到的请求消息中的名称前缀和名称ID所标识的数据;
[0181] 步骤610:如果接入节点在时钟指定的时间范围内接收到数据消息,则执行步骤612,否则执行步骤611;
[0182] 步骤611:接入节点丢弃接收到的数据消息,执行步骤617;
[0183] 步骤612:接收到数据消息的接入节点停止时钟;如果标识该接入节点所在末端域的名称前缀等于接收到的数据消息名称中的位置前缀,则执行步骤616,否则执行步骤613;
[0184] 步骤613:接收到数据消息的接入节点从有线接口转发该数据消息;
[0185] 步骤614:如果接入节点接收到数据消息,则执行步骤616,否则执行步骤615;
[0186] 步骤615:接收到数据消息的路由器查看路由表,选择一个路由表项,该路由表项的位置前缀域等于接收到的数据消息名称中的位置前缀,从该路由表项的接口域值转发该数据消息,执行步骤614;
[0187] 步骤616:接入节点接收到数据消息后,从无线接口转发该数据消息;
[0188] 步骤617:移动设备MD1接收到数据消息后,保存数据消息负载中的数据;
[0189] 步骤618:结束。
[0190] 移动设备通过上述过程能够快速获取数据。
[0191] 实施例1
[0192] 基于表1的仿真参数,本实施例模拟了本发明中的一种以数据为中心的未来网络实现方法,性能分析如下:当数据传输量增加时,数据通信延迟也随之增加,当数量传输量降低时,数据通信延迟也随之降低。设备获取服务数据的平均延迟为2.8s。
[0193] 表1仿真参数
[0194]
[0195] 本发明提供了一种以数据为中心的未来网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。