[0098] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0099] 图1为本发明所述的控制器发布流程示意图。
[0100] 图2为本发明所述的控制器注册流程示意图。
[0101] 图3为本发明所述的移动节点注册流程示意图。
[0102] 图4为本发明所述的预切换流程示意图。
[0103] 图5为本发明所述的通信流程示意图。具体实施方式:
[0104] 本发明提供了一种基于软件定义的下一代网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
[0105] 图1为本发明所述的控制器发布流程示意图。所述下一代网络包括一个控制器、两个以上的接入节点和两个以上的移动设备;一个移动设备与一个接入节点链路相连,该接入节点称为该移动设备的关联接入节点,移动设备通过其关联接入节点与其他移动设备进行通信;控制器和接入节点的位置固定;
[0106] 控制器、接入节点或者移动设备各自由一个地址唯一标识,一个地址由地理坐标和硬件ID构成,硬件ID例如是MAC地址;
[0107] 一个消息包括消息类型、发送源地址、转发源地址、目的地址和负载;
[0108] 消息类型如下所示:
[0109]
[0110]
[0111] 控制器C1启动后,执行下述发布操作:
[0112] 步骤101:开始;
[0113] 步骤102:控制器C1发送发布消息,发布消息的消息类型为1,发送源地址为控制器C1的地址,转发源地址为控制器C1的地址,目的地址为广播地址,广播地址的每个比特都是1,负载为空;
[0114] 步骤103:判断是移动节点还是接入节点接收到发布消息,如果是移动节点则执行步骤104,否则执行步骤105;
[0115] 步骤104:接收到发布消息的移动节点保存该发布消息的发送源地址,执行步骤107;
[0116] 步骤105:接收到发布消息的接入节点保存该发布消息的发送源地址,如果该接入节点的坐标与该发布消息的发送源地址坐标之间的距离大于该发布消息的发送源地址坐标与该发布消息的转发源地址坐标之间的距离,则执行步骤106,否则执行步骤107;
[0117] 步骤106:接收到发布消息的接入节点将该发布消息的转发源地址更新为自己的地址,转发该发布消息,执行步骤103;
[0118] 步骤107:结束。
[0119] 图2为本发明所述的控制器注册流程示意图。一个控制器保存一个接入节点表和一个设备表;接入节点表项由地址域和生命周期域构成;设备表项包含地址域,路径集合域和生命周期域;路径集合的元素为接入节点的地址;
[0120] 接入节点AP1启动后,定期向所在网络的控制器C1执行注册操作:
[0121] 步骤201:开始;
[0122] 步骤202:接入节点AP1发送接入节点注册消息,该接入节点注册消息的消息类型为2,发送源地址为接入节点AP1的地址,发送源地址为接入节点AP1的地址,目的地址为控制器C1的地址,负载为空;
[0123] 步骤203:判断是否移动节点接收到接入节点注册消息,则执行步骤210,否则执行步骤204;
[0124] 步骤204:判断是否控制器C1接收到接入节点注册消息,是则执行步骤207,否则执行步骤205;
[0125] 步骤205:接收到接入节点注册消息的接入节点判断自己的坐标与该接入节点注册消息的目的地址坐标之间的距离是否小于该接入节点注册消息的转发源地址坐标与该接入节点注册消息的目的地址坐标之间的距离,如果是,则执行步骤206,否则执行步骤210;
[0126] 步骤206:接收到接入节点注册消息的接入节点将该接入节点注册消息的转发源地址更新为自己的地址,转发该接入节点注册消息,执行步骤203;
[0127] 步骤207:接收到接入节点注册消息的控制器C1查看接入节点表,判断是否存在一个接入节点表项,该接入节点表项的地址域的硬件ID等于该接入节点注册消息的发送源地址的硬件ID,如果是则执行步骤208,否则执行步骤209;
[0128] 步骤208:接收到接入节点注册消息的控制器C1选择一个接入节点表项,该接入节点表项的地址域的硬件ID等于该接入节点注册消息的发送源地址的硬件ID,将该接入节点表项的地址域更新为该接入节点注册消息的发送源地址,将生命周期域值设置为最大值,例如1s,执行步骤210;
[0129] 步骤209:接收到接入节点注册消息的控制器C1创建一个接入节点表项,该接入节点表项的地址域等于该接入节点注册消息的发送源地址,生命周期域值设置为最大值;
[0130] 步骤210:结束。
[0131] 图3为本发明所述的移动节点注册流程示意图。移动节点MD1启动后,构建自己的路径集合PS1,路径集合PS1由移动节点MD1所经过的路径包含的接入节点的地址构成,例如从家到办公室所经过的接入节点的地址集合,当前关联的接入节点是路径集合PS1的第一个元素,下一个关联的接入节点是路径集合PS1的第二个元素,依次关联的第N个接入节点是路径集合PS1的第N个元素;
[0132] 移动节点MD1定期执行下述注册操作:
[0133] 步骤301:开始;
[0134] 步骤302:移动节点MD1发送设备注册消息,该设备注册消息的消息类型为3,发送源地址为移动节点MD1的地址,发送源地址为移动节点MD1的地址,负载为路径集合PS1;如果移动节点MD1知道控制器C1的地址,则该设备注册消息的目的地址为控制器C1的地址,否则该设备注册消息的目的地址为空;
[0135] 步骤303:判断是否移动节点接收到设备注册消息,是则执行步骤312,否则执行步骤304;
[0136] 步骤304:判断是否控制器C1接收到设备注册消息,是则执行步骤309,否则执行步骤305;
[0137] 步骤305:接收到设备注册消息的接入节点判断该设备注册消息的目的地址是否为空,如果是,则执行步骤306,否则执行步骤307;
[0138] 步骤306:接收到设备注册消息的接入节点将该设备注册消息的目的地址更新为控制器C1的地址,转发源地址更新为自己的地址,转发该设备注册消息,执行步骤303;
[0139] 步骤307:接收到设备注册消息的接入节点判断自己的坐标与该设备注册消息的目的地址坐标之间的距离是否小于该设备注册消息的转发源地址坐标与该设备注册消息的目的地址坐标之间的距离,如果是,则执行步骤308,否则执行步骤312;
[0140] 步骤308:接收到设备注册消息的接入节点将该设备注册消息的转发源地址更新为自己的地址,转发该设备注册消息,执行步骤303;
[0141] 步骤309:接收到设备注册消息的控制器C1查看设备表,判断是否存在一个设备表项,该设备表项的地址域的硬件ID等于该设备注册消息的发送源地址的硬件ID,是则执行步骤310,否则执行步骤311;
[0142] 步骤310:接收到设备注册消息的控制器C1选择一个设备表项,该设备表项的地址域的硬件ID等于该设备注册消息的发送源地址的硬件ID,将该设备表项的地址域更新为该设备注册消息的发送源地址,将路径集合域值设置为该设备注册消息负载中的路径集合,将生命周期域值设置为最大值,例如1s,执行步骤312;
[0143] 步骤311:接收到设备注册消息的控制器C1创建一个设备表项,该设备表项的地址域等于该设备注册消息的发送源地址,将路径集合域值设置为该设备注册消息负载中的路径集合,生命周期域值设置为最大值;
[0144] 步骤312:结束;
[0145] 如果移动设备的坐标发生变化,则执行步骤301-312的注册过程从而控制器能够及时更新该移动设备的地址;
[0146] 如果移动设备经过一个接入节点,则重新构建路径集合,然后执行步骤301-312的注册过程从而控制器能够及时更新该移动设备的路径集合。
[0147] 图4为本发明所述的预切换流程示意图。移动设备定期向关联的接入节点发送信标消息,接入节点定期发送信标消息;
[0148] 控制器C1定期查看设备表,如果检测到满足条件1的设备表项E1,设备表项E1的路径集合域值的第一个元素为接入节点AP2的地址,设备表项E1的路径集合域值的第二个元素为接入节点AP3的地址,接入节点AP2与接入节点AP3为邻居节点,则控制器C1则执行下述操作:
[0149] 条件1:设备表项E1的地址域值A1的坐标与接入节点AP2的地址的坐标距离为D1,设备表项E1的地址域值A1的坐标与接入节点AP3的地址的坐标距离为D2,距离D1小于距离D2且距离D1与距离D2之差的绝对值小于阈值TH1,阈值TH1预先设置,阈值TH1一般大于通信半径的10%,小于通信半径的50%,阈值TH1越大,则说明移动节点与接入节点AP3的距离越近,执行预切换的概率越高;
[0150] 步骤401:开始;
[0151] 步骤402:控制器C1发送预切换消息,该预切换消息的消息类型为4,目的地址为接入节点AP2的地址,发送源地址和转发源地址均为控制器C1的地址,负载为接入节点AP3的地址和地址A1;控制器C1发送等待消息,该等待消息的消息类型为5,目的地址为接入节点AP3的地址,发送源地址和转发源地址均为控制器C1的地址,负载为地址A1;控制器C1发送切换消息,该切换消息的消息类型为6,目的地址为地址A1,发送源地址和转发源地址均为控制器C1的地址,负载为接入节点AP3的地址;
[0152] 步骤403:判断是否接入节点AP2接收到预切换消息,是则执行步骤414,否则执行步骤404;
[0153] 步骤404:判断是否接入节点AP3接收到等待消息,是则执行步骤415,否则执行步骤405;
[0154] 步骤405:判断接收到切换消息的移动设备的地址的硬件ID是否等于该切换消息目的地址的硬件ID,是则执行步骤416,否则执行步骤406;
[0155] 步骤406:判断是否接入节点接收到预切换消息,是则执行步骤407,否则执行步骤409;
[0156] 步骤407:接收到预切换消息的接入节点判断它的地址的坐标与该预切换消息的目的地址的坐标之间的距离是否小于该预切换消息的转发源地址的坐标与该预切换消息的目的地址的坐标之间的距离,如果是,则执行步骤408,否则执行步骤409;
[0157] 步骤408:接收到预切换消息的接入节点将该预切换消息的转发源地址更新为自己的地址,转发该预切换消息,执行步骤403;
[0158] 步骤409:判断是否接入节点接收到等待消息,是则执行步骤410,否则执行步骤412;
[0159] 步骤410:接收到等待消息的接入节点判断它的地址的坐标与该等待消息的目的地址的坐标之间的距离是否小于该等待消息的转发源地址的坐标与该等待消息的目的地址的坐标之间的距离,如果是,则执行步骤411,否则执行步骤412;
[0160] 步骤411:接收到等待消息的接入节点将该等待消息的转发源地址更新为自己的地址,转发该等待消息,执行步骤403;
[0161] 步骤412:接收到切换消息的接入节点判断它的地址的坐标与该切换消息的目的地址的坐标之间的距离是否小于该切换消息的转发源地址的坐标与该切换消息的目的地址的坐标之间的距离,如果是,则执行步骤413,否则执行步骤414;
[0162] 步骤413:接收到切换消息的接入节点将该切换消息的转发源地址更新为自己的地址,转发该切换消息,执行步骤403;
[0163] 步骤414:接入节点AP2接收到预切换消息后,如果接收到目的地址的硬件ID等于该预切换消息负载中的地址A1的硬件ID的消息,则将该消息转发给接入节点AP3,接入节点AP2保存该消息,执行步骤417;
[0164] 步骤415:接入节点AP3接收到等待消息后,如果接收到目的地址的硬件ID等于该等待消息负载中的地址A1的硬件ID的消息,则保存该消息,执行步骤417;
[0165] 步骤416:硬件ID等于切换消息的目的地址的硬件ID的移动设备接收到该切换消息后,切换到接入节点AP3,将接入节点AP3作为当前关联的接入节点;
[0166] 步骤417:如果接入节点AP3接收到一个信标消息且该信标消息的硬件ID等于地址A1的硬件ID,接入节点AP3转发所有保存的目的地址的硬件ID等于地址A1的硬件ID的消息;硬件ID等于地址A1的硬件ID的移动设备接收并保存这些消息;
[0167] 步骤418:结束。
[0168] 图5为本发明所述的通信流程示意图。移动设备MD1的硬件ID为HID1,所在下一代网络的控制器为控制器C1,移动设备MD2的硬件ID为HID2;移动设备MD1通过下述过程实现与移动设备MD2的通信:
[0169] 步骤501:开始;
[0170] 步骤502:移动节点MD1发送请求消息,该请求消息的消息类型为7,发送源地址为移动设备MD1的地址,转发源地址为移动设备MD1的地址,负载为硬件ID HID2;如果移动设备MD1知道控制器C1的地址,则该请求消息的目的地址为控制器C1的地址,否则该请求消息的目的地址为空;
[0171] 步骤503:判断控制器C1还是接入节点接收到该请求消息,如果是控制器C1则执行步骤508,否则执行步骤504;
[0172] 步骤504:接入节点接收到请求消息,判断该请求消息的目的地址是否为空,是则执行步骤505,否则执行步骤506;
[0173] 步骤505:接收到请求消息的接入节点将该请求消息的目的地址更新为控制器C1的地址,将转发源地址更新为自己的地址,转发该请求消息,执行步骤503;
[0174] 步骤506:接收到请求消息的接入节点判断自己的坐标与该请求消息目的地址的坐标之间的距离是否小于该请求消息转发源地址的坐标与目的地址的坐标之间的距离,如果是,则执行步骤507,否则执行步骤508;
[0175] 步骤507:接收到请求消息的接入节点将该请求消息的转发源地址更新为自己的地址,转发该请求消息,执行步骤503;
[0176] 步骤508:控制器C1接收到请求消息后,选择一个设备表项,该设备表项的地址域的硬件ID等于该请求消息负载中的硬件ID,将该请求消息的目的地址更新为该设备表项的地址域值,转发源地址更新为控制器C1的地址,转发该请求消息;
[0177] 步骤509:判断是移动设备MD2还是接入节点接收到请求消息,是执行步骤512,否则执行步骤510;
[0178] 步骤510:接入节点接收到请求消息后,判断自己的坐标与该请求消息目的地址的坐标之间的距离是否小于该请求消息转发源地址的坐标与目的地址的坐标之间的距离,如果是,则执行步骤511,否则执行步骤512;
[0179] 步骤511:接收到请求消息的接入节点将该请求消息的转发源地址更新为自己的地址,转发该请求消息,执行步骤509;
[0180] 步骤512:移动设备MD2接收到请求消息后,发送一个响应消息,该响应消息的消息类型为8,发送源地址和转发源地址均为移动设备MD2的地址,负载为响应数据和移动设备MD1的硬件ID HID1;如果移动设备MD2知道控制器C1的地址,则该响应消息的目的地址为控制器C1的地址,否则,该响应消息的目的地址为空;
[0181] 步骤513:判断是控制器C1还是接入节点接收到该响应消息,是则执行步骤518,否则执行步骤514;
[0182] 步骤514:接入节点接收到响应消息,判断该响应消息的目的地址是否为空,是则执行步骤515,否则执行步骤516;
[0183] 步骤515:接收到响应消息的接入节点将该响应消息的目的地址更新为控制器C1的地址,将转发源地址更新为自己的地址,转发该响应消息,执行步骤513;
[0184] 步骤516:接收到响应消息的接入节点判断自己的坐标与该响应消息目的地址的坐标之间的距离是否小于该响应消息转发源地址的坐标与目的地址的坐标之间的距离,如果是,则执行步骤517,否则执行步骤518;
[0185] 步骤517:接收到响应消息的接入节点将该响应消息的转发源地址更新为自己的地址,转发该响应消息,执行步骤513;
[0186] 步骤518:控制器C1接收到响应消息后,选择一个设备表项,该设备表项的地址域的硬件ID等于该响应消息负载中的硬件ID,将该响应消息的目的地址更新为该设备表项的地址域值,转发源地址更新为控制器C1的地址,转发该响应消息;
[0187] 步骤519:判断是移动设备MD1还是接入节点接收到响应消息,执行步骤522,否则执行步骤520;
[0188] 步骤520:接入节点接收到响应消息后,判断自己的坐标与该响应消息目的地址的坐标之间的距离是否小于该响应消息转发源地址的坐标与目的地址的坐标之间的距离,如果是,则执行步骤521,否则执行步骤522;
[0189] 步骤521:接收到响应消息的接入节点将该响应消息的转发源地址更新为自己的地址,转发该响应消息,执行步骤519;
[0190] 步骤522:移动设备MD1接收到响应消息后,保存响应消息负载中的响应数据;
[0191] 步骤523:结束。
[0192] 实施例1
[0193] 基于表1的仿真参数,本实施例模拟了本发明中的一种基于软件定义的下一代网络实现方法,性能分析如下:当移动节点移动速度较快时,控制器执行预切换操作的频率较高,当移动节点移动速度较慢时,控制器执行预切换操作的频率较低;控制器执行预切换的平均延迟为95ms。
[0194] 表1仿真参数
[0195]
[0196] 本发明提供了一种基于软件定义的下一代网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。