流量的分流方法及分流器与流程

文档序号:12753341阅读:732来源:国知局
流量的分流方法及分流器与流程
本发明实施例属于通信领域,尤其涉及一种流量的分流方法及分流器。
背景技术
:随着视频直播和视频通话的进一步流行,互动式连接服务器(InteractiveConnectivityEstablishmentServer)和转发服务器(TraversalUsingRelayNATServer)的分流变得越来越重要,正确的分流会使公司部署的服务器更加合理,从而为公司节省下更多的运营费用。现在主流的流量分流器主要根据当前的接入连线数以及当前的流量选择如何分流,这种方法虽然简单易行,但是也有相当的局限性。以视频通话(基于VoiceoverIP技术)的传输特性为例,由于当前的流量不足以作为负载均衡的参照标准,因此,若仅根据当前的接入连线数以及当前的流量难以实现准确分流。技术实现要素:本发明实施例提供了一种流量的分流方法及分流器,旨在解决现有方法难以实现准确分流的问题。本发明实施例是这样实现的,一种流量的分流方法,所述方法包括:在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器;在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个;在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。本发明实施例的另一目的在于提供一种流量的分流器,所述分流器包括:服务器筛选单元,用于在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器;第一分流单元,用于在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个;第二分流单元,用于在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。在本发明实施例中,由于根据服务器可承载的理论用户数量与实际用户数量的关系选择分流策略,而服务器可承载的理论用户数量与实际用户数量的关系是动态变化的,因此,采用上述方法能够使得分流更准确。附图说明图1是本发明第一实施例提供的一种流量的分流方法的流程图;图2是本发明第一实施例提供的n个活跃用户变为(n+1)个活跃用户的概率以及整个系统变为(n-1)个活跃用户的示意图;图3是本发明第二实施例提供的一种流量的分流器的结构图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例中,在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器,在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个,在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。实施例一:图1示出了本发明第一实施例提供的一种流量的分流方法的流程图,详述如下:步骤S11,在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器。其中,预设距离范围内的服务器通常为与接入新用户的地理位置处于同一个城市内的服务器。可选地,所述步骤S11具体包括:A1、在接入新用户时,获取所述接入新用户的IP地址,并确定所述接入新用户的IP地址对应的地理位置。A2、筛选出与确定的地理位置在预设距离范围内的服务器。上述A1和A2中,当用户向分流器申请连接服务器时,分流器会获得该用户的IP地址,通过IP地址,分流器会获得该IP地址的地理位置(即物理地址),再选择与该用户位于同一城市的服务器作为备选服务器。由于筛选出的服务器与确定的地理位置在预设距离范围内,而近距离的通信能够降低丢包率,因此,能够降低用户接入任一个备选服务器后的丢包率。步骤S12,在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个。具体地,假设服务器中可承载的理论用户数量为C,用户视频传输所需的最大带宽相同(这点由视频通话的分辨率和音频通话的帧数和编码相关),那么服务器的最大带宽(假设用“B”表示)可以转化成最大负载人数(即C)则B=CV。其中,V为服务器提供的网速。可选地,将接入新用户分流至负载较低的服务器,如分流至负载最低的服务器。步骤S13,在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。当服务器中不存在可承载的理论用户数量大于实际用户数量(可用N表示)的服务器时,表明可能所有的服务器均超负荷,则为了获得更好的网络服务,将接入的新用户分流至超负荷服务器中丢包率最小的服务器。此时,所述步骤S13具体包括:B1、在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,确定用户的活跃概率λ为用户从沉默变为活跃的概率,α为用户从活跃变为沉默的概率。B2、在筛选出的服务器中存在满足以下公式的服务器时,计算满足以下公式的服务器的丢包率,并将所述接入新用户分流至丢包率最小的服务器:其中,C为服务器中可承载的理论用户数量,N为服务器的实际用户数量,“·”表示相乘,为一个用户的平均活跃概率,因此表示具有N个用户的服务器当前的平均活跃用户数量。上述B1和B2中,首先确定的服务器,再计算这些服务器中的丢包率,确定丢包率最小的服务器,进一步过滤了可接入的服务器,避免用户接入服务器后丢包率过高。进一步地,所述B1具体包括:B11、获取用户传输的数据量I、用户的接入时间T以及服务器提供的网速V。B12、根据下式计算用户的活跃概率其中,“·”表示相乘。上述B11和B12中,当分流器获得上个阶段用户传输的数据量I,以及用户的接入时间T后,可以算出在上一时间段用户的λ和α的比例。进一步地,在获得所有用户的λ和α之后,算出所有用户平均的λ和α。具体地,所有服务器同步向分流器汇报在相同的时间间隔内各自的上传下载流量,以及接入用户数量,以及在响应的时间间隔内每个用户传输的数据量。可选地,在所述步骤S13之前,包括:计算服务器的丢包率,确定丢包率最小的服务器。具体地,定义Fi(t,x)为在t时刻有i个活约用户,且服务器的缓存队列小于x的概率,该x为设定的值,当服务器的缓存队列小于x时,表明该服务器不会丢包,则在t+Δt时刻,Fi(t+Δt,x)的计算公式为:Fi(t+Δt,x)=[N-(i-1)]λΔtFi-1(t,x)+(i+1)αΔtFi+1(t,x)+{1-[(N-i)λ+iα]Δt}Fi[t,x-(i-C)αΔt]+o(Δt)该公式由四部分组成,一部分概率为原来处于i-1状态的情况,在t+Δt时刻变为i个用户活跃,第二部分概率为原来处于i+1状态的情况,在t+Δt时刻变为i个用户活跃,第三部分为原来有i个用户活跃,在t+Δt时刻还有i个用户活跃(可能是不同用户但是总数依旧为i),第四种是由其他状态变化为i个活跃状态。在该公式中o(Δt)≈Δt2大小可以被忽略。使用泰勒公式将上式变换,忽略掉变换完以后的高阶因子,变换完成后可以得到如下公式:Fi(t,x)+∂Fi(t,x)∂tΔt=[N-(i-1)]λΔtFi-1(t,x)+(i+1)αΔtFi+1(t,x)+{1-[(N-i)λ+iα]Δt}[Fi(t,x)-∂Fi(t,x)∂xΔx]]]>让Δt,Δx趋近于0,消除Fi(t,x),等式变化为∂Fi(t,x)∂t=[N-(i-1)]λFi-1(t,x)+(i+1)αFi+1(t,x)-[(N-i)λ+iα]Fi(t,x)-(i-C)α∂Fi(t,x)∂x]]>在稳定状态下等于0,表明Fi(t,x)不受时间t的影响,可以从Fi(t,x)变化为Fi(x),则原公式变换为:(i-C)α∂Fi(x)∂x=[N-(i-1)]λFi-1(x)-[(N-i)λ+iα]Fi(x)+(i+1)αFi+1(x)---(1)]]>现假设接入用户的沉默与否相互不影响则对应的条件概率为:πi=CNi(λλ+α)i(αλ+α)N-i]]>为了简化表示公式我们引入变量λn,μn,λn表示在有N个用户n个活跃用户的状态下,变为n+1个活跃用户的概率,μn为整个系统变为n-1个活跃用户的概率。在图2中,0、1、2等表示活跃用户数量。结合图2我们可以轻易得出λn-1μn-1=λnμn。我们用矩阵表达整个系统可以表示为:πM=0,其中π=[π0,π1,π2,...,πn],有了以上条件我们可以计算F(x),首先定义一个行向量:F(x)=[F0(x),F1(x),...,Fn(x)],再定义一个对角线矩阵D=diag[-Cα,(1-C)α,...,(N-C)α],则方程式(1)可以表达成如果i-C不等于0,则矩阵D存在矩阵D-1(即矩阵的逆),则上式可以变化为至此F(x)的求解可以通过MD-1的特征值和特征矩阵获得。设φi为MD-1的特征矩阵,Zi为特征值。则原式变化为Ziφi=φiMD-1,则服务器的丢包率为1-F(x)。本发明第一实施例中,在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器,在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个,在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。由于根据服务器可承载的理论用户数量与实际用户数量的关系选择分流策略,而服务器可承载的理论用户数量与实际用户数量的关系是动态变化的,因此,采用上述方法能够使得分流更准确。应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。实施例二:图3示出了本发明第二实施例提供的一种流量的分流器的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。该流量的分流器包括:服务器筛选单元31、第一分流单元32、第二分流单元33。其中:服务器筛选单元31,用于在接入新用户时,根据所述接入新用户的地理位置筛选出预设距离范围内的服务器。可选地,所述服务器筛选单元31包括:用户地理位置确定模块,用于在接入新用户时,获取所述接入新用户的IP地址,并确定所述接入新用户的IP地址对应的地理位置。地理位置筛选模块,用于筛选出与确定的地理位置在预设距离范围内的服务器。由于筛选出的服务器与确定的地理位置在预设距离范围内,而近距离的通信能够降低丢包率,因此,能够降低用户接入任一个备选服务器后的丢包率。第一分流单元32,用于在筛选出的服务器中存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至可承载的理论用户数量大于实际用户数量的服务器中的任一个。具体地,假设服务器中可承载的理论用户数量为C,用户视频传输所需的最大带宽相同(这点由视频通话的分辨率和音频通话的帧数和编码相关),那么服务器的最大带宽(假设用“B”表示)可以转化成最大负载人数(即C)则B=CV。其中,V为服务器提供的网速。可选地,将接入新用户分流至负载较少的服务器,如分流至负载最少的服务器。第二分流单元33,用于在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,将所述接入新用户分流至丢包率最小的服务器。可选地,所述第二分流单元33具体包括:用户的活跃概率确定模块,用于在筛选出的服务器中不存在可承载的理论用户数量大于实际用户数量的服务器时,确定用户的活跃概率λ为用户从沉默变为活跃的概率,α为用户从活跃变为沉默的概率。接入服务器确定模块,用于在筛选出的服务器中存在满足以下公式的服务器时,计算满足以下公式的服务器的丢包率,并将所述接入新用户分流至丢包率最小的服务器:其中,C为服务器中可承载的理论用户数量,N为服务器的实际用户数量,“·”表示相乘,为一个用户的平均活跃概率,因此表示具有N个用户的服务器当前的平均活跃用户数量。进一步地,所述用户的活跃概率确定模块包括:网络信息获取模块,用于获取用户传输的数据量I、用户的接入时间T以及服务器提供的网速V。活跃概率计算模块,用于根据下式计算用户的活跃概率其中,“·”表示相乘。当分流器获得上个阶段用户传输的数据量I,以及用户的接入时间T后,可以算出在上一时间段用户的λ和α的比例。进一步地,在获得所有用户的λ和α之后,算出所有用户平均的λ和α。可选地,所述分流器包括:丢包率计算单元,用于计算服务器的丢包率,确定丢包率最小的服务器。其中,丢包率的计算与实施例一中的相同,此处不再赘述。本发明第二实施例中,由于根据服务器可承载的理论用户数量与实际用户数量的关系选择分流策略,而服务器可承载的理论用户数量与实际用户数量的关系是动态变化的,因此,采用上述方法能够使得分流更准确。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1