发明内容
针对上述问题,本发明实施方式的目的在于提供一种基于SDN的最小连接负载均衡方法和***,能够对全网络的服务器进行统一计算,把负载差异较大的请求平滑分发到各个服务器或链路上,并且整个策略高效而简单。
为实现上述目的,本发明实施方式提供一种基于SDN的最小连接负载均衡方法,所述方法应用于SDN中的控制器上,包括:控制器预先设置最小连接负载均衡配置表和会话协议表,所述最小连接负载均衡配置表包括连接数阈值,所述会话协议表包括服务器的连接数;当接收到SDN中的交换机上报的服务器协议报文时,根据所述服务器协议报文生成所述会话协议表中的会话协议表项;当获取到客户端发送的服务请求时,根据所述服务请求查找会话协议表,若在所述会话协议表中没有匹配的会话协议表项,如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接。
进一步地,所述最小连接负载均衡配置表的配置项包括最小连接负载均衡功能和连接数阈值,其中所述最小连接负载均衡功能用于设置打开和关闭最小连接负载均衡功能,所述连接数阈值用于设置连接数阈值。
进一步地,所述会话协议表包括服务器IP字段、连接数字段、协议字段、客户端IP字段和会话字段,其中服务器IP字段用于指明服务器IP,连接数字段用于指明此服务器的连接数,协议字段用于指明服务协议号,客户端IP字段用于指明客户端IP,会话字段用于指明会话ID。
进一步地,所述当接收到SDN中的交换机上报的服务器协议报文时,根据所述服务器协议报文生成所述会话协议表中的会话协议表项,包括:交换机通过私有的Experimenter报文向控制器上报交换机自己的MAC地址和端口ID,来建立SDN中交换机和控制器的通道;交换机分别向控制器上报所连接的服务器的服务器协议报文,控制器分别从所述服务器协议报文提取服务器IP、客户端IP、会话ID和服务协议号,并计算服务器的连接数,生成所述会话协议表中的会话协议表项。
进一步地,所述当获取到客户端发送的服务请求时,根据所述服务请求查找会话协议表,若在所述会话协议表中没有匹配的会话协议表项,如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接,包括:当客户端通过SDN网络向服务器发送服务请求时,控制器截获所述服务请求,并将所述服务请求中的客户端IP、请求的服务器IP、会话ID和服务协议号与所述会话协议表中的会话协议表项进行匹配;若在所述会话协议表中有匹配的会话协议表项,则对所述服务请求不做处理;若在所述会话协议表中没有匹配的会话协议表项,则判断请求的服务器的连接数;如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接,并将所述请求的服务器的连接数加一;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接,并将选择的服务器的连接数加一。
进一步地,所述方法还包括:当客户端通过SDN网络向服务器发送服务中断请求时,控制器截获所述服务中断请求,并将所述服务中断请求中的客户端IP、请求的服务器IP、会话ID和服务协议号与所述会话协议表中的会话协议表项进行匹配;若在所述会话协议表中没有匹配的会话协议表项,则对所述服务中断请求不做处理;若在所述会话协议表中有匹配的会话协议表项,则删除匹配的会话协议表项,并将请求的服务器的连接数减一。
为实现上述目的,本发明实施方式还提供一种基于SDN的最小连接负载均衡***,包括:交换机,用于和控制器建立通道,并向控制器上报服务器协议报文;控制器,用于预先设置最小连接负载均衡配置表和会话协议表,所述最小连接负载均衡配置表包括连接数阈值,所述会话协议表包括服务器的连接数;当接收到SDN中的交换机上报的服务器协议报文时,根据所述服务器协议报文生成所述会话协议表中的会话协议表项;当获取到客户端发送的服务请求时,根据所述服务请求查找会话协议表,若在所述会话协议表中没有匹配的会话协议表项,如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接。
由上可见,本发明实施方式提供的一种最小连接负载均衡方法和***,通过控制器可以对全网络的服务器进行统一计算连接数,从而当客户端的服务请求中请求的服务器已达到连接数阈值时,能够及时将服务请求重定向到连接数少的服务器,而且整个策略高效而简单。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
SDN是一种新型网络创新架构,其通过开放流(OpenFlow)将网络设备控制面与数据面分离开来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。SDN是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。此外,控制权是完全开放的,用户可以自定义网络路由和传输规则策略,从而更加灵活和智能。
本发明实施方式提供一种基于SDN的最小连接负载均衡***,如图1所示,SDN网络中包括控制器和交换机,其中SDN网络中的交换机由集中的控制器管理。此外,客户端和服务器分别和交换机连接,通过SDN网络进行通讯。
本发明实施方式提供一种基于SDN的最小连接负载均衡方法。请参阅图2,所述方法应用于SDN中的控制器上,包括以下步骤:
步骤S21:控制器预先设置基于SDN的最小连接负载均衡配置表和会话协议表。
在本实施方式中,控制器预先设置最小连接负载均衡配置表,该最小连接负载均衡配置表中的配置项包括最小连接负载均衡功能和连接数阈值,其中最小连接负载均衡功能用于设置打开和关闭最小连接负载均衡功能,连接数阈值用于设置连接数阈值,缺省值可以为128个连接数,具体如表1所示。
表1
在本实施方式中,控制器还预先设置会话协议表,该会话协议表包括服务器IP字段、连接数字段、协议字段、客户端IP字段和会话字段,具体如表2所示。
表2
字段 |
含义 |
服务器IP字段(索引) |
指明服务器IP地址 |
连接数字段 |
指明此服务器的连接数 |
协议字段 |
指明服务协议号 |
客户端IP字段 |
指明客户端IP地址 |
会话字段 |
指明会话ID |
步骤S22:控制器和交换机的建立通道。
在本实施方式中,SDN交换机首先需要建立和控制器的通道,即需要初始化开放流(OpenFlow)通道。交换机通过私有的Experimenter报文向控制器上报交换机自己的MAC地址和端口ID。
和现有技术相比,本实施方式对私有Experimenter报文进行了扩展,扩展的Experimenter消息格式如图3所示,Experimenter值为255需要向ONF组织申请;Experimenter type值为1表明是从交换机到控制器,Experimenter type值为2表明是从控制器到交换机。此外,在扩展的Experimenter消息中,还包括自己的MAC地址(Own MACaddress)和端口ID(Port ID),其中端口ID最大支持128个。
步骤S23:控制器接收SDN中的交换机上报的服务器协议报文,根据所述服务器协议报文生成预先设置的会话协议表中的会话协议表项。
在本实施方式中,SDN中的交换机和控制器的通道建立完成后,交换机向控制器上报所连接的服务器的服务器协议报文,服务器协议报文进入到控制器,控制器分别提取服务器IP、客户端IP、会话ID和服务协议号,并计算每个服务器的连接数,从而生成会话协议表中的会话协议表项。
步骤S24:当控制器获取到客户端发送的服务请求时,根据服务请求查找会话协议表,如果有匹配的会话协议表项,忽略所述服务请求;如果没有匹配的会话协议表项,进行步骤S25。
在本实施方式中,当客户端通过SDN网络向服务器发送服务请求时,控制器截获该服务请求,该服务请求中包括客户端IP、请求的服务器IP、会话ID和服务协议号。
控制器将服务请求中的客户端IP、服务器IP、会话ID和服务协议号和会话协议表进行匹配。如果有匹配的会话协议表项,则此次截获的服务请求不是新的服务请求,因此忽略该服务请求,无需进行操作。
步骤S25,判断请求的服务器的连接数,如果小于连接数阈值,进行步骤S26;如果达到连接数阈值,进行步骤S27。
在本实施方式中,控制器将服务请求中的客户端IP、服务器IP、会话ID和服务协议号和会话协议表进行匹配,如果没有匹配的会话协议表项,则此次截获的服务请求是新的服务请求,需要进一步继续判断该服务请求中请求的服务器的连接数是否达到预先配置的最小连接负载均衡配置表中的连接数阈值。
步骤S26,选择请求的服务器进行连接,并将请求的服务器的连接数加一。
在本实施方式中,如果请求的服务器的连接数小于预先配置的最小连接负载均衡配置表中的连接数阈值,则根据服务器IP来选择请求的服务器进行连接,并将请求的服务器的连接数加一。
步骤S27,选择连接数最小的服务器进行重定向连接,并将选择的服务器的连接数加一。
在本实施方式中,如果请求的服务器的连接数达到预先配置的最小连接负载均衡配置表中的连接数阈值,则请求的服务器已经饱和,无法与客户端进行连接。控制器查找会话协议表中连接数最小的服务器,将服务请求重定向到该连接数最小的服务器进行连接,并将选择的服务器的连接数加一。
图4为基于图2方法的应用实例示意图。如图4所示,FTP(File TransferProtocol,文件传输协议)客户端通过SDN网络和FTP服务器通讯,其中FTP服务器1的连接数为100个,FTP服务器2的连接数为128个。
预先设置连接数阈值为128。当SDN中的控制器截获FTP客户端发送的服务请求,请求连接FTP服务器2时,由于FTP服务器2的连接数为128个已经达到连接数阈值,因此控制器将FTP重定向和FTP服务器1连接。
本发明的另一实施方式还提供一种基于SDN的最小连接负载均衡方法。请参阅图5,所述方法应用于SDN中的控制器上,包括以下步骤:
步骤S51~S53和步骤S21~S23类似,故在此不再赘述。
步骤S54:如果控制器获取到客户端发送的服务中断请求,根据服务中断请求查找会话协议表,如果没有匹配的会话协议表项,忽略所述服务中断请求;如果有匹配的会话协议表项,进行步骤S55。
在本实施方式中,当客户端通过SDN网络向服务器发送服务中断请求时,控制器截获该服务中断请求,该服务中断请求中包括客户端IP、请求的服务器IP、会话ID和服务协议号。
控制器将服务中断请求中的客户端IP、服务器IP、会话ID和服务协议号和会话协议表进行匹配。如果没有匹配的会话协议表项,则忽略该服务中断请求。
S55:删除匹配的会话协议表项,并将请求的服务器的连接数减一。
通过上述实施例中的基于SDN的最小连接负载均衡方法,控制器可以对全网络的服务器进行统一计算,能够把负载差异较大的请求平滑分发到各个服务器或链路上,从而提高整个网络的负载均衡能力。
请参阅图1。本发明实施方式提供一种基于SDN的最小连接负载均衡***,包括:
交换机,用于和控制器建立通道,并向控制器上报服务器协议报文;
控制器,用于预先设置最小连接负载均衡配置表和会话协议表,所述最小连接负载均衡配置表包括连接数阈值,所述会话协议表包括服务器的连接数;当接收到SDN中的交换机上报的服务器协议报文时,根据所述服务器协议报文生成所述会话协议表中的会话协议表项;当获取到客户端发送的服务请求时,根据所述服务请求查找会话协议表,若在所述会话协议表中没有匹配的会话协议表项,如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接。
具体地,
所述交换机,通过私有的Experimenter报文向控制器上报交换机自己的MAC地址和端口ID,来建立和控制器的通道;分别向控制器上报所连接的服务器的服务器协议报文,所述服务器协议报文包括服务器IP、客户端IP、会话ID和服务协议号,以使控制器生成所述会话协议表中的会话协议表项。
所述控制器,当客户端通过SDN网络向服务器发送服务请求时,截获所述服务请求,并将所述服务请求中的客户端IP、请求的服务器IP、会话ID和服务协议号与所述会话协议表中的会话协议表项进行匹配;若在所述会话协议表中有匹配的会话协议表项,则对所述服务请求不做处理;若在所述会话协议表中没有匹配的会话协议表项,则判断请求的服务器的连接数;如果所述服务请求中请求的服务器的连接数小于所述连接数阈值,则选择所述请求的服务器进行连接,并将所述请求的服务器的连接数加一;如果所述服务请求中请求的服务器的连接数已达到所述连接数阈值,则选择所述会话协议表中服务器连接数最小的服务器进行重定向连接,并将选择的服务器的连接数加一。
所述控制器,还用于:当客户端通过SDN网络向服务器发送服务中断请求时,截获所述服务中断请求,并将所述服务中断请求中的客户端IP、请求的服务器IP、会话ID和服务协议号与所述会话协议表中的会话协议表项进行匹配;若在所述会话协议表中没有匹配的会话协议表项,则对所述服务中断请求不做处理;若在所述会话协议表中有匹配的会话协议表项,则删除匹配的会话协议表项,并将请求的服务器的连接数减一。
上述的涉及到的基于SDN的最小连接负载均衡***的具体技术细节和基于SDN的最小连接负载均衡方法中的类似,故不再具体赘述。
由上可见,本发明实施方式提供的一种基于SDN的最小连接负载均衡方法和***,通过控制器可以对全网络的服务器进行统一计算连接数,从而当客户端的服务请求中请求的服务器已达到连接数阈值时,能够及时将服务请求重定向到连接数少的服务器,而且整个策略高效而简单。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
最后应说明的是:上面对本发明的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本发明的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本发明旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。