一种集中控制型网络负载均衡方法和系统与流程

文档序号:16899947发布日期:2019-02-19 17:52阅读:194来源:国知局
一种集中控制型网络负载均衡方法和系统与流程

本发明涉及负载均衡技术领域,具体涉及一种集中控制型网络负载均衡方法和系统。



背景技术:

互联网的飞速发展给网络带宽和服务器的处理性能来巨大的挑战,网络带宽从百兆,千兆发展到万兆,带宽越来越大,同时服务器的架构从单核cpu、多核cpu逐步发展到服务器集群,经过测试发现服务器的处理性能已逐渐成为系统性能的瓶颈。在流量爆发的互联网时代,用户对接入网络的需求也日益迫切,对网络访问的质量的关注度也越来越高。用户在正常上网以及通过网络观看视频时,经常会出现网络延迟很大,视频卡顿或者在线操作缓慢等现象,特别是在瞬间并发有大量用户接入时,这种现象就更明显。在面对海量的并发用户访问时,负载均衡方法是目前较为常用的解决方法。现有的负载均衡并没有对接入服务器及其邻居的资源进行获取和分析,导致用户可能会多次切换,负载均衡效果较差。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种集中控制型网络负载均衡方法和系统,可快速达到负载均衡调整的目的。

为达到以上目的,本发明采取的技术方案是:一种集中控制型网络负载均衡方法,其包括步骤:

根据每个接入服务器上报的其他接入服务器的工作状态信息报文建立或更新接入服务器的邻居信息表,同时根据每个接入服务器上报的客户端的工作状态信息报文建立或更新客户端的可达信息表;

当任一接入服务器接收到客户端发送的接入请求报文时,若接入服务器为客户端的可达接入服务器,且可达接入服务器及其邻居接入服务器均满足负载均衡条件,则允许客户端接入可达接入服务器。

在上述技术方案的基础上,通过集中控制器建立或更新邻居信息表,

在集中控制器内对没有邻居信息表的接入服务器建立其邻居信息表;邻居信息表内包括接入服务器的邻居接入服务器的mac地址;

当接入服务器收到携带新mac地址的工作状态信息报文,且新mac地址对应接入服务器的邻居信息表中存在接入服务器的mac地址时,将新mac地址加入接入服务器的邻居信息表。

在上述技术方案的基础上,在无线环境中,每个接入服务器定时向集中控制器发送其探测到的其他接入服务器的工作状态信息报文。

在上述技术方案的基础上,在有线环境中,当任一接入服务器收到其他接入服务器的免费arp报文,或者接入服务器获取的其他接入服务器的探测报文的剩余生存时间ttl值在预配置的ttl差值范围内时,接入服务器向集中控制器发送其他接入服务器的工作状态信息报文。

在上述技术方案的基础上,通过集中控制器建立或更新可达信息表,

在集中控制器内对没有可达信息表的客户端建立其可达信息表;可达信息表内包括客户端的可达接入服务器的mac地址;

当任一接入服务器收到携带新mac地址的客户端的工作状态信息报文时,将接入服务器的mac地址加入新mac地址对应客户端的可达信息表。

在上述技术方案的基础上,在无线环境中,每个接入服务器定时向集中控制器发送客户端的工作状态信息报文。

在上述技术方案的基础上,在有线环境中,当任一接入服务器收到客户端的免费arp报文,或者接入服务器获取的客户端的接入请求报文的剩余生存时间ttl值在预配置的ttl差值范围内时,接入服务器向集中控制器发送客户端的工作状态信息报文。

在上述技术方案的基础上,负载均衡条件为:当任一接入服务器接收到客户端的接入请求时,根据自身接入的用户流量和相邻接入服务器接入的用户流量确定是否允许客户端接入。

在上述技术方案的基础上,负载均衡条件为:当任一接入服务器接收到客户端的接入请求时,根据自身接入的用户数量和相邻接入服务器接入的用户数量确定是否允许客户端接入。

