CN108965029B - 一种稳定可靠的软件定义网络实现方法 - Google Patents
一种稳定可靠的软件定义网络实现方法 Download PDFInfo
- Publication number
- CN108965029B CN108965029B CN201810916529.6A CN201810916529A CN108965029B CN 108965029 B CN108965029 B CN 108965029B CN 201810916529 A CN201810916529 A CN 201810916529A CN 108965029 B CN108965029 B CN 108965029B
- Authority
- CN
- China
- Prior art keywords
- interface
- switch
- request message
- message
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明提供了一种稳定可靠的软件定义网络实现方法,所述网络包括控制器、交换机和设备,设备为网络终端节点;控制器包括中心控制器和本地控制器,所述网络包含一个中心控制器和两个以上的本地控制器;交换机包括中间交换机和末端交换机;所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
Description
技术领域
本发明涉及一种实现方法,尤其涉及的是一种稳定可靠的软件定义网络实现方法。
背景技术
软件定义网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高网络性能。
目前,研究人员提出了通过软件定义网络获取网络服务的模式并定义了相应的协议栈,但是由于软件定义网络的体系结构与传统网络的体系结构不同,现有的网络获取服务的方法具有一些局限性。因此需要提出一种低延迟的软件定义网络实现方法,从而提高服务质量。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种稳定可靠的软件定义网络实现方法。
技术方案:本发明公开了一种稳定可靠的软件定义网络实现方法,所述网络包括控制器、交换机和设备,设备为网络终端节点;控制器包括中心控制器和本地控制器,所述网络包含一个中心控制器和两个以上的本地控制器;交换机包括中间交换机和末端交换机;所述网络划分为两个以上的子网,一个子网由一个本地控制器、两个以上的中间交换机、两个以上的末端交换机以及两个以上的设备构成;中心控制器用于管理本地控制器,本地控制器用于管理所在子网的交换机和设备;末端交换机与设备链路相连,与设备直接通信,中间交换机与交换机或者本地控制器链路相连,不能与设备直接通信;
一个控制器配置两个以上的接口,一个接口由一个接口ID唯一标识,接口ID值为正整数;中心控制器的每个接口与本地控制器链路相连;本地控制器的一个接口与中心路由器链路相连,其余接口与中间交换机链路相连;
一个交换机配置一个上游接口和两个以上的下游接口;一个上游接口或者下游接口由接口ID唯一标识;接口ID值为正整数;
一个中间交换机的上游接口与一个本地控制器或者另一个中间交换机链路相连;中间交换机的下游接口与一个末端交换机或者另一个中间交换机链路相连;
一个末端交换机的上游接口与一个中间交换机链路相连;一个末端交换机的下游接口与一个设备链路相连;
一个设备配置一个接口,该接口与末端交换机链路相连;
如果一个接口的接口ID为f,那么该接口简写为接口f;一个末端交换机具有唯一的坐标,一个本地控制器维护一个交换机表,一个交换机表项由接口ID集合和坐标构成;网络中的消息由消息类型值、接口ID集合、坐标和负载构成;
消息类型值如下表所示:
消息类型值值 | 消息名称 |
1 | 交换机注册消息 |
2 | 控制器注册消息 |
3 | 设备注册消息 |
4 | 请求消息 |
5 | 响应消息 |
在末端交换机ES1的坐标为(x1,y1),所在子网的本地控制器为LC1的条件下,末端交换机ES1通过下述过程定期向本地控制器LC1执行注册操作:
步骤101:开始;
步骤102:末端交换机ES1创建一个交换机注册消息,该交换机注册消息的消息类型值为1,接口ID集合为空,坐标为(x1,y1),负载为空;末端交换机ES1通过上游接口发送该交换机注册消息;
步骤103:判断是本地控制器LC1从接口f1接收到交换机注册消息还是交换机从接口f2接收到交换机注册消息,如果是本地控制器LC1接收到交换机注册消息,则执行步骤105,否则执行步骤104;
步骤104:交换机从接口f2接收到交换机注册消息后,将接口f2加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,从上游接口转发该交换机注册消息,执行步骤103;
步骤105:本地控制器LC1从接口f1接收到交换机注册消息后,将接口f1加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,查看交换机表,如果存在一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,则执行步骤106,否则执行步骤107;
步骤106:本地控制器LC1选择一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,将该交换机表项的接口ID集合更新为该交换机注册消息的接口ID集合,执行步骤108;
步骤107:本地控制器LC1创建一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,该交换机表项的接口ID集合等于该交换机注册消息的接口ID集合;
步骤108:结束。
末端交换机通过上述过程向本地控制器进行注册以建立自己到达本地控制器的路由路径;这样,本地控制器可以获取本地末端交换机的坐标,并获取自己到达该本地交换机的路由路径,这样,本地控制器无需建立路由即可通过交换机表项的接口ID集合实现了与末端交换机的通信,从而大幅度降低了通信延迟。
本发明所述方法中,中心控制器维护一个控制器表,一个控制器表包含接口ID域,横坐标区间域和纵坐标区间域;
本地控制器LC1创建交换机表后,查看交换机表并创建横坐标区间域[xmin,xmax]和纵坐标区间域[ymin,ymax],其中,xmin等于所有交换机表项的坐标域值中最小的横坐标值,xmax等于所有交换机表项的坐标域值中最大的横坐标值,ymin等于所有交换机表项的坐标域值中最小的纵坐标值,ymax等于所有交换机表项的坐标域值中最大的纵坐标值;
本地控制器LC1执行下述过程定期向中心控制器CC1执行注册操作:
步骤201:开始;
步骤202:本地控制器LC1构建一个控制器注册消息,该控制器注册消息的消息类型值为2,接口ID集合为空,坐标为空,负载为横坐标区间[xmin,xmax]和纵坐标区间[ymin,ymax],本地控制器LC1通过与中心控制器CC1链路相连的接口发送该控制器注册消息;
步骤203:中心控制器CC1从接口f3接收到该控制器注册消息,然后查看控制器表,判断是否存在一个控制器表项,该控制器表项的接口ID等于接口f3,是则执行步骤204,否则执行步骤205;
步骤204:中心控制器CC1从接口f3接收到该控制器注册消息后,选择一个控制器表项,该控制器表项的接口ID等于f3,将该控制器表项的横坐标区间和纵坐标区间分别更新为该控制器注册消息负载中的横坐标区间和纵坐标区间;执行步骤206;
步骤205:中心控制器CC1从接口f3接收到该控制器注册消息后,创建一个控制器表项,该控制器表项的接口ID等于f3,该控制器表项的横坐标区间和纵坐标区间分别等于该控制器注册消息负载中的横坐标区间和纵坐标区间;
步骤206:结束。
本地控制器通过上述过程向中心控制器进行注册以建立自己到达中心控制器的路由路径;这样,中心控制器可以获取每个本地控制器与自己连接的接口以实现正确的消息转发操作,同时中心控制器获取了每个本地控制器管理的交换机的所在区域坐标,这样,中心控制器能够选择正确的本地控制器协助提供数据,从而提高数据通信的正确性和成功率。
本发明所述方法中,一个末端交换机维护一个设备表,一个设备表项包含坐标域、接口ID域和生命周期域;如果一个末端交换机检测到一个设备表项的生命周期衰减为0,则删除该设备表项;
设备D1与末端交换机ES1链路相连,设备D1定期向末端交换机ES1执行下述注册操作:
步骤301:开始;
步骤302:设备D1发送一个设备注册消息,该设备注册消息的消息类型值为3,接口ID集合为空,坐标为设备D1的坐标,负载为空;
步骤303:末端交换机ES1从接口f4接收到该设备注册消息,然后查看设备表,判断是否存在一个设备表项,该设备表项的接口ID等于接口f4,是则执行步骤304,否则执行步骤305;
步骤304:末端交换机ES1选择一个设备表项,该设备表项的接口ID等于f4,将该设备表项的坐标更新为该设备注册消息中的坐标,将该设备表项的生命周期设置为最大值,例如500ms;执行步骤306;
步骤305:末端交换机ES1创建一个设备表项,该设备表项的接口ID等于f4,该设备表项的坐标设置为该设备注册消息中的坐标,该设备表项的生命周期设置为最大值;
步骤306:结束。
设备通过上述过程向所链接的本地交换机进行注册以建立本地交换机到达该设备的转发信息;这样,本地交换机可以获取每个链接的设备与自己连接的接口以实现正确的消息转发操作,同时本地交换机获取了每个设备的实时坐标,这样,本地路由器能够选择正确的设备提供数据,从而提高了数据通信效率。
本发明所述方法中,在设备D1的坐标为(x3,y3),设备D2的坐标为(x4,y4),设备D1与末端交换机ES1链路相连,设备D2与末端交换机ES1链路相连的条件下,设备D1通过下述过程获取坐标为(x4,y4)的数据:
步骤401:开始;
步骤402:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x4,y4),负载为空;
步骤403:末端交换机ES1从接口f5接收到该请求消息,将接口f5加入到该请求消息的接口ID集合且作为最后一个元素;末端交换机ES1查看设备表,选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标域值,从该设备表项的接口ID所标识的接口发送该请求消息;
步骤404:设备D2接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤405:末端交换机ES1接收到响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤406:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤407:结束。
设备通过上述过程能够获取本地数据,上述过程中,末端交换机通过转发请求消息和响应消息来实现数据通信,末端交换机通过设备表项保存的坐标信息将请求消息转发给目标设备,然后目标交换机再将目标设备转发的响应消息转发给请求数据的设备,由于设备从本地获取数据,从而大幅度降低了数据通信延迟。
本发明所述方法中,在设备D1的坐标为(x3,y3),设备D3的坐标为(x5,y5),设备D1与末端交换机ES1链路相连,设备D3与末端交换机ES2链路相连,末端交换机ES1和末端交换机ES2属于同一个子网S1,该子网的本地控制器为LC1的条件下,设备D1通过下述过程获取坐标为(x5,y5)的数据:
步骤501:开始;
步骤502:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x5,y5),负载为空;
步骤503:判断是本地控制器LC1从接口f6还是交换机从接口f7接收到该请求消息,如果是本地控制器LC1则执行步骤505,否则执行步骤504;
步骤504:交换机将接口f7加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤503;
步骤505:本地控制器LC1将接口f6加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器LC1选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤506:判断是否末端交换机接收到请求消息,如果是则执行步骤508,否则执行步骤507;
步骤507:中间交换机接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤506;
步骤508:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤509:判断是本地控制器LC1还是中间交换机接收到该响应消息,如果是本地控制器LC1则执行步骤511,否则执行步骤510;
步骤510:中间交换机从上游接口转发该响应消息,执行步骤509;
步骤511:本地控制器LC1选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤512:判断是设备D1还是交换机接收到响应消息,如果是设备D1则执行步骤514,否则执行步骤513;
步骤513:交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤512;
步骤514:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤515:结束。
设备通过上述过程获取本地子网的数据,上述过程中,源设备与目标设备的数据通信无需路由建立过程,即本地控制器通过交换机表项保存了到达目的交换机的路由信息,因此,上述过程大幅度降低了数据通信延迟和代价;同时,本地交换机通过所在子网的末端交换机的坐标,能够选择正确的设备来提供数据,从而增加了数据通信的成功率。
本发明所述方法中,在设备D1的坐标为(x3,y3),设备D4的坐标为(x6,y6),设备D1与末端交换机ES1链路相连,设备D4与末端交换机ES4链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES4属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下;如果满足条件1,设备D1通过下述过程从设备D4获取坐标为(x6,y6)的数据:
条件1:中心控制器CC1存在一个控制器表项,横坐标x6属于控制器表项的横坐标区间且纵坐标y6属于控制器表项的纵坐标区间;
步骤601:开始;
步骤602:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x6,y6),负载为空;
步骤603:判断是本地控制器LC1从接口f8还是交换机从接口f9接收到该请求消息,如果是本地控制器LC1则执行步骤605,否则执行步骤604;
步骤604:交换机将接口f9加入到该请求消息的接口ID集合且作为最后一个元素,交换机从上游接口发送该请求消息,执行步骤603;
步骤605:本地控制器LC1将接口f8加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口f10接收到该请求消息后,将接口f10加入到该请求消息的接口ID集合且作为最后一个元素,然后选择一个控制器表项,横坐标x6属于该控制器表项的横坐标区间且纵坐标y6属于该控制器表项的纵坐标区间,从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口f11接收到该请求消息后,将接口f11加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤606:判断是末端交换机还是中间交换机接收到请求消息,如果是末端交换机则执行步骤608,否则执行步骤607;
步骤607:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息,执行步骤606;
步骤608:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息,设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤609:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤611,否则执行步骤610;
步骤610:中间交换机从上游接口转发该响应消息,执行步骤609;
步骤611:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤612:如果设备D1接收到响应消息,则执行步骤614,否则执行步骤613;
步骤613:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤612;
步骤614:设备D1保存该响应消息负载中的数据;
步骤615:结束。
设备通过上述过程获取远程子网的数据,上述过程中,源设备与目标设备的数据通信无需路由建立过程,即中心控制器通过控制器表项能够将消息转发到正确的本地控制器,本地控制器通过交换机表项能够将消息转发到正确的末端交换机,末端交换机通过设备表项能够将消息转发到正确的设备以提供数据,因此,上述过程大幅度降低了数据通信延迟和代价。
本发明所述方法中,在设备D1的坐标为(x3,y3),设备D5的坐标为(x7,y7),设备D1与末端交换机ES1链路相连,设备D5与末端交换机ES5链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES5属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下,如果不满足条件2,设备D1通过下述过程从设备D5获取坐标为(x7,y7)的数据:
条件2:中心控制器CC1存在一个控制器表项,该横坐标x7属于控制器表项的横坐标区间且纵坐标y7属于控制器表项的纵坐标区间;
步骤701:开始;
步骤702:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x7,y7),负载为空;
步骤703:判断是本地控制器LC1从接口t1还是交换机从接口t2接收到该请求消息,如果是本地控制器LC1则执行步骤705,否则执行步骤704;
步骤704:交换机将接口t2加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤703;
步骤705:本地控制器LC1将接口t3加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口t4接收到该请求消息后,将接口t4加入到该请求消息的接口ID集合且作为最后一个元素,然后查看控制器表,根据公式(1)计算每个控制器表项E1与坐标(x7,y7)之间的距离d1:
公式(1)中,xmin1为控制器表项E1的横坐标区间的下限,xmax1为控制器表项E1的横坐标区间的上限,ymin1为控制器表项E1的纵坐标区间的下限,ymax1为控制器表项E1的纵坐标区间的上限;
中心控制器CC1选择距离值最小的n个控制器表项,n为正整数,一般取值为4,对于每个选择的控制器表项,中心控制器CC1从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口t5接收到该请求消息后,将接口t5加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤706:判断末端交换机还是中间交换机接收到请求消息,如果是末端交换机接收到请求消息,则执行步骤708,否则执行步骤707;
步骤707:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤706;
步骤708:末端交换机接收到该请求消息后,查看设备表,如果存在一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,则执行步骤709,否则执行步骤716;
步骤709:接收到请求消息的末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤710:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤712,否则执行步骤711;
步骤711:中间交换机从上游接口转发该响应消息,执行步骤710;
步骤712:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤713:如果设备D1接收到响应消息,则执行步骤715,否则执行步骤714;
步骤714:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤713;
步骤715:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤716:结束。
设备通过上述过程获取远程子网的数据,上述过程中,中心控制器通过控制器表项能够将消息转发到正确的本地控制器,本地控制器通过交换机表项能够将消息转发到正确的末端交换机,末端交换机通过设备表项能够将消息转发到正确的设备以提供数据,因此,上述过程中,源设备与目标设备的数据通信无需路由建立过程,从而提高了数据通信质量和成功率,也大幅度降低了数据通信延迟和代价。
有益效果:本发明提供了一种稳定可靠的软件定义网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的末端交换机注册流程示意图。
图2为本发明所述的本地控制器注册流程示意图。
图3为本发明所述的设备注册流程示意图。
图4为本发明所述的本地数据通信流程示意图。
图5为本发明所述的子网内数据通信流程示意图。
图6为本发明所述的子网间数据通信流程示意图。
图7为本发明所述的远程数据通信流程示意图。
具体实施方式:
本发明提供了一种稳定可靠的软件定义网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
图1为本发明所述的末端交换机注册流程示意图。所述网络包括控制器、交换机和设备,设备为网络终端节点;控制器包括中心控制器和本地控制器,所述网络包含一个中心控制器和两个以上的本地控制器;交换机包括中间交换机和末端交换机;所述网络划分为两个以上的子网,一个子网由一个本地控制器、两个以上的中间交换机、两个以上的末端交换机以及两个以上的设备构成;中心控制器用于管理本地控制器,本地控制器用于管理所在子网的交换机和设备;末端交换机与设备链路相连,与设备直接通信,中间交换机与交换机或者本地控制器链路相连,不能与设备直接通信;
一个控制器配置两个以上的接口,一个接口由一个接口ID唯一标识,接口ID值为正整数;中心控制器的每个接口与本地控制器链路相连;本地控制器的一个接口与中心路由器链路相连,其余接口与中间交换机链路相连;
一个交换机配置一个上游接口和两个以上的下游接口;一个上游接口或者下游接口由接口ID唯一标识;接口ID值为正整数;
一个中间交换机的上游接口与一个本地控制器或者另一个中间交换机链路相连;中间交换机的下游接口与一个末端交换机或者另一个中间交换机链路相连;
一个末端交换机的上游接口与一个中间交换机链路相连;一个末端交换机的下游接口与一个设备链路相连;
一个设备配置一个接口,该接口与末端交换机链路相连;
如果一个接口的接口ID为f,那么该接口简写为接口f;一个末端交换机具有唯一的坐标,一个本地控制器维护一个交换机表,一个交换机表项由接口ID集合和坐标构成;网络中的消息由消息类型值、接口ID集合、坐标和负载构成;
消息类型值如下表所示:
消息类型值值 | 消息名称 |
1 | 交换机注册消息 |
2 | 控制器注册消息 |
3 | 设备注册消息 |
4 | 请求消息 |
5 | 响应消息 |
在末端交换机ES1的坐标为(x1,y1),所在子网的本地控制器为LC1的条件下,末端交换机ES1通过下述过程定期向本地控制器LC1执行注册操作:
步骤101:开始;
步骤102:末端交换机ES1创建一个交换机注册消息,该交换机注册消息的消息类型值为1,接口ID集合为空,坐标为(x1,y1),负载为空;末端交换机ES1通过上游接口发送该交换机注册消息;
步骤103:判断是本地控制器LC1从接口f1接收到交换机注册消息还是交换机从接口f2接收到交换机注册消息,如果是本地控制器LC1接收到交换机注册消息,则执行步骤105,否则执行步骤104;
步骤104:交换机从接口f2接收到交换机注册消息后,将接口f2加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,从上游接口转发该交换机注册消息,执行步骤103;
步骤105:本地控制器LC1从接口f1接收到交换机注册消息后,将接口f1加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,查看交换机表,如果存在一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,则执行步骤106,否则执行步骤107;
步骤106:本地控制器LC1选择一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,将该交换机表项的接口ID集合更新为该交换机注册消息的接口ID集合,执行步骤108;
步骤107:本地控制器LC1创建一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,该交换机表项的接口ID集合等于该交换机注册消息的接口ID集合;
步骤108:结束。
图2为本发明所述的本地控制器注册流程示意图。中心控制器维护一个控制器表,一个控制器表包含接口ID域,横坐标区间域和纵坐标区间域;
本地控制器LC1创建交换机表后,查看交换机表并创建横坐标区间域[xmin,xmax]和纵坐标区间域[ymin,ymax],其中,xmin等于所有交换机表项的坐标域值中最小的横坐标值,xmax等于所有交换机表项的坐标域值中最大的横坐标值,ymin等于所有交换机表项的坐标域值中最小的纵坐标值,ymax等于所有交换机表项的坐标域值中最大的纵坐标值;
本地控制器LC1执行下述过程定期向中心控制器CC1执行注册操作:
步骤201:开始;
步骤202:本地控制器LC1构建一个控制器注册消息,该控制器注册消息的消息类型值为2,接口ID集合为空,坐标为空,负载为横坐标区间[xmin,xmax]和纵坐标区间[ymin,ymax],本地控制器LC1通过与中心控制器CC1链路相连的接口发送该控制器注册消息;
步骤203:中心控制器CC1从接口f3接收到该控制器注册消息,然后查看控制器表,判断是否存在一个控制器表项,该控制器表项的接口ID等于接口f3,是则执行步骤204,否则执行步骤205;
步骤204:中心控制器CC1从接口f3接收到该控制器注册消息后,选择一个控制器表项,该控制器表项的接口ID等于f3,将该控制器表项的横坐标区间和纵坐标区间分别更新为该控制器注册消息负载中的横坐标区间和纵坐标区间;执行步骤206;
步骤205:中心控制器CC1从接口f3接收到该控制器注册消息后,创建一个控制器表项,该控制器表项的接口ID等于f3,该控制器表项的横坐标区间和纵坐标区间分别等于该控制器注册消息负载中的横坐标区间和纵坐标区间;
步骤206:结束。
图3为本发明所述的设备注册流程示意图。一个末端交换机维护一个设备表,一个设备表项包含坐标域、接口ID域和生命周期域;如果一个末端交换机检测到一个设备表项的生命周期衰减为0,则删除该设备表项;
设备D1与末端交换机ES1链路相连,设备D1定期向末端交换机ES1执行下述注册操作:
步骤301:开始;
步骤302:设备D1发送一个设备注册消息,该设备注册消息的消息类型值为3,接口ID集合为空,坐标为设备D1的坐标,负载为空;
步骤303:末端交换机ES1从接口f4接收到该设备注册消息,然后查看设备表,判断是否存在一个设备表项,该设备表项的接口ID等于接口f4,是则执行步骤304,否则执行步骤305;
步骤304:末端交换机ES1选择一个设备表项,该设备表项的接口ID等于f4,将该设备表项的坐标更新为该设备注册消息中的坐标,将该设备表项的生命周期设置为最大值,执行步骤306;
步骤305:末端交换机ES1创建一个设备表项,该设备表项的接口ID等于f4,该设备表项的坐标设置为该设备注册消息中的坐标,该设备表项的生命周期设置为最大值;
步骤306:结束。
图4为本发明所述的本地数据通信流程示意图。在设备D1的坐标为(x3,y3),设备D2的坐标为(x4,y4),设备D1与末端交换机ES1链路相连,设备D2与末端交换机ES1链路相连的条件下,设备D1通过下述过程获取坐标为(x4,y4)的数据:
步骤401:开始;
步骤402:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x4,y4),负载为空;
步骤403:末端交换机ES1从接口f5接收到该请求消息,将接口f5加入到该请求消息的接口ID集合且作为最后一个元素;末端交换机ES1查看设备表,选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标域值,从该设备表项的接口ID所标识的接口发送该请求消息;
步骤404:设备D2接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤405:末端交换机ES1接收到响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤406:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤407:结束。
图5为本发明所述的子网内数据通信流程示意图。在设备D1的坐标为(x3,y3),设备D3的坐标为(x5,y5),设备D1与末端交换机ES1链路相连,设备D3与末端交换机ES2链路相连,末端交换机ES1和末端交换机ES2属于同一个子网S1,该子网的本地控制器为LC1的条件下,设备D1通过下述过程获取坐标为(x5,y5)的数据:
步骤501:开始;
步骤502:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x5,y5),负载为空;
步骤503:判断是本地控制器LC1从接口f6还是交换机从接口f7接收到该请求消息,如果是本地控制器LC1则执行步骤505,否则执行步骤504;
步骤504:交换机将接口f7加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤503;
步骤505:本地控制器LC1将接口f6加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器LC1选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤506:判断是否末端交换机接收到请求消息,如果是则执行步骤508,否则执行步骤507;
步骤507:中间交换机接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤506;
步骤508:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤509:判断是本地控制器LC1还是中间交换机接收到该响应消息,如果是本地控制器LC1则执行步骤511,否则执行步骤510;
步骤510:中间交换机从上游接口转发该响应消息,执行步骤509;
步骤511:本地控制器LC1选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤512:判断是设备D1还是交换机接收到响应消息,如果是设备D1则执行步骤514,否则执行步骤513;
步骤513:交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤512;
步骤514:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤515:结束。
图6为本发明所述的子网间数据通信流程示意图。在设备D1的坐标为(x3,y3),设备D4的坐标为(x6,y6),设备D1与末端交换机ES1链路相连,设备D4与末端交换机ES4链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES4属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下;如果满足条件1,设备D1通过下述过程从设备D4获取坐标为(x6,y6)的数据:
条件1:中心控制器CC1存在一个控制器表项,横坐标x6属于控制器表项的横坐标区间且纵坐标y6属于控制器表项的纵坐标区间;
步骤601:开始;
步骤602:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x6,y6),负载为空;
步骤603:判断是本地控制器LC1从接口f8还是交换机从接口f9接收到该请求消息,如果是本地控制器LC1则执行步骤605,否则执行步骤604;
步骤604:交换机将接口f9加入到该请求消息的接口ID集合且作为最后一个元素,交换机从上游接口发送该请求消息,执行步骤603;
步骤605:本地控制器LC1将接口f8加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口f10接收到该请求消息后,将接口f10加入到该请求消息的接口ID集合且作为最后一个元素,然后选择一个控制器表项,横坐标x6属于该控制器表项的横坐标区间且纵坐标y6属于该控制器表项的纵坐标区间,从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口f11接收到该请求消息后,将接口f11加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤606:判断是末端交换机还是中间交换机接收到请求消息,如果是末端交换机则执行步骤608,否则执行步骤607;
步骤607:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息,执行步骤606;
步骤608:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息,设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤609:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤611,否则执行步骤610;
步骤610:中间交换机从上游接口转发该响应消息,执行步骤609;
步骤611:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤612:如果设备D1接收到响应消息,则执行步骤614,否则执行步骤613;
步骤613:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤612;
步骤614:设备D1保存该响应消息负载中的数据;
步骤615:结束。
图7为本发明所述的远程数据通信流程示意图。在设备D1的坐标为(x3,y3),设备D5的坐标为(x7,y7),设备D1与末端交换机ES1链路相连,设备D5与末端交换机ES5链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES5属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下,如果不满足条件2,设备D1通过下述过程从设备D5获取坐标为(x7,y7)的数据:
条件2:中心控制器CC1存在一个控制器表项,该横坐标x7属于控制器表项的横坐标区间且纵坐标y7属于控制器表项的纵坐标区间;
步骤701:开始;
步骤702:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x7,y7),负载为空;
步骤703:判断是本地控制器LC1从接口t1还是交换机从接口t2接收到该请求消息,如果是本地控制器LC1则执行步骤705,否则执行步骤704;
步骤704:交换机将接口t2加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤703;
步骤705:本地控制器LC1将接口t3加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口t4接收到该请求消息后,将接口t4加入到该请求消息的接口ID集合且作为最后一个元素,然后查看控制器表,根据公式(1)计算每个控制器表项E1与坐标(x7,y7)之间的距离d1:
公式(1)中,xmin1为控制器表项E1的横坐标区间的下限,xmax1为控制器表项E1的横坐标区间的上限,ymin1为控制器表项E1的纵坐标区间的下限,ymax1为控制器表项E1的纵坐标区间的上限;
中心控制器CC1选择距离值最小的n个控制器表项,n为正整数,对于每个选择的控制器表项,中心控制器CC1从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口t5接收到该请求消息后,将接口t5加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤706:判断末端交换机还是中间交换机接收到请求消息,如果是末端交换机接收到请求消息,则执行步骤708,否则执行步骤707;
步骤707:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤706;
步骤708:末端交换机接收到该请求消息后,查看设备表,如果存在一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,则执行步骤709,否则执行步骤716;
步骤709:接收到请求消息的末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤710:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤712,否则执行步骤711;
步骤711:中间交换机从上游接口转发该响应消息,执行步骤710;
步骤712:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤713:如果设备D1接收到响应消息,则执行步骤715,否则执行步骤714;
步骤714:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤713;
步骤715:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤716:结束。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种稳定可靠的软件定义网络实现方法,性能分析如下:当网络数据传输量较小时,设备获取数据的延迟较低,当网络数据传输量较大时,设备获取数据的延迟较高;网络获取数据的平均延迟为1.39s。
表1仿真参数
本发明提供了一种稳定可靠的软件定义网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
Claims (7)
1.一种稳定可靠的软件定义网络实现方法,其特征在于,所述网络包括控制器、交换机和设备,设备为网络终端节点;控制器包括中心控制器和本地控制器,所述网络包含一个中心控制器和两个以上的本地控制器;交换机包括中间交换机和末端交换机;所述网络划分为两个以上的子网,一个子网由一个本地控制器、两个以上的中间交换机、两个以上的末端交换机以及两个以上的设备构成;中心控制器用于管理本地控制器,本地控制器用于管理所在子网的交换机和设备;末端交换机与设备链路相连,与设备直接通信,一个中间交换机与其他中间交换机或者末端交换机或者本地控制器链路相连,不能与设备直接通信;
一个控制器配置两个以上的接口,一个接口由一个接口ID唯一标识,接口ID值为正整数;中心控制器的每个接口与本地控制器链路相连;本地控制器的一个接口与中心路由器链路相连,其余接口与中间交换机链路相连;
一个交换机配置一个上游接口和两个以上的下游接口;一个上游接口或者下游接口由接口ID唯一标识;接口ID值为正整数;
一个中间交换机的上游接口与一个本地控制器或者另一个中间交换机链路相连;中间交换机的下游接口与一个末端交换机或者另一个中间交换机链路相连;
一个末端交换机的上游接口与一个中间交换机链路相连;一个末端交换机的下游接口与一个设备链路相连;
一个设备配置一个接口,该接口与末端交换机链路相连;
如果一个接口的接口ID为f,那么该接口简写为接口f;一个末端交换机具有唯一的坐标,一个本地控制器维护一个交换机表,一个交换机表项由接口ID集合和坐标构成;网络中的消息由消息类型值、接口ID集合、坐标和负载构成;
消息类型值如下表所示:
在末端交换机ES1的坐标为(x1,y1),所在子网的本地控制器为LC1的条件下,末端交换机ES1通过下述过程定期向本地控制器LC1执行注册操作:
步骤101:开始;
步骤102:末端交换机ES1创建一个交换机注册消息,该交换机注册消息的消息类型值为1,接口ID集合为空,坐标为(x1,y1),负载为空;末端交换机ES1通过上游接口发送该交换机注册消息;
步骤103:判断是本地控制器LC1从接口f1接收到交换机注册消息还是中间交换机从接口f2接收到交换机注册消息,如果是本地控制器LC1接收到交换机注册消息,则执行步骤105,否则执行步骤104;
步骤104:中间交换机从接口f2接收到交换机注册消息后,将接口f2加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,从上游接口转发该交换机注册消息,执行步骤103;
步骤105:本地控制器LC1从接口f1接收到交换机注册消息后,将接口f1加入到该交换机注册消息的接口ID集合中并作为最后一个元素存在,查看交换机表,如果存在一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,则执行步骤106,否则执行步骤107;
步骤106:本地控制器LC1选择一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,将该交换机表项的接口ID集合更新为该交换机注册消息的接口ID集合,执行步骤108;
步骤107:本地控制器LC1创建一个交换机表项,该交换机表项的坐标域值等于该交换机注册消息的坐标域值,该交换机表项的接口ID集合等于该交换机注册消息的接口ID集合;
步骤108:结束。
2.根据权利要求1所述的一种稳定可靠的软件定义网络实现方法,其特征在于,中心控制器维护一个控制器表,一个控制器表包含接口ID域,横坐标区间域和纵坐标区间域;
本地控制器LC1创建交换机表后,查看交换机表并创建横坐标区间域[xmin,xmax]和纵坐标区间域[ymin,ymax],其中,xmin等于所有交换机表项的坐标域值中最小的横坐标值,xmax等于所有交换机表项的坐标域值中最大的横坐标值,ymin等于所有交换机表项的坐标域值中最小的纵坐标值,ymax等于所有交换机表项的坐标域值中最大的纵坐标值;
本地控制器LC1执行下述过程定期向中心控制器CC1执行注册操作:
步骤201:开始;
步骤202:本地控制器LC1构建一个控制器注册消息,该控制器注册消息的消息类型值为2,接口ID集合为空,坐标为空,负载为横坐标区间[xmin,xmax]和纵坐标区间[ymin,ymax],本地控制器LC1通过与中心控制器CC1链路相连的接口发送该控制器注册消息;
步骤203:中心控制器CC1从接口f3接收到该控制器注册消息,然后查看控制器表,判断是否存在一个控制器表项,该控制器表项的接口ID等于接口f3,是则执行步骤204,否则执行步骤205;
步骤204:中心控制器CC1从接口f3接收到该控制器注册消息后,选择一个控制器表项,该控制器表项的接口ID等于f3,将该控制器表项的横坐标区间和纵坐标区间分别更新为该控制器注册消息负载中的横坐标区间和纵坐标区间;执行步骤206;
步骤205:中心控制器CC1从接口f3接收到该控制器注册消息后,创建一个控制器表项,该控制器表项的接口ID等于f3,该控制器表项的横坐标区间和纵坐标区间分别等于该控制器注册消息负载中的横坐标区间和纵坐标区间;
步骤206:结束。
3.根据权利要求1所述的一种稳定可靠的软件定义网络实现方法,其特征在于,一个末端交换机维护一个设备表,一个设备表项包含坐标域、接口ID域和生命周期域;如果一个末端交换机检测到一个设备表项的生命周期衰减为0,则删除该设备表项;
设备D1与末端交换机ES1链路相连,设备D1定期向末端交换机ES1执行下述注册操作:
步骤301:开始;
步骤302:设备D1发送一个设备注册消息,该设备注册消息的消息类型值为3,接口ID集合为空,坐标为设备D1的坐标,负载为空;
步骤303:末端交换机ES1从接口f4接收到该设备注册消息,然后查看设备表,判断是否存在一个设备表项,该设备表项的接口ID等于接口f4,是则执行步骤304,否则执行步骤305;
步骤304:末端交换机ES1选择一个设备表项,该设备表项的接口ID等于f4,将该设备表项的坐标更新为该设备注册消息中的坐标,将该设备表项的生命周期设置为最大值,执行步骤306;
步骤305:末端交换机ES1创建一个设备表项,该设备表项的接口ID等于f4,该设备表项的坐标设置为该设备注册消息中的坐标,该设备表项的生命周期设置为最大值;
步骤306:结束。
4.根据权利要求3所述的一种稳定可靠的软件定义网络实现方法,其特征在于,在设备D1的坐标为(x3,y3),设备D2的坐标为(x4,y4),设备D1与末端交换机ES1链路相连,设备D2与末端交换机ES1链路相连的条件下,设备D1通过下述过程获取坐标为(x4,y4)的数据:
步骤401:开始;
步骤402:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x4,y4),负载为空;
步骤403:末端交换机ES1从接口f5接收到该请求消息,将接口f5加入到该请求消息的接口ID集合且作为最后一个元素;末端交换机ES1查看设备表,选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标域值,从该设备表项的接口ID所标识的接口发送该请求消息;
步骤404:设备D2接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤405:末端交换机ES1接收到响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤406:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤407:结束。
5.根据权利要求4所述的一种稳定可靠的软件定义网络实现方法,其特征在于,在设备D1的坐标为(x3,y3),设备D3的坐标为(x5,y5),设备D1与末端交换机ES1链路相连,设备D3与末端交换机ES2链路相连,末端交换机ES1和末端交换机ES2属于同一个子网S1,该子网的本地控制器为LC1的条件下,设备D1通过下述过程获取坐标为(x5,y5)的数据:
步骤501:开始;
步骤502:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x5,y5),负载为空;
步骤503:判断是本地控制器LC1从接口f6还是交换机从接口f7接收到该请求消息,如果是本地控制器LC1则执行步骤505,否则执行步骤504;
步骤504:交换机将接口f7加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤503;
步骤505:本地控制器LC1将接口f6加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器LC1选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤506:判断是否末端交换机接收到请求消息,如果是则执行步骤508,否则执行步骤507;
步骤507:中间交换机接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤506;
步骤508:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤509:判断是本地控制器LC1还是中间交换机接收到该响应消息,如果是本地控制器LC1则执行步骤511,否则执行步骤510;
步骤510:中间交换机从上游接口转发该响应消息,执行步骤509;
步骤511:本地控制器LC1选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤512:判断是设备D1还是交换机接收到响应消息,如果是设备D1则执行步骤514,否则执行步骤513;
步骤513:交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤512;
步骤514:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤515:结束。
6.根据权利要求5所述的一种稳定可靠的软件定义网络实现方法,其特征在于,在设备D1的坐标为(x3,y3),设备D4的坐标为(x6,y6),设备D1与末端交换机ES1链路相连,设备D4与末端交换机ES4链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES4属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下;如果满足条件1,设备D1通过下述过程从设备D4获取坐标为(x6,y6)的数据:
条件1:中心控制器CC1存在一个控制器表项,横坐标x6属于控制器表项的横坐标区间且纵坐标y6属于控制器表项的纵坐标区间;
步骤601:开始;
步骤602:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x6,y6),负载为空;
步骤603:判断是本地控制器LC1从接口f8还是交换机从接口f9接收到该请求消息,如果是本地控制器LC1则执行步骤605,否则执行步骤604;
步骤604:交换机将接口f9加入到该请求消息的接口ID集合且作为最后一个元素,交换机从上游接口发送该请求消息,执行步骤603;
步骤605:本地控制器LC1将接口f8加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口f10接收到该请求消息后,将接口f10加入到该请求消息的接口ID集合且作为最后一个元素,然后选择一个控制器表项,横坐标x6属于该控制器表项的横坐标区间且纵坐标y6属于该控制器表项的纵坐标区间,从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口f11接收到该请求消息后,将接口f11加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤606:判断是末端交换机还是中间交换机接收到请求消息,如果是末端交换机则执行步骤608,否则执行步骤607;
步骤607:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息,执行步骤606;
步骤608:末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息,设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤609:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤611,否则执行步骤610;
步骤610:中间交换机从上游接口转发该响应消息,执行步骤609;
步骤611:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤612:如果设备D1接收到响应消息,则执行步骤614,否则执行步骤613;
步骤613:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤612;
步骤614:设备D1保存该响应消息负载中的数据;
步骤615:结束。
7.根据权利要求6所述的一种稳定可靠的软件定义网络实现方法,其特征在于,在设备D1的坐标为(x3,y3),设备D5的坐标为(x7,y7),设备D1与末端交换机ES1链路相连,设备D5与末端交换机ES5链路相连,末端交换机ES1属于子网S1,该子网S1的本地控制器为LC1,末端交换机ES5属于子网S2,该子网S2的本地控制器为LC2,网络的中心控制器为CC1的条件下,如果不满足条件2,设备D1通过下述过程从设备D5获取坐标为(x7,y7)的数据:
条件2:中心控制器CC1存在一个控制器表项,该横坐标x7属于控制器表项的横坐标区间且纵坐标y7属于控制器表项的纵坐标区间;
步骤701:开始;
步骤702:设备D1发送一个请求消息,该请求消息的消息类型值为4,接口ID集合为空,坐标为(x7,y7),负载为空;
步骤703:判断是本地控制器LC1从接口t1还是交换机从接口t2接收到该请求消息,如果是本地控制器LC1则执行步骤705,否则执行步骤704;
步骤704:交换机将接口t2加入到该请求消息的接口ID集合且作为最后一个元素,从上游接口发送该请求消息,执行步骤703;
步骤705:本地控制器LC1将接口t3加入到该请求消息的接口ID集合且作为最后一个元素;本地控制器LC1从与中心控制器CC1链接的接口转发该请求消息;中心控制器CC1从接口t4接收到该请求消息后,将接口t4加入到该请求消息的接口ID集合且作为最后一个元素,然后查看控制器表,根据公式(1)计算每个控制器表项E1与坐标(x7,y7)之间的距离d1:
公式(1)中,xmin1为控制器表项E1的横坐标区间的下限,xmax1为控制器表项E1的横坐标区间的上限,ymin1为控制器表项E1的纵坐标区间的下限,ymax1为控制器表项E1的纵坐标区间的上限;
中心控制器CC1选择距离值最小的n个控制器表项,n为正整数,对于每个选择的控制器表项,中心控制器CC1从该控制器表项的接口ID域值所标识的接口转发该请求消息;本地控制器从接口t5接收到该请求消息后,将接口t5加入到该请求消息的接口ID集合且作为最后一个元素,该本地控制器查看交换机表,选择一个交换机表项,该交换机表项的坐标与该请求消息的坐标距离最近,将该交换机表项的接口ID集合加入到该请求消息的接口ID集合,且该交换机表项的接口ID集合的第一个元素在该请求消息的接口ID集合的最后一个元素之后;本地控制器选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;
步骤706:判断末端交换机还是中间交换机接收到请求消息,如果是末端交换机接收到请求消息,则执行步骤708,否则执行步骤707;
步骤707:中间交换机选择一个接口,该接口的接口ID等于该请求消息的接口ID集合中的最后一个元素,从该请求消息的接口ID集合中删除最后一个元素,从选中的接口发送该请求消息;执行步骤706;
步骤708:末端交换机接收到该请求消息后,查看设备表,如果存在一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,则执行步骤709,否则执行步骤716;
步骤709:接收到请求消息的末端交换机选择一个设备表项,该设备表项的坐标域值等于该请求消息的坐标,从该设备表项的接口发送该请求消息;设备接收到该请求消息后,发送一个响应消息,该响应消息的消息类型值为5,接口ID集合等于该请求消息的接口ID集合,坐标等于该请求消息的坐标,负载为响应数据;
步骤710:判断是本地控制器还是中间交换机接收到该响应消息,如果是本地控制器则执行步骤712,否则执行步骤711;
步骤711:中间交换机从上游接口转发该响应消息,执行步骤710;
步骤712:本地控制器选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;
步骤713:如果设备D1接收到响应消息,则执行步骤715,否则执行步骤714;
步骤714:控制器或者交换机接收到该响应消息后,选择一个接口,该接口的接口ID等于该响应消息的接口ID集合中的最后一个元素,从该响应消息的接口ID集合中删除最后一个元素,从选中的接口发送该响应消息;执行步骤713;
步骤715:设备D1接收到该响应消息后,保存该响应消息负载中的数据;
步骤716:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916529.6A CN108965029B (zh) | 2018-08-13 | 2018-08-13 | 一种稳定可靠的软件定义网络实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916529.6A CN108965029B (zh) | 2018-08-13 | 2018-08-13 | 一种稳定可靠的软件定义网络实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965029A CN108965029A (zh) | 2018-12-07 |
CN108965029B true CN108965029B (zh) | 2021-04-06 |
Family
ID=64469427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810916529.6A Active CN108965029B (zh) | 2018-08-13 | 2018-08-13 | 一种稳定可靠的软件定义网络实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965029B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110034817B (zh) | 2019-04-29 | 2020-06-19 | 北京邮电大学 | 基于软件定义网络的低轨道卫星网络路由方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105246118A (zh) * | 2015-09-08 | 2016-01-13 | 常熟理工学院 | 一种基于定位信息的无线网络通信实现方法 |
CN108347381A (zh) * | 2018-03-21 | 2018-07-31 | 常熟理工学院 | 一种新一代数据网络通信方法 |
-
2018
- 2018-08-13 CN CN201810916529.6A patent/CN108965029B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105246118A (zh) * | 2015-09-08 | 2016-01-13 | 常熟理工学院 | 一种基于定位信息的无线网络通信实现方法 |
CN108347381A (zh) * | 2018-03-21 | 2018-07-31 | 常熟理工学院 | 一种新一代数据网络通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108965029A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109150723B (zh) | 一种物联网的路由通信实现方法 | |
CN109257789B (zh) | 一种基于多跳簇的车载网数据通信方法 | |
CN109246785B (zh) | 一种未来移动网络的实现方法 | |
CN109088778B (zh) | 一种未来移动网络的数据通信实现方法 | |
CN101478490A (zh) | 一种支持tipc的多集群网络通信的方法和装置 | |
CN105187529A (zh) | 一种基于定位信息的车联网实现方法 | |
CN103023773A (zh) | 多拓扑网络中转发报文的方法、装置和系统 | |
CN105099902A (zh) | 一种用于量子Mesh网络的路由方法 | |
CN105827439A (zh) | 实现无线设备自组网的方法 | |
CN105119828A (zh) | 一种快速的无线网络路由实现方法 | |
CN108965029B (zh) | 一种稳定可靠的软件定义网络实现方法 | |
CN105188104A (zh) | 一种无线网络通信的实现方法 | |
CN105188103A (zh) | Mesh网络路由协议中的快速漫游优化方法 | |
CN104618525A (zh) | 基于分层路由跨异构网络的无缝连接的方法 | |
CN104243303A (zh) | 一种自治系统环路组网中发送更新报文的方法和装置 | |
JP2008017279A (ja) | アドホックネットワークの通信制御方式 | |
CN111245725B (zh) | 一种基于分布式的未来网络实现方法 | |
CN104717640A (zh) | 一种基于定位的无线网络通信的实现方法 | |
CN105050148A (zh) | 一种无线传感网路由的实现方法 | |
CN109768893B (zh) | 一种高效的大数据网络数据通信实现方法 | |
CN109089293B (zh) | 一种未来移动网络的路由通信实现方法 | |
CN108494595B (zh) | 一种高效的新一代大数据网络实现方法 | |
CN110769479A (zh) | 一种高效的新一代无线网络通信方法 | |
CN105743745A (zh) | 网络拓结构及其信息更新方法和装置 | |
CN105827743A (zh) | 一种云的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |