交换机系统和通信方法与流程

文档序号:14253118阅读:410来源:国知局
交换机系统和通信方法与流程

本发明涉及计算机网络领域,特别涉及一种交换机系统和通信方法。



背景技术:

sdn(softwaredefinednetwork,软件定义网络)通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制。

然而,sdn控制器的性能成为了新的瓶颈。以sdn控制器采用openflow协议与交换机通信为例,每个交换机需要单独与sdn控制器建立tcp(transmissioncontrolprotocol,传输控制协议)连接,在考虑冗余保护的情况下,一个交换机同时要与sdn控制器建立2-3个tcp连接,并且每个交换机独立发送openflow数据包与控制器进行交互。在出现大规模上线或者业务下发时,sdn控制器可能会产生大量的性能消耗,从而影响了sdn控制器的处理性能。



技术实现要素:

本发明实施例所要解决的一个技术问题是:如何提升sdn控制器的处理性能。

根据本发明实施例的第一个方面,提供了一种交换机系统,包括:控制器集群,包括至少一个软件定义网络控制器,代理集群,包括至少一个代理设备,和,若干交换机;其中,代理集群位于控制器集群与交换机之间,每个代理设备代理若干交换机与控制器集群中的软件定义网络控制器建立通信连接。

在一个实施例中,代理设备与软件定义网络控制器之间的通信连接包括传输控制协议形式的通信连接或者用户数据报协议形式的通信连接。

在一个实施例中,代理设备基于记录的软件定义网络控制器和交换机之间的对应关系,建立交换机以及交换机对应的软件定义网络控制器之间的通信连接。

在一个实施例中,控制器集群和代理集群位于同一可信网络。

根据本发明实施例的第二个方面,提供一种通信方法,包括:代理集群接收交换机发送的信息,并转发给控制器集群;或者,代理集群接收控制器集群发送的信息,并转发给交换机,其中,控制器集群包括至少一个软件定义网络控制器,代理集群包括至少一个代理设备。

在一个实施例中,代理集群与控制器集群之间通过传输控制协议或者用户数据报协议进行信息传输。

在一个实施例中,代理集群接收交换机发送的信息,并转发给控制器集群包括:代理设备接收代理的交换机发送的多个信息,将多个信息中符合预设条件的若干信息封装后,发送给交换机对应的软件定义网络控制器。

在一个实施例中,代理集群接收控制器集群发送的信息,并转发给交换机包括:代理设备接收软件定义网络控制器发送的信息,将该信息解封装为若干子信息,将每个子信息分别发送给软件定义网络控制器对应的交换机。

在一个实施例中,代理集群采用以下方法将多个信息中符合预设条件的若干信息封装:代理集群将多个信息中,满足发送至相同软件定义网络控制器的、具有相同协议版本的、小于预设的数据包大小的至少一个条件的若干信息进行封装。

在一个实施例中,采用以下方法确定软件定义网络控制器和交换机之间的对应关系:代理设备接收交换机发送的连接请求数据包;代理设备将连接请求数据包发送给控制器集群,以便控制器集群为交换机分配软件定义网络控制器;代理设备接收控制器集群发送的分配结果;代理设备记录交换机和为交换机分配的软件定义网络控制器之间的对应关系。

在一个实施例中,信息为openflow数据包。

本发明通过在控制器集群与交换机之间设置代理集群,并且采用代理集群中的每个代理设备代理若干交换机,与控制器集群中的sdn控制器建立通信连接,能够减少控制器集群中sdn控制器的连接数量,减少了对sdn控制器的性能消耗,提升了sdn控制器的处理性能。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明交换机系统的一个实施例的结构图。

图2为本发明通信方法的一个实施例的流程图。

图3为本发明通信方法的另一个实施例的流程图。

图4为封装后的信息帧结构示意图。

图5为本发明通信方法的又一个实施例的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考图1描述本发明一个实施例的交换机系统。

图1为本发明交换机系统的一个实施例的结构图。如图1所示,该实施例的系统包括:控制器集群12、代理集群14和若干交换机16。其中,控制器集群12包括至少一个sdn控制器122,代理集群14包括至少一个代理设备142。代理集群14位于控制器集群12与交换机16之间,每个代理设备142代理若干交换机16与控制器集群12中的sdn控制器122建立通信连接。

代理设备142采用代理集群14的架构可以避免单点故障,提升了系统的可靠性。

其中,代理设备142与sdn控制器122之间可以采用tcp形式的通信连接。由于代理设备142的总量小于交换机16的总量,因此可以减少sdn控制器的tcp连接的总数量,进而减少了sdn控制器在tcp连接上的性能开销。

或者,代理设备142与sdn控制器122之间也可以采用例如udp(userdatagramprotocol,用户数据报协议)等基于短连接的协议的通信协议进行连接。从而,sdn控制器可以减少连接的时长,进一步地降低连接性能的消耗。

代理设备142与交换机16之间可以继续采用tcp协议进行连接。从而,交换机16侧无需配合本发明提供的系统进行改动,适应性更好。

控制器集群12和代理集群14可以位于同一可信网络内。从而,可以提升传输效率。

通过在控制器集群与交换机之间设置代理集群,并且采用代理集群中的每个代理设备代理若干交换机,与控制器集群中的sdn控制器建立通信连接,能够减少控制器集群中sdn控制器的连接数量,减少了对sdn控制器的性能消耗,提升了sdn控制器的处理性能。并且,能够降低对sdn控制器的性能需求,减少了硬件成本。

基于本发明提供的交换机系统,下面参考图2描述本发明一个实施例的通信方法。

图2为本发明通信方法的一个实施例的流程图。如图2所示,该实施例的方法包括:

步骤s202,代理集群接收交换机发送的信息。

其中,代理集群包括至少一个代理设备,每个代理设备代理多个交换机。

步骤s204,代理集群将交换机发送的信息转发给控制器集群。

其中,控制器集群包括至少一个sdn控制器。

步骤s206,代理集群接收控制器集群发送的信息。

其中,代理集群与控制器集群之间可以通过tcp协议或者udp协议进行信息传输。

步骤s208,代理集群将控制器集群发送的信息转发给交换机。

通过在控制器集群与交换机之间设置代理集群,并且采用代理集群中的每个代理设备代理若干交换机,与控制器集群中的sdn控制器建立通信连接,能够减少控制器集群中sdn控制器的连接数量,减少了对sdn控制器的性能消耗,提升了sdn控制器的处理性能。

本发明提供的代理设备还可以对交换机发送的信息进行打包,从而进一步提升传输效率。下面参考图3描述本发明另一个实施例的通信方法。

图3为本发明通信方法的另一个实施例的流程图。如图3所示,该实施例的方法包括:

步骤s302,代理设备接收代理的交换机发送的多个信息。

代理设备接收的信息可以是同一个交换机发送的多个信息,也可以是多个交换机发送的多个信息。

其中,信息可以为openflow数据包。

步骤s304,代理设备将多个信息中符合预设条件的若干信息进行封装。

例如,代理集群可以将多个信息中发送至相同sdn控制器的若干信息进行封装。从而,可以实现数据的分流,控制器集群无需额外识别信息的接收者。

如果代理集群将发送至不同sdn控制器的若干信息进行封装,也可以由控制器集群中的设备先对封装后的信息进行解封装,再分发给各个sdn控制器。

代理集群还可以将多个信息中具有相同协议版本的若干信息进行封装。从而,可以提高信息封装时的便捷性,防止由于协议版本不一致而带来的额外处理。

代理集群还可以将多个信息中小于预设的数据包大小的若干信息进行封装,例如可以仅对数据包大小小于mtu(maximumtransmissionunit,最大传输单元)的一半的信息进行封装,避免封装后的数据包过大而对传输效率造成影响。

封装信息的格式例如可以如图4所示,依次将交换机发送的信息1、信息2和信息3封装到以太帧中。

步骤s306,代理设备将封装后的信息发送给交换机对应的sdn控制器。

sdn控制器在接收到封装后的数据包后,可以进行解封装处理。例如,sdn控制器可以根据封装后的数据包的头部内的计数以及openflow消息头中显示的消息长度,依次还原原始的信息。

通过采用上述方法,代理节点可以将交换机发送的多个消息进行封装后,统一发送给控制器集群,减少了因频繁发送数据包而为交换机带来的性能开销,提升了传输效率。

此外,该实施例的方法也可以包括步骤s308~s312:

步骤s308,代理设备接收sdn控制器发送的信息。

sdn控制器发送的信息为封装后的信息。封装方法例如可以参考步骤s304。

步骤s310,代理设备将该信息解封装为若干子信息。

代理设备解封装的方法例如可以参考步骤s306中sdn控制器解封装的方法。

步骤s312,代理设备将每个子信息分别发送给sdn控制器对应的交换机。

通过采用上述方法,控制器可以将多个信息进行打包后再发送给代理设备,从而sdn控制器减少了接收的数据报文的数量,进而降低了因频繁发送数据包而带来的性能开销,优化了sdn控制器的处理性能。

在本发明提供的交换机系统中,代理设备还可以基于记录的sdn控制器和交换机之间的对应关系,建立交换机以及交换机对应的sdn控制器之间的通信连接。下面参考图5描述本发明又一个实施例的通信方法。

图5为本发明通信方法的又一个实施例的流程图。如图5所示,该实施例的方法包括:

步骤s502,代理设备接收交换机发送的连接请求数据包。

步骤s504,代理设备将连接请求数据包发送给控制器集群。

代理设备可以将连接请求数据包连同其他数据包进行打包,发送给控制器集群。

步骤s506,控制器集群为交换机分配sdn控制器。

其中,控制器集群可以为交换机分配一个sdn控制器,也可以为交换机分配主sdn控制器以及从sdn控制器。

步骤s508,代理设备接收控制器集群发送的分配结果。

如果控制器集群发送的为封装后的数据包,代理设备可以首先对接收到的数据包进行解封装,再查看解封装后的子数据包中的分配结果。

步骤s510,代理设备记录交换机和为交换机分配的sdn控制器之间的对应关系。

从而,实现了交换机和sdn控制器之间的连接关系的建立。

此后,当交换机向sdn控制器发起openflow请求时,代理设备可以根据存储的对应关系,将openflow请求转发给交换机对应的sdn控制器。例如可以参考步骤s512~s522。

步骤s512,代理设备接收交换机发送的openflow请求数据包。

步骤s514,代理设备查找交换机对应的sdn控制器。

步骤s516,代理设备将openflow请求数据包发送给交换机对应的sdn控制器。

步骤s518,sdn控制器处理openflow请求数据包,生成openflow应答数据包。

步骤s520,代理设备接收sdn控制器发送的openflow应答数据包。

步骤s522,代理设备将openflow应答数据包转发给交换机。

通过采用上述方法,可以在交换机向sdn控制器发起的连接请求后,记录交换机以及为交换机分配的sdn控制器之间的对应关系,从而能够实现信息的准确转发。

此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1