本发明还提供一种集中控制型网络负载均衡系统,运行于集中控制器,其包括:

邻居信息处理模块,其用于接收并处理每个接入服务器上报的其他接入服务器的工作状态信息报文,建立或更新接入服务器的邻居信息表;

可达信息处理模块,其用于接收并处理每个接入服务器上报的客户端的工作状态信息报文,建立或更新客户端的可达信息表;

负载均衡模块,分别与邻居信息处理模块和可达信息处理模块相连,用于接收接入服务器上报的客户端接入请求报文,并判断客户端的可达接入服务器及其邻居接入服务器是否满足负载均衡条件,当客户端的可达接入服务器及其邻居接入服务器满足负载均衡条件时,允许客户端接入可达接入服务器。

与现有技术相比,本发明的优点在于:

(1)本发明的集中控制型网络负载均衡方法,通过建立和实时更新接入服务器的邻居信息表以及客户端的可达信息表,可快速的达到负载均衡调整的目的,提高网络运行效率。

(2)本发明的负载均衡条件可以灵活配置,减少人工干预的维护成本,以及客户端因为接入到负载过重的服务器上导致的用户体验差的情况。

附图说明

图1为本发明实施例提供的集中控制型网络负载均衡方法的流程图;

图2为本发明实施例提供的无线环境下的无线信号状态图;

图3为本发明实施例提供的免费arp报文格式图;

图4为本发明实施例提供的无线信标beacon帧格式图;

图5为本发明实施例提供的无线环境下客户端发送的探测请求报文格式图;

图6为本发明实施例提供的无线环境下接入服务器发送的探测请求应答报文格式图;

图7为本发明实施例提供的无线环境下邻居信息表的流程图;

图8为本发明实施例提供的无线环境下可达信息表的流程图;

图9为本发明实施例提供的有线环境下邻居信息表的流程图;

图10为本发明实施例提供的有线环境下可达信息表的流程图;

图11为本发明实施例提供的邻居信息表的逻辑结构图;

图12为本发明实施例提供的可达信息表的逻辑结构图;

图13为本发明实施例提供的无线环境下负载均衡方法的具体流程图;

图14为本发明实施例提供的有线环境下负载均衡方法的具体流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种集中控制型网络负载均衡方法,其包括步骤:

s1.根据每个接入服务器上报的其他接入服务器的工作状态信息报文建立或更新接入服务器的邻居信息表,同时根据每个接入服务器上报的客户端的工作状态信息报文建立或更新客户端的可达信息表;

s2.当任一接入服务器接收到客户端发送的接入请求报文时,若接入服务器为客户端的可达接入服务器,且可达接入服务器及其邻居接入服务器均满足负载均衡条件,则允许客户端接入可达接入服务器。

在整个网络系统的运行过程中,接入服务器会定期上报其周围的网络环境信息,包括该接入服务器周围的其他接入服务器的mac信息以及客户端的工作状态信息。集中控制器通过判断该接入服务器上报的信息,当接入服务器上报的是其他接入服务器的负载信息时,建立或实时更新接入服务器的邻居信息表,当接入服务器上报的是客户端的工作状态信息时,建立或实时更新客户端的可达信息表。当客户端可能下线或者漫游而导致其可达服务器信息发生改变的情形,可采用条目老化机制或者清空客户端的可达信息表,等待接入服务器重新上报客户端信息后,再更新客户端可达信息表。

首先说明客户端与接入服务器的两个重要的相对关系即邻居关系和可达关系。

