[0071] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0072] 图1为本发明所述的发布流程示意图。
[0073] 图2为本发明所述的获取数据流程示意图。
[0074] 图3为本发明所述的数据通信流程示意图。
[0075] 图4为本发明所述的切换流程示意图。具体实施方式:
[0076] 本发明提供了一种基于多路径的新一代网络实现方法,在本发明中,节点通过多条路径同时获取数据,从而降低了数据通信延迟,提高了数据服务质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
[0077] 图1为本发明所述的发布流程示意图。所述网络包括基础设施设备和移动节点;每个移动节点具有N个接口,每个接口采用不同的协议进行通信,例如wifi,bluetooth等,一个移动节点能够通过N种协议进行通信,一种基础设施设备链路至少有2N个接口,能够通过N种协议进行通信,且至少有两个或者两个以上接口使用同一种协议进行通信;每个基础设施设备维护一个接口表,每个接口表项包含协议域和接口集合域,协议域值定义协议的类型,接口集合域值保存所有使用该种协议进行通信的接口;每个基础设施设备的接口表可以由厂家预先设置;
[0078] 一个移动节点与一个基础设施设备链路相连,并通过该基础设施设备与其他移动节点进行通信;
[0079] 一种类型的数据由一个名称唯一标识,一种数据由两个以上的数据块构成,每个数据块由一个数据块ID唯一标识;
[0080] 一个消息由消息格式域、名称域、数据块ID集合域、消息类型域和负载构成,如果消息格式域为0,则一个消息只包含消息格式域、名称域、消息类型域和负载;如果消息格式域为1,则一个消息包含消息格式域、名称域、数据块ID集合域、消息类型域和负载;
[0081] 消息类型如下表所示:
[0082]消息类型 消息类型值
发布消息 1
请求消息 2
响应消息 3
切换消息 4
[0083] 每个基础设施设备或者移动节点维护一个转发表,该转发表项由名称域值和接口集合域值构成;
[0084] 在移动节点R1具有N个接口,接口x支持协议px且与基础设施设备I1的支持协议px的接口链路相连的条件下,1≤x≤N,数据C1由名称NA1唯一标识,移动节点R1产生了数据C1后,执行下述发布操作:
[0085] 步骤101:开始;
[0086] 步骤102:移动节点R1构建一个发布消息,该发布消息的消息格式为0,名称域值为NA1,消息类型为1,负载为空,移动节点R1从每个接口发送该发布消息;
[0087] 步骤103:基础设施设备I1从N个接口分别收到该发布消息后,对于每个接收到的发布消息,基础设施设备I1执行下述操作:基础设施设备I1从自己的接口y接收到该发布消息,基础设施设备I1查看转发表,如果存在名称域值等于发布消息的名称域值的转发表项,则将接口y加入到该转发表项的接口集合域值中;如果不存在名称域值等于发布消息的名称域值的转发表项,基础设施设备创建一个转发表项,该转发表项的名称域值等于发布消息的名称域值,接口集合域值等于{y};基础设施设备I1查看接口表,选择接口集合域值包含接口y的接口表项,然后从该接口集合域值中除了接口y的每个接口转发该发布消息;
[0088] 步骤104:如果移动节点接收到发布消息,则执行步骤106,否则执行步骤105;
[0089] 步骤105:基础设施设备从N个接口分别收到该发布消息后,对于每个接收到的发布消息,基础设施设备执行下述操作:基础设施设备从自己的接口y1接收到该发布消息,基础设施设备查看转发表,如果存在名称域值等于发布消息的名称域值的转发表项,则将接口y1加入到该转发表项的接口集合域值中;如果不存在名称域值等于发布消息的名称域值的转发表项,基础设施设备创建一个转发表项,该转发表项的名称域值等于发布消息的名称域值,接口集合域值等于{y1};基础设施设备查看接口表,选择接口集合域值包含接口y1的接口表项,然后从该接口集合域值中除了接口y1的每个接口转发该发布消息,执行步骤104;
[0090] 步骤106:移动节点从N个接口分别收到该发布消息后,对于每个接收到的发布消息,移动节点执行下述操作:移动节点从自己的接口y2接收到该发布消息,移动节点查看转发表,如果存在名称域值等于发布消息的名称域值的转发表项,则将接口y2加入到该转发表项的接口集合域值中;如果不存在名称域值等于发布消息的名称域值的转发表项,移动节点则创建一个转发表项,该转发表项的名称域值等于发布消息的名称域值,接口集合域值等于{y2};
[0091] 步骤107:结束。
[0092] 图2为本发明所述的获取数据流程示意图。基础设施设备维护一个汇聚表,一个汇聚表项由名称域、接口域和数据块ID集合域构成;
[0093] 移动节点维护一个请求表,一个请求表项包含名称域、接口域和数据块ID集合域;
[0094] 在移动节点U1有N个接口,接口j支持协议pj且与基础设施设备I2的支持协议pj的接口链路相连,1≤j≤N,数据C1有名称NA1唯一标识,且由M1个数据块构成,每个数据块的数据块ID为m,1≤m≤M1的条件下,如果移动节点U1需要获取数据C1,则查看转发表,选择名称域值为NA1的转发表项E1并获取转发表项E1的接口集合域值中的元素的个数n1;如果M1大于n1,移动节点U1则通过下述过程获取数据C1:
[0095] 步骤201:开始;
[0096] 步骤202:移动节点U1将M1个数据块ID划分为n1个数据块ID集合,将参数z设置为1,该参数表明转发表项E1接口集合域中的第z个元素,1≤z≤n1;
[0097] 步骤203:判断参数z是否大于n1,如果是,则执行步骤205,否则执行步骤204;
[0098] 步骤204:对于转发表项E1接口集合域中的第z个元素,移动节点U1执行下述操作,根据公式(1)计算分配给转发表项E1接口集合域中的第z个元素的数据块ID集合Fz,创建一个请求表项,该请求表项的名称域值为NA1,接口域值为转发表项E1接口集合域中的第z个元素,数据块ID集合域值为Fz,移动节点U1构建一个请求消息,该请求消息的消息格式为1,名称域值为NA1,数据块ID集合为Fz,消息类型为2,负载为空;从转发表项E1中接口集合域的第z个元素发送该请求消息,将z值递增1,执行步骤203;
[0099]
[0100] 步骤205:如果移动节点从接口z1接收到该请求消息,则执行步骤210;否则执行步骤206;
[0101] 步骤206:基础设施设备从接口z2接收到请求消息后,查看自己的汇聚表判断是否存在接口域值等于接口z2,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值的汇聚表项,如果存在,则执行步骤211,否则执行步骤207;
[0102] 步骤207:从接口z2接收到请求消息的基础设施设备查看自己的汇聚表,判断是否存在名称域值等于请求消息中的名称域值,且数据块ID集合域值为请求消息的数据块ID集合的超集的汇聚表项,如果存在,则执行步骤208,否则执行步骤209;
[0103] 步骤208:从接口z2接收到请求消息的基础设施设备创建一个汇聚表项,该汇聚表项的接口域值等于接口z2,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值,执行步骤211;
[0104] 步骤209:从接口z2接收到请求消息的基础设施设备创建一个汇聚表项,该汇聚表项的接口域值等于接口z2,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值;该基础设施设备查看接口表,选择接口表项E2,其中接口z2是接口表项E2的接口集合域中的一个元素,基础设施设备查看转发表,选择名称域值等于接收到的请求消息的名称的转发表项E3,选择符合条件1的接口z3,从接口z3转发接收到的请求消息,执行步骤205;
[0105] 条件1:该接口既是接口表项E2的接口集合中的元素,也是转发表项E3的接口集合中的元素;
[0106] 步骤210:如果从接口z1接收到该请求消息的移动节点不能提供数据C1,则丢弃该请求消息,否则,该移动节点创建一个响应消息,该响应消息的消息格式为1,名称域值和数据块ID集合域值分别为接收到的请求消息的名称域值和数据块ID集合域值,消息类型为3,负载为数据块ID集合中的每个数据块ID定义的数据块集合;然后从接口z1发送该响应消息;
[0107] 步骤211:如果移动节点U1从接口z3接收到响应消息,则执行步骤213,否则执行步骤212;
[0108] 步骤212:基础设施设备从自己的接口接收到响应消息,将该接口称为接口z4,查看汇聚表,选择所有名称域值等于该响应消息的名称域值的汇聚表项,针对每个选择的汇聚表项,基础设施设备执行下述操作:如果该汇聚表项的数据块ID集合与接收到的响应消息的数据块ID集合的交集S1不为空,则基础设施设备构建一个响应消息,该响应消息的消息格式为1,名称域值为该汇聚表项的名称域值,数据块ID集合为该汇聚表项的数据块ID集合与接收到的响应消息的数据块ID集合的交集S1,消息类型为3,负载为该交集S1中的每个数据块ID定义的数据块集合,从该汇聚表项的接口域发送构建的响应消息,基础设施设备同时从该汇聚表项的数据块ID集合中删除交集S1,如果该汇聚表项的数据块ID集合为空,则删除该汇聚表项,执行步骤211;
[0109] 步骤213:移动节点U1从接口z3接收到响应消息后,查看请求表并删除名称域值等于该响应消息的名称域值且数据块ID集合等于该响应消息的数据块ID集合的请求表项,如果移动节点U1的请求表中不存在名称域值等于该响应消息的名称域值的请求表项,则执行步骤214,否则执行步骤211;
[0110] 步骤214:移动节点U1将接收到的所有数据块构建成数据C1;
[0111] 步骤215:结束;
[0112] 步骤210中,如果从接口z1接收到该请求消息的移动节点能够提供数据C1,且该移动节点在发送响应消息之前接口z1失效,该移动节点则选择一个处于有效工作状态的接口x2,构建一个响应消息,从接口x2发送该响应消息,执行步骤211-215完成获取数据过程。
[0113] 图3为本发明所述的数据通信流程示意图。在移动节点U1有N个接口,接口j支持协议pj且与基础设施设备I2的支持协议pj的接口链路相连,1≤j≤N,数据C2有名称NA2唯一标识,且由M2个数据块构成,每个数据块的数据块ID为q,1≤q≤M2的条件下,如果移动节点U1需要获取数据C2,则查看转发表,选择名称域值为名称NA2的转发表项E5并获取转发表项E5的接口集合域值中的元素的个数n5;如果M2小于等于n5,则移动节点U1通过下述过程获取数据C2:
[0114] 步骤301:开始;
[0115] 步骤302:移动节点U1将参数b设置为1,该参数b表明数据C2的第b个数据块的数据块ID;
[0116] 步骤303:判断参数b是否大于M2,如果是,则执行步骤305,否则执行步骤304;
[0117] 步骤304:移动节点U1查看请求表,选择符合条件2的接口z5,创建一个请求表项,该请求表项的名称域值为NA2,接口域值为z5,数据块ID集合域值为{b},移动节点U1构建一个请求消息,该请求消息的消息格式为1,名称域值为NA2,数据块ID集合为{b},消息类型为2,负载为空,然后从接口z5发送该请求消息;将b值递增1,执行步骤303;
[0118] 条件2:在移动节点U1的所有接口中,包含接口z5的接口集合域值的请求表项个数最小;
[0119] 步骤305:如果移动节点从自己的接口接收到该请求消息,将该接口称为接口z6,则执行步骤310;否则执行步骤306;
[0120] 步骤306:基础设施设备从自己的接口接收到请求消息后,将该接口称为接口z7,查看自己的汇聚表判断是否存在接口域值等于接口z7,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值的汇聚表项,如果存在,则执行步骤311,否则执行步骤307;
[0121] 步骤307:从接口z7接收到请求消息的基础设施设备查看自己的汇聚表,判断是否存在名称域值等于请求消息中的名称域值,且数据块ID集合域值为请求消息的数据块ID集合的超集的汇聚表项,如果存在,则执行步骤308,否则执行步骤309;
[0122] 步骤308:从接口z7接收到请求消息的基础设施设备创建一个汇聚表项,该汇聚表项的接口域值等于接口z7,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值,执行步骤311;
[0123] 步骤309:从接口z7接收到请求消息的基础设施设备创建一个汇聚表项,该汇聚表项的接口域值等于接口z7,名称域值和数据块ID集合域值分别等于请求消息中的名称域值和数据块ID集合域值,然后该基础设施设备查看接口表,选择接口表项E6,其中接口z6是接口表项E6的接口集合域中的一个元素,然后查看转发表,选择名称域值等于接收到的请求消息的名称的转发表项E7,然后选择符合条件3的接口z8,从接口z8转发接收到的请求消息,执行步骤305;
[0124] 条件3:该接口既是接口表项E6的接口集合中的元素,也是转发表项E7的接口集合中的元素;
[0125] 步骤310:如果从接口z6接收到该请求消息的移动节点不能提供数据C2,则丢弃该请求消息,否则,该移动节点创建一个响应消息,该响应消息的消息格式为1,名称域值和数据块ID集合域值分别为接收到的请求消息的名称域值和数据块ID集合域值,消息类型为3,负载为数据块ID集合中的每个数据块ID定义的数据块集合;然后从接口z6发送该响应消息;
[0126] 步骤311:如果移动节点U1从自己的接口接收到响应消息,将该接口称为接口z8,则执行步骤313,否则执行步骤312;
[0127] 步骤312:基础设施设备从自己的接口接收到响应消息,将该接口称为接口z9,然后查看汇聚表,选择所有名称域值等于该响应消息的名称域值的汇聚表项,针对每个选择的汇聚表项,基础设施设备执行下述操作:如果该汇聚表项的数据块ID集合与接收到的响应消息的数据块ID集合的交集S2不为空,则基础设施设备构建一个响应消息,该响应消息的消息格式为1,名称域值为该汇聚表项的名称域值,数据块ID集合为该汇聚表项的数据块ID集合与接收到的响应消息的数据块ID集合的交集S2,消息类型为3,负载为该交集S2中的每个数据块ID定义的数据块集合,然后从该汇聚表项的接口域发送构建的响应消息,基础设施设备同时从该汇聚表项的数据块ID集合中删除交集S2,如果该汇聚表项的数据块ID集合为空,则删除该汇聚表项,执行步骤311;
[0128] 步骤313:从接口z8接收到响应消息的移动节点U1查看请求表并删除名称域值等于该响应消息的名称域值且数据块ID集合等于该响应消息的数据块ID集合的请求表项,如果移动节点U1的请求表中不存在名称域值等于该响应消息的名称域值的请求表项,则执行步骤314,否则执行步骤311;
[0129] 步骤314:移动节点U1将接收到的所有数据块构建成数据C2;
[0130] 步骤315:结束;
[0131] 步骤310中,如果从接口z6接收到该请求消息的移动节点能够提供数据C2,且该移动节点在发送响应消息之前接口z6失效,该移动节点则选择一个处于有效工作状态的接口x3,构建一个响应消息,从接口x3发送该响应消息,执行步骤311-315完成获取数据过程。
[0132] 图4为本发明所述的切换流程示意图。在移动节点U1有N个接口,接口f支持协议pf且与基础设施设备I2的支持协议pf的接口链路相连,1≤f≤N的条件下,如果移动节点U1检测到接口f1失效,1≤f1≤N,则执行下述切换过程:
[0133] 步骤401:开始;
[0134] 步骤402:移动节点U1查看请求表,选择接口域值等于接口f1的所有请求表项,针对每个请求表项,移动节点U1执行下述操作:移动节点U1选择符合条件3的接口f2,将该请求表项的接口域值更新为接口f2,构建一个切换消息,该切换消息的消息格式为0,名称为空,消息类型为4,负载为该请求表项,然后从接口f2发送该请求消息;
[0135] 条件3:在移动节点U1的所有接口中,包含接口f2的接口集合域值的请求表项个数最小;
[0136] 步骤403:基础设施设备I2从接口f3接收到切换消息后,查看汇聚表,选择名称域值和数据块ID集合域值等于接收到的切换消息负载中的请求表项的名称域值和数据块ID集合的汇聚表项,然后将该汇聚表项的接口域值更新为接口f3;
[0137] 步骤404:结束。
[0138] 实施例1
[0139] 基于表1的仿真参数,本实施例模拟了本发明中的一种基于多路径的新一代网络实现方法,性能分析如下:当接口数量增加时,移动节点获取数据的延迟降低,当接口数量减少时,移动节点获取数据的延迟增加。移动节点获取数据的平均延迟为600ms。
[0140] 表1仿真参数
[0141]
[0142]
[0143] 本发明提供了一种基于多路径的新一代网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。