发明内容
有鉴于此,本发明提供一种控制设备,用以简化控制设备和交换机的数据传送过程,提高控制设备信息处理效率。
另外,本发明还提供一种交换机,用以简化和控制设备的数据传送过程,提高交换机处理数据的效率。
本发明提供一种控制设备管理的方法,用以简化控制设备和交换机的数据传送过程,提高控制设备信息处理效率。
另外,本发明还提供一种交换机管理的方法,用以简化和控制设备的数据传送过程,提高交换机处理数据的效率。
本发明实施方式中提供的控制设备,所述控制设备与交换机进行通信,所述控制设备包括存储器,所述存储器中存储多个网络应用程序,所述网络应用程序是对所述交换机接收的数据流进行处理的软件程序,所述控制设备还包括:选择模块、控制模块。选择模块用于从所述多个网络应用程序中选取所述交换机所需的网络应用程序,控制模块用于将所选取的网络应用程序发送给所述交换机,并在发送完毕后发送安装命令给所述交换机,以控制所述交换机安装所需的网络应用程序。
优选地,所述控制设备还包括管理模块用于向所述交换机发送询问消息,询问所述交换机已经安装的网络应用程序,其中所述选择模块接收所述交换机返回的已安装程序表,并选取不包含在所述已安装程序表中的网络应用程序以发送给所述交换机。
优选地,所述选择模块接收所述交换机发送的下载网络应用程序的请求信息,并根据所述请求信息选取所述交换机所指定要下载的网络应用程序以发送给所述交换机。
优选地,所述选择模块还用于对选取的所述网络应用程序进行分块处理,并对所述网络应用程序的程序块进行标号,所述控制模块利用扩展的包裹信息依照所述标号传送所述程序块给所述交换机。
优选地,所述扩展的包裹信息包括信令类型、网络应用程序名称和/或程序块标号。
本发明实施方式中提供的交换机,所述交换机与控制设备进行通信,所述交换机包括安装模块、代理模块。安装模块用于接收所述控制设备发送的网络应用程序,并接收所述控制设备发送的安装命令,安装所述网络应用程序,代理模块用于为所述网络应用程序建立处理任务,与所述网络应用程序进行通信,将数据流提供给所述网络应用程序进行处理。
优选地,所述数据流为packet-out报文。
优选地,还包括查询模块用于接收所述控制设备发送的询问信息,查询所述交换机已经安装的网络应用程序,生成已安装程序表,并将所述已安装程序表发送给所述控制设备。
优选地,还包括查询模块用于向所述控制设备发送下载网络应用程序的请求信息,所述请求信息包含指定要下载的网络应用程序,以供所述控制设备根据所述请求信息选取所述指定要下载的的网络应用程序。
优选地,所述安装模块接收所述网络应用程序的具体步骤包括接收组成网络应用程序的N个程序块,其中,每个程序块具有标号,所述程序块是利用扩展的包裹信息依照所述标号进行传送的。
优选地,所述扩展的包裹信息包括信令类型、网络应用程序名称和/或程序块标号。
优选地,所述网络应用程序接收所述数据流并判断是否识别所述数据流,如果识别,则产生对所述数据流的处理流程,并将所述处理流程发送至所述代理模块,所述代理模块还用于接收所述处理流程,根据所述处理流程对数据流进行处理。
优选地,所述代理模块还用于当所述网络应用程序不识别所述数据流时,将所述数据流传输给下一个网络应用程序进行处理。
优选地,所述代理模块还用于当所述交换机的所有网络应用程序都无法识别所述数据流时,将所述数据流传给所述控制设备。
本发明实施方式中提供的控制设备的管理方法,所述控制设备与交换机进行通信,所述控制设备包括存储器,所述存储器中存储多个网络应用程序,所述网络应用程序是对所述交换机接收的数据流进行处理的软件程序,所述方法还包括从所述多个网络应用程序中选取所述交换机所需的网络应用程序,将所选取的网络应用程序发送给所述交换机,并在发送完毕后发送安装命令给所述交换机,以控制所述交换机安装所需的网络应用程序。
优选地,所述方法还包括向所述交换机发送询问消息,询问所述交换机已经安装的网络应用程序,接收所述交换机返回的已安装程序表,并选取不包含在所述已安装程序表中的网络应用程序以发送给所述交换机。
优选地,所述方法还包括接收所述交换机发送的下载网络应用程序的请求信息,并根据所述请求信息选取所述交换机所指定要下载的网络应用程序以发送给所述交换机。
优选地,所述方法还包括对选取的所述网络应用程序进行分块处理,并对所述网络应用程序的程序块进行标号,利用扩展的包裹信息依照所述标号传送所述程序块给所述交换机。
优选地,所述扩展的包裹信息包括信令类型、网络应用程序名称和/或程序块标号。
本发明实施方式中提供的交换机的管理方法,所述交换机与控制设备进行通信,所述方法包括接收所述控制设备发送的网络应用程序,并接收所述控制设备发送的安装命令,安装所述网络应用程序,为所述网络应用程序建立处理任务,与所述网络应用程序进行通信,将数据流提供给所述网络应用程序进行处理。
优选地,所述数据流为packet-out报文。
优选地,所述方法还包括接收所述控制设备发送的询问信息,查询所述交换机已经安装的网络应用程序,生成已安装程序表,并将所述已安装程序表发送给所述控制设备。
优选地,所述方法还包括向所述控制设备发送下载网络应用程序的请求信息,所述请求信息包含指定要下载的网络应用程序,以供所述控制设备根据所述请求信息选取所述指定要下载的的网络应用程序。
优选地,接收所述网络应用程序的具体步骤包括接收组成网络应用程序的N个程序块,其中,每个程序块具有标号,所述程序块是利用扩展的包裹信息依照所述标号进行传送的。
优选地,所述扩展的包裹信息包括信令类型、网络应用程序名称和/或程序块标号。
优选地,所述方法还包括所述网络应用程序接收所述数据流并判断是否识别所述数据流,如果识别,则产生对所述数据流的处理流程,并根据所述处理流程对数据流进行处理。
优选地,当所述网络应用程序不识别所述数据流时,将所述数据流传输给下一个网络应用程序进行处理。
优选地,所述方法还包括当所述交换机所有网络应用程序都无法识别所述数据流时,将所述数据流传给所述控制设备。
因此,本发明实施方式中的控制设备、交换机及管理方法能简化控制设备和交换机之间的数据传送过程,提高控制设备和交换机之间传送数据流表的效率,交换机能独立的完成部分数据流的处理,减轻控制设备的处理器负担,将控制设备中的处理数据流功能,以网络应用程序的方式安装于交换机上,以降低控制设备的处理时间及负担,控制设备能依交换机的性能及处理需求,安装不同的网络应用程序,提高交换机处理数据的能力,协助当控制设备停止运作时,交换机还能以网络应用程序处理数据流,并确保数据流能被正确的处理。
具体实施方式
参阅图3,图3所示为本发明控制设备10、第一交换机20a的应用环境图。在图3中包含控制设备10,第一交换机20a、第二交换机20b、第三交换机20c、第四交换机20d,其中,第一交换机20a、第二交换机20b为核心交换机,第三交换机20c、第四交换机20d为边缘交换机,控制设备10与第一交换机20a直接相连、控制设备10与第二交换机20b直接相连,第一交换机20a、第二交换机20b、第三交换机20c、第四交换机20d之间两两相连,第三交换机20c与第一主机30a相连,第四交换机20d第二主机30b连接。
为了解决控制设备和交换机之间之间数据流来回重复传递、交换机的带外信号管理端口传输速度限制与控制设备之间的通信速度等问题,本实发明在控制设备10中存储多个网络应用程序,每个网络应用程序能对一种数据流进行处理,比如对地址解析数据流进行处理的地址解析应用程序,也可为实现其他网络功能的程序,如路由应用程序、防火墙程序等。控制设备为交换机预先安装网络应用程序,当交换机接收数据流后,将数据流传给自身安装的网络应用程序进行识别处理,这样,交换机无须将所有数据流都传给控制设备进行处理,避免了控制设备和交换机之间数据流来回重复传递的问题,由于大大减少了交换机和控制设备之间的数据流,因而也解决了交换机的带外信号管理端口限制与控制设备之间的通信速度的问题。下面为本发明实施方式的详细说明。
参阅图4,图4所示为本发明控制设备10、第一交换机20a一实施方式的功能模块图。在本实施方式中,控制设备10、第一交换机20a应用于在图3所示的实施环境中,第一交换机20a通过带外信号管理端口20a2经过安全通道40与控制设备10相连,类似地,第二交换机20b通过自身的带外信号管理端口经过安全通道与控制设备10相连。第一交换机20a和第二第二交换机20b的结构功能相同或相似。
在本实施方式中,控制设备10包括管理模块100、选择模块102、控制模块104、存储器106,其中,存储器106中存储有多个网络应用程序,每个网络应用程序能对一种数据流进行处理,比如对地址解析数据流进行处理的地址解析应用程序,也可为实现其他网络功能的程序,如路由应用程序、防火墙程序等。第一交换机20a包括查询模块200、安装模块202及代理模块204。
控制设备10的管理模块100向第一交换机20a发送询问消息,询问第一交换机20a已经安装的网络应用程序。其中,网络应用程序是安装在交换机中用于对交换机接收的数据流进行处理的软件程序,比如常见的地址解析应用程序、Layer2学习程序、路由应用程序、防火墙程序等,每个网络应用程序有对应的身份号码(identification,ID)。
第一交换机20a的查询模块200接收控制设备10发送的询问信息,查询已经安装的网络应用程序,生成已安装程序表,并将已安装程序表发送给控制设备10。
控制设备10的选择模块102接收第一交换机20a发送的已安装程序表,并从存储器106中选取不包含在已安装程序表中的其他的网络应用程序,将选取的网络应用程序进行分块处理,并对程序块依次进行标号,如block 1、…、block n。
控制设备10的控制模块104发送扩展的OpenFlow规格书中的包裹信息(Bundle Message)以传送网络应用程序,扩展的包裹信息包括信令类型、网络应用程序名称和、或程序块标号。
举例而言,控制模块104需传送名称为App-ID的网络应用程序给第一交换机20a,该网络应用程序的程序块标号为block 1、…、block n,那么控制模块104发送扩展的包裹信息可如下所示:
bundle message 1:OFPBCT-OPEN-APP-REQUEST App-ID;
bundle message 2:OFPT-BUNDLE-ADD-MESSAGE App-ID block 1;
bundle message 3:OFPT-BUNDLE-ADD-MESSAGE App-ID...
bundle message 4:OFPT-BUNDLE-ADD-MESSAGE App-ID block n;
bundle message 5:OFPBCT-CLOSE-APP-REQUEST App-ID;
bundle message 6:OFPBCT-COMMIT-REQUEST App-ID。
其中,bundle message 1表示控制设备10要求第一交换机20a开始下载名为App-ID的网络应用程序的控制信息;bundle message 1表示控制设备10要求第一交换机20a下载名为App-ID的网络应用程序的程序块1的控制信息;bundle message 3表示控制设备10要求第一交换机20a开始下载名为App-ID的网络应用程序其他程序块的控制信息;bundle message 4表示控制设备10要求第一交换机20a开始下载名为App-ID的网络应用程序的程序块n的控制信息;bundle message 5表示第一交换机20a结束下载名为App-ID的网络应用程序的控制信息;bundle message 6表示第一交换机20a安装下载名为App-ID的网络应用程序的控制信息。
以下是控制模块104利用扩展的bundle message传送网络应用程序的具体过程。控制模块104发送bundle message 1给第一交换机20a,第一交换机20a的安装模块202接收bundle message 1,并分析名为App-ID的网络应用软件是否已经安装,若已经安装,则返回已安装信息给控制设备10结束下载过程,若没有安装,则返回确认接收信息给控制设备10,准备接收网络应用程序。控制模块104接收到确认接收信息后,将bundle message 2发给第一交换机20a,将名为App-ID的网络应用程序的程序块1传送给第一交换机20a,安装模块202接收程序块1。控制模块104持续将其他程序块传送给第一交换机20a,直到将所有程序块发送完毕,安装模块202持续接收其他程序块,控制模块104发送bundle message 5,控制第一交换机20a结束网络应用程序的下载,并发送bundle message 6,控制第一交换机20a安装该网络应用程序,第一交换机20a的安装模块202接收bundle message 5、bundlemessage 6,结束下载网络应用程序并安装该网络应用程序。
第一交换机20a通过以上实施方式安装了多个网络应用程序后,自身就能对数据流进行相应处理,当第一交换机20a接收外界传入的数据流时,代理模块204为网络应用程序建立处理任务,使用网络套接字,即“Network Socket”与网络应用程序进行通信,将Packet-Out报文传送给第一交换机20a的代理模块204,代理模块204接收输入的Packet-Out报文,为网络应用程序建立处理任务,使用网络套接字,即“Network Socket”与网络应用程序进行通信,将Packet-Out报文提供给网络应用程序,网络应用程序接收Packet-Out报文并判断是否识别该Packet-Out报文,如果识别,则网络应用程序发送Packet-Out报文的处理流程发送至代理模块204,代理模块204接收处理流程,对数据流进行处理,如果不识别该Packet-Out报文,则将Packet-Out报文依次传输给下一个网络应用程序进行处理,当所有网络应用程序都无法识别该Packet-Out报文时,将Packet-Out报文传给控制设备10进行处理。例如,第一交换机20a安装了“Layer2学习程序”,当Layer2学习程序接收到能识别的Packet-Out报文时,根据识别结果,Layer2学习程序有权限要求第一交换机20a的代理模块204增加、删除或者修改流表和执行端口相关处理。
在另外实施方式中,控制设备10的管理模块100侦测第一交换机20a所处的网络状态,控制设备10的选择模块102根据侦测到的第一交换机20a的网络状态选取第一交换机20a需要的网络应用程序,控制设备10的控制模块104发送扩展的包裹信息(Bundle Message)以传送选取的网络应用程序。
此外,在其他实施方式中,第一交换机20a的查询模块200向控制设备10发送请求信息,请求安装网络应用程序,该请求信息中可以指定请求安装一个或多个网络应用程序,控制设备10的选择模块102接收第一交换机20a发送的请求信息,并选取指定的网络应用程序,将选取的网络应用程序进行分块处理,控制设备10的控制模块104发送扩展的包裹信息(Bundle Message)以传送选取的网络应用程序。
参阅图5,图5所示为本发明控制设备10、第一交换机20a另一实施方式的功能模块图,在本实施方式中,控制设备10包括管理模块100、选择模块102、控制模块104、处理器108及存储器106。第一交换机20a包括查询模块200、安装模块202及代理模块204、处理模块206及存储模块208。管理模块100、选择模块102、控制模块104、查询模块200、安装模块202及代理模块204功能与图4中相同,存储器106用于存储控制设备10各个模块的软件代码以及接收的数据流等资料。处理器108用于执行软件代码以实现上述控制设备10的模块的功能。存储模块208用于存储第一交换机20a各个模块的软件代码以及接受的数据流等资料。处理模块206用于执行软件代码以实现上述第一交换机20a的模块的功能。
从上面的实施方式中可以看出,若第一交换机20a安装了能识别地址解析请求的地址解析程序时,交换机接收到地址解析请求时,将地址解析请求送入地址解析应用程序,直接进行地址解析处理,不需要交换机与控制设备沟通,这样第一交换机20a不需要将地址解析请求再传送给控制设备10等待控制设备10发送控制命令才能获取处理方式,能避免来回重复在第一交换机20a和控制设备10之间传送数据流,当第一交换机20a安装多个网络应用程序时,能大大减少了交换机和控制设备之间的数据流,因而也解决了交换机的带外信号管理端口限制与控制设备之间的通信速度的问题。
请参阅图6,图6所示为本发明控制设备10控制第一交换机20a安装网络应用程序的一实施方式的流程图。图6所示的流程通过图3所示的应用环境和图4、图5的功能模块实现。
在步骤S600,控制设备10的管理模块100发送消息给第一交换机20a,询问第一交换机20a已安装的应用程序。
在步骤S602,第一交换机20a的查询模块200接收控制设备10发送的询问信息,查询已经安装的网络应用程序,生成已安装程序表,并将已安装程序表发送给控制设备10。
在步骤S604,控制设备10的选择模块102接收已安装程序表,并选取不包含在已安装程序表中的其他的网络应用程序,将选取的网络应用程序进行分块处理,将网络应用程序以程序块的形式发送给第一交换机20a。
在步骤S606,第一交换机20a的安装模块202接收新的网络应用程序的程序块。
在步骤S608,控制设备10发送安装命令给第一交换机20a。
在步骤S610,第一交换机20a接收安装命令,安装并激活该网络应用程序。
图7为本发明控制设备10控制第一交换机20a安装网络应用程序的另一实施方式的流程图。图7所示的流程通过图3所示的环境应用的网络架构和图4、图5的功能模块实施。
在步骤S700,第一交换机20a的查询模块200向控制设备10发送请求信息,请求安装命名为App-ID的网络应用程序,当然,该请求信息中可以指定请求安装多个网络应用程序。
在步骤S702,控制设备10的选择模块102接收第一交换机20a发送的请求信息,并选取指定的网络应用程序,将选取的网络应用程序进行分块处理,并对程序块进行标号。
在步骤S704,控制设备10的控制模块104利用扩展的包裹信息将命名为App-ID的网络应用程序的程序块发送给第一交换机20a。
在步骤S706,第一交换机20a的安装模块202接收所有的网络应用程序所有的程序块。
在步骤S708,控制设备10的控制模块104发送完网络应用程序的所有程序块后,发送携带关闭网络应用程序下载的bundle message给第一交换机20a。
在步骤S710,第一交换机20a的安装模块202接收携带关关闭网络应用程序下载的bundle message,结束网络应用程序的下载。
在步骤S712,控制设备10的控制模块104发送携带确认安装网络应用程序的bundle message至控制第一交换机20a。
在步骤S714,第一交换机20a的安装模块202接收携带确认安装网络应用程序的bundle message,并安装该网络应用程序。
第一交换机20a通过上述实施方式安装了多个网络应用程序后,当第一交换机20a接收外界传入的数据流时,就能对数据流进行处。具体处理过程请参阅图8。
参阅图8,图8所示为本发明第一交换机20a处理数据流的一实施方式的流程图。图8所示的流程通过图1的网络架构和图4、图5的功能模块实施。
在步骤S800,第一交换机20a的代理模块204为网络应用程序建立处理任务。
在步骤S802,使用网络套接字(Network Socket)与网络应用程序进行通信,将Packet-Out报文提供给网络应用程序。
在步骤S804,网络应用程序接收Packet-Out报文并判断是否识别该Packet-Out报文。
如果识别,则在步骤S806,网络应用程序发送Packet-Out报文的处理流程至代理模块204。
在步骤S808,代理模块204接收处理流程,Packet-Out报文进行处理,如创建流表。
如果不识别该Packet-Out报文,则在步骤S810,判断是否依次将Packet-Out报文提供给第一交换机20a的所有网络应用程序。
如果没有提供给第一交换机20a的所有网络应用程序,则在步骤S812,将Packet-Out报文传输给下一个网络应用软件,以进行Packet-Out报文识别。
如果已提供给第一交换机20a的所有网络应用程序,则在步骤S814,代理模块204将Packet-Out报文传送给控制设备10进行处理。
因此,本发明实施方式中的控制设备10、第一交换机20a及管理方法能简化控制设备10和第一交换机20a之间的数据传送过程,提高控制设备和交换机之间数据流的传输速率,第一交换机20a能独立的完成部分数据流的处理,减轻控制设备10的处理器负担,将控制设备10中的处理数据流功能,以网络应用程序的方式安装于第一交换机20a上,以降低控制设备10的处理时间及负担,控制设备10能依第一交换机20a的性能及处理需求,安装不同的网络应用程序,提高交换机处理数据的能力,协助当控制设备10停止运作时,第一交换机20a还能以网络应用程序处理数据流,并确保数据流能被正确的处理。