邻居关系描述的是两个接入服务器之间的关系。参见图2所示,在无线环境中,无线接入服务器ap的无线信号分布大致如图,ap1的信号bss1与ap2的信号bss2有部分重叠,则ap1与ap2互为邻居ap;ap2的信号与ap1、ap3、ap4都有部分重叠,则ap2分别与ap1、ap3、ap4互为邻居ap;ap3的信号bss3与ap2和ap4有部分重叠,则ap3分别与ap2、ap4互为邻居ap;ap4信号bss4与ap2和ap3有部分重叠,则ap4分别与ap2、ap3互为邻居ap,因此邻居关系必须是相互的,假设由于无线信号强度的关系,api的无线信号能够覆盖apj,但是apj的信号不能覆盖api,那么这两个ap就不是互为邻居关系。

而在有线的环境中,由于所有的接入客户端和服务器在物理上都是通过网线连通的,所以有线接入环境下不能用信号覆盖这种方式来决定接入服务器之间的邻居关系。在这种场景下,借助以下两个基本常识:(1)路由器不转发广播包;(2)所有的报文经过路由器之后,ttl都会减一,直至ttl为0时,该报文就会被丢弃。如果两个接入服务器都能够接收到对方的免费arp报文,则这两个接入服务器肯定是邻居关系;其中,免费arp报文格式参见图3所示,免费arp报文是当某个工作站发送的arp请求报文中,请求的mac为自己的mac时,这个报文就是免费arp报文。如果接入服务器a接收到接入服务器b的探测报文,而且报文的ttl值与当前网络默认的ttl值之差在预配置的ttl差值范围以内,接入服务器a与接入服务器b互为邻居关系。

可达关系描述的是客户端与接入服务器之间的关系。在无线接入环境中,客户端的无线信号可覆盖的范围内的所有接入服务器,都是该客户端的可达服务器。而在有线接入环境中,只要能够接收到客户端的接入请求,并且该接入请求报文的剩余生存时间值ttl在预配置的ttl差值范围内,就可以认为收到客户端接入请求报文的接入服务器就是该客户端的可达接入服务器。

在无线环境中,参见图4所示,接入服务器会通过广播发送无线信标beacon帧来通告自身的工作状况和能力,该报文中mac头部(macheader)的bssid字段即自身的mac地址信息。客户端也会通过广播发送探测请求proberequest报文来通告自身的工作状况和能力。参见图5所示,这个proberequest报文的mac头部也包含一个bssid字段,即为该客户端的无线mac地址。每个收到这个proberequest报文的接入服务器都会回复一个探测请求应答proberesponse报文,该proberesponse报文的格式参见图6所示,其mac头部的bssid字段,即为该接入服务器的无线mac地址。接入服务器通过监听无线网络环境中的beacon帧来探测周围的其他接入服务器,以得知其他接入服务器的工作状态和能力信息;接入服务器通过监听无线网络环境中客户端发送的proberequest报文来被动探测周围的无线客户端,从而可以获取其周围的客户端的工作状态。

在无线环境中,每个接入服务器定时向集中控制器发送其探测到的其他接入服务器的工作状态信息报文,然后通过集中控制器建立或更新邻居信息表。

当接入服务器第一次上报其探测到的其他接入服务器的mac地址信息时,即集中控制器内没有该接入服务器的邻居信息表,需要对该接入服务器建立其邻居信息表;邻居信息表内包括接入服务器的邻居接入服务器的mac地址。

当接入服务器收到携带新mac地址的工作状态信息报文,且新mac地址对应接入服务器的邻居信息表中存在接入服务器的mac地址时,将新mac地址加入接入服务器的邻居信息表。

参见图7所示,在无线环境中,建立或更新邻居信息表的具体流程如下:

a101.接入服务器定时向集中控制器上报其他接入服务器的工作状态信息报文;

a102.判断是否存在该接入服务器的邻居信息表,如果是,转向a104,如果否,转向a103;

a103.新建接入服务器的邻居信息表,并将其他接入服务器的mac地址加入接入服务器的邻居信息表,并转向a101。

a104.判断接入服务器收到的工作状态信息报文携带的mac地址是否存在于接入服务器的邻居信息表中,如果是,转向a101,如果否,转向a105;

a105.判断携带的mac地址对应接入服务器的邻居信息表中是否存在该接入服务器的mac地址,如果是,转向a106,如果否,转向a101;

a106.将报文携带的mac地址加入接入服务器的邻居信息表,并转向a101。

在无线环境中,每个接入服务器定时向集中控制器发送客户端的工作状态信息报文,然后通过集中控制器建立或更新可达信息表。

在集中控制器内对没有可达信息表的客户端建立其可达信息表;可达信息表内包括客户端的可达接入服务器的mac地址;

当任一接入服务器收到携带新mac地址的客户端的工作状态信息报文时,将接入服务器的mac地址加入新mac地址对应客户端的可达信息表。

参见图8所示,在无线环境中,建立或更新可达信息表的具体流程如下:

b101.接入服务器定时向集中控制器上报客户端的工作状态信息报文;

b102.判断是否存在该客户端的可达信息表,如果是,转向b104,如果否,转向b103;

b103.新建客户端的可达信息表,并将接入服务器的mac地址加入客户端的可达信息表,并转向b101。

b104.判断接入服务器的mac地址是否存在于客户端的可达信息表中,如果是,转向b101,如果否,转向b105;

b105.将接入服务器的mac地址加入客户端的可达信息表中,并转向b101。

在有线环境中,接入服务器的组网情况一般都是人工预先配置的,接入服务器需要接收其他接入服务器发出的探测报文来构建其真实的组网情况,探测报文的ttl值可以配置成当前网络预配置的ttl差值,当某个接入服务器接收到其他接入服务器的探测报文,就可以考虑这两个接入服务器互为邻居接入服务器。集中控制器需要先在各个接入服务器上配置所有接入服务器的ip地址信息,假设源接入服务器设备启动后,根据其他接入服务器的ip地址信息,使用udp套接字定时的发送udp报文,该报文的负载字段为自身服务器mac地址,源端口和目的端口固定,该报文中的ip头部的ttl值设置为当前网络环境预配置的ttl差值。在目的接入服务器上监听指定的端口,如果目的接入服务器能够收到这个报文,目的接入服务器就需要把源接入服务器的mac信息上报给集中控制器。

为了防止在运行过程中配置修改,在所有的接入服务器都需要定时的读取其他接入服务器的ip信息以及当前网络环境预配置的ttl差值等相关运行配置。而一旦有接入服务器增加或者删除,集中控制器需要第一时间将新的接入服务器的ip地址信息同步下发给所有的接入服务器。

假设当前网络环境默认的ttl值为255,预配置的默认ttl差值为4,即邻居接入服务器之间最多经过4跳路由器,那么当收到其他接入服务器的探测报文即可认为这两个接入服务器互为邻居。如果该报文经过3跳以上的路由器,ttl值就会递减为0而被丢弃。接入服务器需要把接收到的探测报文的其他接入服务器信息上报给集中控制器。

在有线环境中,当任一接入服务器收到其他接入服务器的免费arp报文,或者接入服务器获取的其他接入服务器的探测报文的剩余生存时间ttl值在预配置的ttl差值范围内时,接入服务器向集中控制器发送其他接入服务器的信息,然后通过集中控制器建立或更新邻居信息表。

在集中控制器内对没有邻居信息表的接入服务器建立其邻居信息表;邻居信息表内包括接入服务器的邻居接入服务器的mac地址;

当接入服务器收到携带新mac地址的工作状态信息报文,且新mac地址对应接入服务器的邻居信息表中存在接入服务器的mac地址时,将新mac地址加入接入服务器的邻居信息表。

参见图9所示,在有线环境中,建立或更新邻居信息表的具体流程如下:

c101.当接入服务器1收到接入服务器2的免费arp报文,或者接入服务器1获取的接入服务器2的探测报文的剩余生存时间ttl值在预配置的ttl差值范围内时,接入服务器1定时向集中控制器发送接入服务器2的工作状态信息报文;

c102.判断是否存在接入服务器1的邻居信息表,如果是,转向c104,如果否,转向c103;

c103.新建接入服务器1的邻居信息表,并将接入服务器2的mac地址加入接入服务器1的邻居信息表,并转向c101。

c104.判断接入服务器2的mac地址是否存在于接入服务器1的邻居信息表中,如果是,转向c101,如果否,转向c105;

c105.判断接入服务器2的邻居信息表中是否存在接入服务器1的mac地址,如果是,转向c106,如果否,转向c101;

c106.将接入服务器2的mac地址加入接入服务器1的邻居信息表,并转向c101。

在有线环境中,当任一接入服务器收到客户端的免费arp报文,或者接入服务器获取的客户端的接入请求报文的剩余生存时间ttl值在预配置的ttl差值范围内时,即可认为该接入服务器为客户端的可达接接入服务器,同时接入服务器向集中控制器发送客户端的工作状态信息报文。

在集中控制器内对没有可达信息表的客户端建立其可达信息表;可达信息表内包括客户端的可达接入服务器的mac地址;

当任一接入服务器收到携带新mac地址的客户端的工作状态信息报文时,将该接入服务器的mac地址加入新mac地址对应客户端的可达信息表。

参见图10所示,在有线环境中,建立或更新可达信息表的具体流程如下:

d101.当接入服务器收到客户端的免费arp报文,或者接入服务器获取的客户端的接入请求报文的剩余生存时间ttl值在预配置的ttl差值范围内时,接入服务器定时向集中控制器发送客户端的工作状态信息报文;

d102.判断是否存在该客户端的可达信息表,如果是,转向d104,如果否,转向d103;

d103.新建客户端的可达信息表,并将接入服务器的mac地址加入客户端的可达信息表,并转向d101。

d104.判断接入服务器的mac地址是否存在于客户端的可达信息表中,如果是,转向d101,如果否,转向d105;

d105.将接入服务器的mac地址加入客户端的可达信息表中,并转向d101。

参见图11所示,邻居信息表是一个二级的散列表,即hash表,在该图中,集中控制器下面有接入服务器a-n,其中接入服务器b的邻居接入服务器是x-y,接入服务器n的邻居接入服务器是s-q。同理,参见图12所示,客户端的可达信息表也是一个二级的hash表。第一级hash主键是某个客户端的mac,对应的映射也是一个hash表,保存的是该客户端所有可达的接入服务器的mac。

上述负载均衡条件基于集中控制器内部的控制逻辑使用的负载均衡阈值。优选地,可基于接入服务器与其邻居接入服务器之间的当前接入用户数的差值或者是接入服务器与其邻居接入服务器之间的流量差值进行判断是否允许客户端接入。

基于接入服务器与其邻居接入服务器之间的流量差值是指根据接入服务器上整体用户设备流量统计来做负载均衡。具体地,在本实施例中,当任一接入服务器接收到客户端的接入请求时,根据自身接入的用户流量和相邻接入服务器接入的用户流量确定是否允许客户端接入。

基于接入服务器与其邻居接入服务器之间的当前接入用户数的差值是指根据接入服务器上接入的用户设备数量来做负载均衡。具体地,在其他实施例中,当任一接入服务器接收到客户端的接入请求时,根据自身接入的用户数量和相邻接入服务器接入的用户数量确定是否允许客户端接入。

在无线环境中,当客户端发起服务请求时,所有接收到这个服务请求的接入服务器需要将该客户端信息上报给集中控制器,由集中控制器通过预配置的负载均衡策略以及当前网络中的实际负载情况,来动态调整为客户端提供服务的接入服务器。

参见图13所示,在无线环境中,本发明实施例负载均衡方法的具体流程如下:

e1.接入服务器1接收客户端发送的接入请求报文;

e2.接入服务器1向集中控制器发送客户端的信息;

e3.集中控制器判断接入服务器1及其邻居接入服务器是否满足负载均衡条件,如果是,转向e4,如果否,转向e5;

e4.允许客户端接入该接入服务器1,结束。

e5.判断客户端的可达信息表是否存在下一个可达接入服务器,如果是,转向e6,如果否,转向e4;

e6.集中控制器判断存在的可达接入服务器及其邻居接入服务器是否满足负载均衡条件,如果是,转向e7,如果否,转向e5。

e7.允许客户端接入该可达接入服务器,结束。

在有线环境中,假设集中控制器采用用户数差值不超过4作为负载均衡判断条件,当接入服务器1接收到客户端的接入请求,接入服务器1获取客户端请求报文ttl值,计算与当前网络环境默认的差值是否超过阈值,如果没有超过阈值,接入服务器1就会把客户端请求服务信息上报给集中控制器。集中控制器先查找客户端的可达服务器信息表,如果客户端只有一个可达接入服务器,则必须允许其接入;假设客户端有可达接入服务器1和可达接入服务器2,就先判断接入服务器1及其邻居接入服务器之间当前接入用户数差值是否不大于4,如果条件满足,就允许接入服务器1为客户端提供服务;如果不满足用户数差值条件,就拒绝接入服务器1为客户端提供服务;接着判断接入服务器2及其邻居接入服务器之间是否满足接入用户数差值条件,直至完成遍历客户端的可达信息表,找到其中满足负载均衡条件的接入服务器。甚至可以采用重定向等技术来引导客户端去找满足负载均衡条件的可达接入服务器寻求服务。

参见图14所示,在有线环境中,本发明实施例负载均衡方法的具体流程如下:

f1.接入服务器1接收客户端发送的接入请求报文;

f2.判断接入请求报文的剩余生存时间ttl值是否在预配置的ttl差值范围内,如果是,转向f3,如果否,转向f5;

f3.接入服务器1向集中控制器发送客户端的信息;

f4.集中控制器判断接入服务器1及其邻居接入服务器之间是否满足负载均衡条件,如果是,转向f6,如果否,转向f7;

f5.拒绝客户端接入该接入服务器1,结束。

f6.允许客户端接入该接入服务器1,结束。

f7.判断客户端的可达信息表是否存在下一个可达接入服务器,如果是,转向f8,如果否,转向f6;

f8.集中控制器判断存在的可达接入服务器及其邻居接入服务器是否满足负载均衡条件,如果是,转向f9,如果否,转向f7;

f9.允许客户端接入该可达接入服务器,结束。

本实施例中,当客户端有且仅有一个可达接入服务器时,允许客户端接入该可达接入服务器。

本发明实施例还提供了一种集中控制型网络负载均衡系统,运行于集中控制器内。该系统包括邻居信息处理模块、可达信息处理模块和负载均衡模块,负载均衡模块分别与邻居信息处理模块和可达信息处理模块相连。

邻居信息处理模块用于接收并处理每个接入服务器上报的其他接入服务器的工作状态信息报文,建立或更新接入服务器的邻居信息表;可达信息处理模块用于接收并处理每个接入服务器上报的客户端的工作状态信息报文,建立或更新客户端的可达信息表;负载均衡模块用于接收接入服务器上报的客户端接入请求报文,并判断客户端的可达接入服务器及其邻居接入服务器是否满足负载均衡条件,当客户端的可达接入服务器及其邻居接入服务器满足负载均衡条件时,允许客户端接入可达接入服务器。

上述负载均衡条件基于集中控制器内部的控制逻辑使用的负载均衡阈值,可以灵活配置,减少人工干预的维护成本,以及客户端因为接入到负载过重的服务器上导致的用户体验差的情况。

本发明实施例的负载均衡系统,适用于上述负载均衡方法,通过建立和实时更新接入服务器的邻居信息表以及客户端的可达信息表,可快速的达到负载均衡调整的目的,提高网络运行效率。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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