CN108243112B - 聊天群组网络流量控制方法及装置、存储介质及计算设备 - Google Patents
聊天群组网络流量控制方法及装置、存储介质及计算设备 Download PDFInfo
- Publication number
- CN108243112B CN108243112B CN201810024736.0A CN201810024736A CN108243112B CN 108243112 B CN108243112 B CN 108243112B CN 201810024736 A CN201810024736 A CN 201810024736A CN 108243112 B CN108243112 B CN 108243112B
- Authority
- CN
- China
- Prior art keywords
- flow control
- packet loss
- chat room
- loss probability
- utilization rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/326—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施方式提供了一种聊天群组网络流量控制方法。该方法包括:获取聊天群组服务器的带宽使用率;以及在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。通过基于实时的带宽使用率监测数据,能够自适应的启动对聊天群组网络流量的控制,无需人工参与,本发明的方法使得聊天群组的广播包发送数量可控,从而显著地降低了由于服务器过载造成卡顿发生的概率,为用户带来了更好的体验,并且减少了聊天群组网络故障。此外,本发明的实施方式提供了一种聊天群组网络流量控制装置、存储介质及计算设备。
Description
技术领域
本发明的实施方式涉及网络流量控制领域,更具体地,本发明的实施方式涉及一种聊天群组网络流量控制方法及装置、存储介质及计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
聊天群组通常以即时通讯工具或网站为载体,包括即时通信群组或者聊天室。例如,用户可在终端中安装的IM工具中建立聊天群组,并邀请多个该IM工具的其它用户进入聊天群组,此时聊天群组内包括多个用户(成员)。聊天群组供许多人通过文字、符号或者图片声音等多媒体信息进行实时交流。聊天群组的特点在于,一个用户在聊天群组内发的消息,能即时被该聊天群组内的其他成员看到。在聊天群组成员达到数以万计时,一个用户发布的一条消息,将经由聊天群组服务器向数以万计的用户客户端发送。由此,当同一聊天群组众多用户同时发布消息的时候,将对聊天群组服务器的性能产生极大的挑战,包括影响服务器的CPU和网络流量,这将进而加大服务器的系统负载,影响处理性能。
目前,已经出现一些缓解聊天群组服务器网络开销过大的方法。例如,对聊天群组内的即时消息按照客户端发送的过滤条件进行过滤,减少聊天群组服务器的网络处理量。
发明内容
但是,出于并没有对产生网络流量的数据消息本身进行有效控制的原因,现有技术并不能从根本上解决服务器出现的过载状况。
因此在现有技术中,常会由于聊天群组业务流量突发造成服务器宕机从而给客户带来影响,这是非常令人烦恼的过程。
为此,非常需要一种改进的聊天群组网络流量控制方法,以使有限的聊天群组服务器资源在网络流量变化的过程中保持良好的运转状态。
在本上下文中,本发明的实施方式期望提供一种聊天群组网络流量控制方法及装置、存储介质及计算设备。
在本发明实施方式的第一方面中,提供了一种聊天群组网络流量控制方法,包括:获取聊天群组服务器的带宽使用率;以及在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。
在本发明的一个实施例中,所述带宽使用率根据监测的聊天群组服务器网络流量计算获得。
在本发明的另一实施例中,所述对聊天群组的广播包发送量进行控制包括对聊天群组的广播包进行丢包控制。
在本发明的又一个实施例中,所述丢包控制包括对聊天群组部分在线人员客户端放弃发送消息。
在本发明的再一个实施例中,所述丢包控制包括对聊天群组在线人员客户端按丢包概率放弃发送消息。
在本发明的再一个实施例中,所述丢包控制包括:根据带宽使用率的变化,逐步调整丢包概率。
在本发明的再一个实施例中,所述丢包概率基于带宽使用率的升高而逐步增加。
在本发明实施方式的第二方面中,提供了一种存储有程序的存储介质,所述程序被处理器执行时实现上述聊天群组网络流量控制方法的步骤。
在本发明实施方式的第三方面中,提供了一种聊天群组网络流量控制装置,包括:流量监测单元,用于获取聊天群组服务器的带宽使用率;流量控制单元,包括用于在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制。
在本发明实施方式的第四方面中,提供了一种计算设备,包括上述存储介质。
根据本发明实施方式的聊天群组网络流量控制方法及装置、存储介质及计算设备,基于实时的带宽使用率监测数据,能够自适应的启动对聊天群组网络流量的控制,其以控制广播包发送量的方式应对网络流量的变化,无需人工参与。从而显著地降低了由于服务器过载造成卡顿发生的概率,并且减少了由于流量突发而造成的聊天群组网络故障,使服务器运转顺畅,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的聊天群组网络流量控制方法的一个示例性处理的流程图;
图2示意性地示出了根据本发明另一实施例的聊天群组网络流量控制方法的示例性处理的流程图;
图3示意性地示出了根据本发明又一实施例的聊天群组网络流量控制方法的流量控制状态切换图;
图4示意性地示出了根据本发明实施方式的聊天群组网络流量控制装置的一个示例的结构框图;
图5示意性地示出了根据本发明一实施例的计算机可读存储介质的示意图;
图6示意性地示出了根据本发明一实施例的计算机的结构框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种聊天群组网络流量控制方法及装置、存储介质及计算设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术方案中为了有效的利用聊天群组服务器资源但又不至使其过负荷,主要是从前期优化配置的角度或是通过用户自行参与过滤部分数据消息的方式来避免服务器过载情况的发生。例如,通过自适应的手段为聊天群组的进入请求分配服务器,分配服务器时预先考虑服务器的承受能力;或者,籍由聊天群组的在线用户根据自身需求预先设置的消息过滤条件,来减少服务器的数据发送量。这些方式,能够在一定程度上缓解网络流量,但并没有从根源上——即造成服务器过载的消息数据本身着手来解决数据流量过大的问题,因此,一旦遭遇网络流量突发使服务器过载,很难应对。
本发明针对产生网络流量的数据广播包发送量提供了一种聊天群组网络流量控制方法及装置、存储介质及计算设备,在获取聊天群组服务器的带宽使用率的基础上,将当前的带宽使用率与流控触发条件相比较,当带宽使用率满足流控触发条件时,自适应启动对聊天群组数据流量的控制,即对聊天群组广播包发送量进行控制。由此可知,本发明实施方式提供的技术方案由于能够从实质上对聊天群组内的数据流量进行控制,从而可使聊天群组服务器的负荷量可控,使运行更顺畅,为用户提供更友好的体验。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面参考图1来描述根据本发明示例性实施方式的聊天群组网络流量控制方法。需要注意的是,本发明的实施方式不受任何应用场景的限制。相反,本发明的实施方式可以应用于适用的任何场景。
图1示意性地示出了根据本公开实施例的聊天群组网络流量控制方法的一种示例性处理流程100。
如图1所示,处理流程100开始于S110,然后执行步骤S120。
在步骤S120中,获取聊天群组服务器的带宽使用率。
网络带宽,是指在单位时间内(一般指的是一秒钟)数据传输通道能传输的数据量,与高速公路类似,带宽越大,类似高速公路的车道越多,通行能力就越强,是衡量网络特征的一个重要指标。
带宽使用率作为描述数据传输速率和带宽之间关系的一个指标,表示为数据流量码率与带宽流量阈值的比值。带宽流量阈值可以经过性能测试得出,例如可以是使服务器维持良好运转所能承受的最大流量带宽,其为一个自定义的阈值。
作为流量控制的前提,首先要获得网络流量(数据流量码率)。
作为示例,本发明实施方式中的网络流量可以采用网络流量监测模块监测获得。
由于聊天群组的流控控制的是聊天群组长连接服务器发往实际的用户客户端的流量,故而所述网络流量监测模块可以用于监测服务器的外网网卡流量。
作为示例,本发明实施方式中可以利用linux系统自带的“cat/proc/net/dev”命令对当前的网卡流量进行定时监测:
String COMMAND=“cat/proc/net/dev”;
Process process=Runtime.getRuntime().exec(COMMAND);
其中,进程Process process通过调用命令“Runtime.getRuntime().exec()”生成一个新的进程,调用“cat/proc/net/dev”命令,从而可以得到当前时刻外网网卡流量总大小Traffic,单位可以采用字节。
作为示例,本发明实施方式中的带宽使用率可以根据监测的聊天群组服务器网络流量计算获得。
作为示例,本发明实施方式中的带宽使用率netUsage可以是:
netUsage=Traffic_Rate/customBandwidth,
其中流量码率Traffic_Rate可以为相邻采样周期的外网网卡流量差,customBandwidth为自定义的最大外网带宽流量阈值。
作为示例,本发明实施方式中的流量码率Traffic_Rate可用于表示一个预设定时周期内的流量码率,以兆比特每秒(Mbps=Mbit/s)为单位,则可以表示为:
Traffic_Rate=(Traffic_N+1-Traffic_N)*8/(1000000*interval);
其中Traffic_N+1为第N+1次采集得到的外网网卡流量,Traffic_N为第N次采集得到的外网网卡流量。
通常情况下,带宽使用率netUsage应处于0至1之间,但是由于最大外网带宽流量阈值为自定义阈值,因此,在网络流量突发时,有可能出现带宽使用率netUsage大于1的情况。接下来可以执行步骤S130。
步骤S130,在获取的带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。
下面首先,对系统负载进行简要的分析说明,从而说明在系统负载达到一定程度时进行流量控制的必要性。
系统负载(System Load):表示CPU繁忙的程度,即有多少进程在等待被CPU调度。平常说的负载一般指平均负载(Load Average),即一段时间内系统的负载,所述一段时间一般取1分钟、5分钟或15分钟。对于单核处理器来说,负载小于1时,表示没有等待的进程;负载等于1时,表示系统资源已被全部占用,无额外的资源跑更多的进程;负载大于1时,表示系统资源已被全部占用,新的进程已经在拥堵着等待资源。将单核CPU比做一座只有一条单向车道的大桥,所有车辆只能单向从这条车道上通过:当系统负载为0时,意味着大桥上一辆车也没有;系统负载为0.5,意味着大桥一半的路段有车;系统负载为1.0,意味着大桥的所有路段都有车,也就是说大桥已被占满,此时,大桥还能顺畅通行;系统负载为1.5,表示车辆已占满大桥,等待上桥的车辆为桥面车辆的50%,这意味着,在系统负载大于1时,桥下的车辆必须等待桥面资源,并且系统负载越大,后续车辆过桥的等待时间越久。
通过上述对系统负载的说明可见,当服务器系统负载为1.0时,已经达到数据消息(即进程)拥堵的临界点。随着新数据消息的产生,系统再无资源可供调度,因此,若不预先采用流量调控手段,极易产生系统过载,影响正常工作。因此,需要在系统的负载未达到1但已经接近某个阈值时,介入流量调节手段,使系统负载尽量保持在系统可负担的安全值范围内,不影响系统的主体业务。
在本发明实施方式中,以预设定的流控触发条件作判据,确定是否需要对聊天群组的广播包发送量进行控制。
作为示例,本发明实施方式中控制广播包发送量的方式可以为,例如:不考虑客户端,对消息本身的发送量进行控制。例如,按预设的条件,滤除部分类型消息减少广播包发送量,这种方式简单,直接。
作为示例,本发明实施方式中对聊天群组的广播包发送量进行控制还可以包括对聊天群组的广播包进行丢包控制。
首先对丢包进行说明:聊天群组服务器给用户客户端发送的消息,是以一个个网络包的方式发送的。丢包即意味着正常情况下需要发送的网络包,在产生流控的场景下,服务器主动放弃发送。丢包概率,即意味着以多大的概率放弃发送当前这个网络包。
作为示例,本发明实施例中丢包控制依然可以包括不考虑客户端,而只控制产生流量的消息本身的方式:例如按预设的时间段,放弃发送至少某一时间段内产生的广播包。此种方式,在流控过程中,可以按预设频率执行丢包控制。例如可以根据带宽使用率的变化设置相应的丢包频率:当流量增长快的时候,执行丢包的时间间隔就短一点;否则,丢包的时间间隔可以设置长一点。再例如,丢包控制还可以包括放弃发送某类数据的方式:例如,将所有消息按类别标记标签,当流量调控发生时,按照预定的放弃条件放弃发送具有某类标签的消息。所述标记标签可以按重要程度由低到高对消息类别进行标记,放弃发送条件可以包括按由低到高的标记标签依次放弃对应的消息。这种方式直接放弃掉某一类或某些类消息的发送,所有客户端收到的消息相同。标记标签还可以体现为对消息类型占用空间大小的区分,或者综合考虑消息的重要程度和占用空间大小之后的优先顺序区分。
作为示例,本发明实施方式的丢包控制还可以包括对聊天群组部分在线人员客户端放弃发送消息。
作为示例,本发明实施例对部分在线人员客户端放弃发送消息的方式可以为:例如,将在线客户端分组,在预设的时间段内将产生的消息选择至少一个客户端组不发送;在线客户端的分组方式可以采用任意可实现规则;不接收消息的客户端组数量,可以根据带宽使用率的占用情况设定对应选择规则。例如,当带宽使用率足够高的时候,可按照预设的可放弃客户端组数量上限来选定客户端组。也可以对客户端按属性特征分组,使数据消息可以针对性的选择发送,不一一赘述。
作为示例,本发明实施方式还可以包括对聊天群组在线人员客户端按丢包概率放弃发送消息。
首先明确丢包概率的作用对象为客户端:丢包概率作用的结果就是目标客户端中有多少人不会收到当前消息。假定一条聊天群组消息计算所得的丢包概率0.3,当聊天群组在线人数为例如500人,则500*0.3=150人不会收到这条消息,而500*(1–0.3)=350人还是会收到这条消息的。
作为示例,本发明实施例的丢包概率可以为一个固定值,即当带宽使用率满足流控触发条件时,对客户端按预设的丢包概率放弃发送消息。进一步地,在客户端按属性特征分组的基础上,可以针对不同的分组特征一一对应设置不同值的丢包概率。在此基础上,还可以将设定的多个丢包概率在不同分组之间循环变换使用。
作为示例,本发明实施例所述丢包控制可以包括:根据带宽使用率的变化,逐步调整丢包概率。
要想使带宽使用率能始终处于一个比较健康的状态,可以针对带宽使用率的动态变化过程,动态的调整丢包概率。一个简单的示例:可以使丢包概率与带宽使用率呈正比例函数变化;或者可以使丢包概率随带宽使用率按比例变化,其比例系数也随着带宽使用率的变化而变化。以公式y=kx为例,y表示丢包概率,x表示带宽使用率,在y随x变化的基础上,k也可以为一变化值,例如随着x的升高而增大。
作为示例,本发明实施例所述丢包概率基于带宽使用率的升高而逐步增加。例如,丢包概率随带宽使用率呈线性升高;或者丢包概率随带宽使用率升高而逐级累加。
作为示例,本发明实施例所述丢包概率基于带宽使用率的下降而逐步降低。该过程与丢包概率基于带宽使用率的升高而逐步增加的过程呈反方向变化,实现方式与之类似。
为了在丢包过程中尽量减少对客户端的负面影响,丢包概率的设定一方面要考虑不影响系统主体业务,另一方面还要考虑能使聊天群组服务器的运行状态平稳,丢包结果以不被用户明显感知为宜。
作为示例,本发明实施例所述丢包概率可以处于预定丢包初值与预定丢包阈值之间。预定丢包初值不宜设置过小,以免达不到控制流量增长的目的;同样,预定丢包阈值也不宜过大,以免使大部分客户端无法正常接收消息,影响到聊天群组的主体业务。
作为示例,本发明实施例所述丢包概率可以基于带宽使用率的流控触发条件而逐步调整。满足流控触发条件,是执行丢包控制的先决条件。为了达到更好的流控效果,可以通过设置流控触发条件的方式,使丢包概率的选择更合理。
作为示例,本发明实施例的一个相对简单的方式,可以只设置一个流控触发条件,带宽使用率达到或超过流控触发条件,即按相应的丢包概率进行流量调控。
由于流量变化是双向的,因此流量的调控状态是随着流量状态双向的变化而调整的。
作为示例,本发明实施例所述的流控触发条件可以包括:所述带宽使用率可以是以增加或者减少的方式达到或者越过流控触发阈值。也即,带宽使用率沿从高到低或者从低到高的方向分别触发流量控制时,会分别执行不同的流量控制策略。
作为示例,本发明实施例所述的流控触发阈值可以分段设置,使带宽使用率在不同的数值区间时,能够对应更有效的流控方案。例如,假设以带宽使用率在0.5以内时为额定安全值,可以使带宽使用率每增长0.1对应一个流控触发阈值,然后可以在不同的流控触发阈值之间,执行不同的丢包概率。
作为示例,本发明实施例所述的流控触发阈值可以包括低流控触发阈值和高流控触发阈值。设定这两个流控触发阈值将带宽使用率的状态分成了三小段,在未达到低流控触发阈值以前,不需要流控;带宽使用率介于二者之间时,可以认为是带宽使用率平稳变化的阶段,此时服务器并没有过载,之所以要在此阶段启动流量控制,是为了防止后续一旦产生大量的数据消息直接导致系统过载,此时的流控可以是一种预防手段,因此流控比例选择可以相对平缓;在带宽使用率超过高流控触发阈值时,表明系统即将处于过载的临界状态,此阶段,流控比例可以设置的相对大,使系统不至因突发的大流量导致瘫痪。
作为示例,本发明实施例所述的丢包概率基于带宽使用率的流控触发条件而逐步调整包括:以预定流控步长来调整所述丢包概率。即不是一次性达到最大的丢包概率或者回归到0丢包概率,而是一次以一定的概率(流控步长)逐步递增或者递减丢包概率。
流控步长,即每一次调节丢包概率时,所增加或者减少的丢包比例。当以百分比表示丢包概率时,流控步长就是一定数量的“百分点”。
作为示例,本发明实施例所述的丢包概率可以是预定流控步长依次递加或依次递减的结果。流控步长依次递加或递减的次数,即为流控步数。以丢包概率为百分比的表达形式为例,此时所有包均丢掉时的丢包概率为1即100%,因此流控步长(例如百分点数n%)与流控步数(m)的乘积n*m%需要不超过100%。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率包括:在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0。当带宽使用率在一定的时间段内都处于低流控触发阈值以下,表明网络流量很稳定,服务器的工作资源足以应付产生的广播包,此时不需要介入流量控制,因此使流控步数为0,即丢包概率为0。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1。带宽使用率处于低流控触发阈值以上,并且相邻的前一个状态并未启动流量控制时,需要启动流量控制,此时,使流控步数加1,即按预定流控步长启动了流量控制。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值。在已经启动了流量控制,并使带宽使用率控制在低流控触发阈值和高流控触发阈值之间时,认为带宽使用率达到了一个相对平衡,此时,可不对丢包概率进行调整。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1。当带宽使用率处于高流控触发阈值以上,表明网络流量正在快速的增长,不论带宽使用率是由哪种状态过渡到当前状态,为使系统稳定,都要加大流量控制。如果是当前已启动了流控控制的情况,表明当前的丢包概率过于柔和,需要继续提高丢包概率。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1。这种情况表明当前是由于采用了流量控制手段才使带宽使用率处于低流控触发阈值以下,由于带宽使用率已处于安全范围内,因此可以调低流控步数,直至为0;如果由于调低流控步数,又造成带宽使用率的升高,则继续按照带宽使用率过渡到的区间的相应调整规则调整丢包概率。
作为示例,结合图3所示,本发明实施例可以将带宽使用率的动态变化过程以低流控触发阈值和高流控触发阈值为界线设定为四种工作状态,用以说明在结合流量控制手段后,带宽使用率是如何在四种工作状态之间变化的。
首先说明一下,聊天群组的流量控制事件,发生在聊天群组长连接服务器对聊天群组中的消息进行分发广播时。对聊天群组广播包进行拆包时,首先获取最新监测到的带宽使用率netUsage,并基于低流控触发阈值(flowLowThreshold)和高流控触发阈值(flowHighThreshold)对当前的带宽使用率所处工作状态进行判断:
可以将带宽使用率小于低流控触发阈值,但流控步数为0的工作状态定义为持续型流控未达态;将带宽使用率达到低流控触发阈值但未达到高流控触发阈值之间的工作状态定义为流控稳定态;将带宽使用率达到高流控触发阈值以上的状态定义为流控增长态;再将带宽使用率小于低流控触发阈值,但流控步数大于0的工作状态定义为短暂型流控未达态。
结合图3所示,来说明带宽使用率在四种工作状态下的自然切换:
以低流控触发阈值作为流控触发的临界点。假设在初始阶段,带宽使用率处于持续型流控未达态,此时不会触发流控,所有的聊天群组广播消息都将按计划下发;随着网络流量的增长,带宽使用率可能过渡到流控稳定态或流控增长态。
若带宽使用率进入到流控稳定态,会触发流控,此时,流控步数加1。随着丢包控制的进行,带宽使用率可能会过渡到流控增长态或短暂型流控未达态,也可能维持在流控稳定态不变。对于维持流控稳定态的情形,可以认为此时的丢包概率恰到好处,系统达到了相对平稳,保持原丢包概率运行。
若带宽使用率由持续型流控未达态进入到流控增长态,表示业务流量大幅飙升,需要启动流量控制,同样使流控步数加1;若带宽使用率由流控稳定态进入到流控增长态,则表示当前的丢包概率不足以使系统稳定下来,因此需要继续提高丢包概率,继续累加流控步数。接下来,带宽使用率又可能返回到流控稳定态或短暂型流控未达态。
带宽使用率从任意状态过渡到短暂型流控未达态时,均表示在流控的调整下,带宽使用率已经回归到低流控触发阈值以下,但是因为此时流控步数大于0,因此,可降低流控步数,直至为0,进入持续型流控未达态,从而可以认为完成一个带宽使用率的循环。但是在流控步数减小的过程中,带宽使用率还有可能再次回到流控稳定态或流控增长态,继续按相应的规则调控即可。
需要说明的是,对于由短暂型流控未达态或流控增长态过渡到流控稳定态的状况,均认为此时的丢包概率恰到好处,系统达到了相对平稳,因此保持原丢包概率运行即可。
作为示例,本发明实施例在聊天群组业务流量飙升的状态下,可以设置应急控制策略,来避免网络瘫痪故障的发生。例如所述流控触发阈值还可以包括临界状态阈值,为当前的带宽使用率状况预警。此处的临界状态阈值可以大于高流控触发阈值。
作为示例,本发明实施例在带宽使用率达到或者超过临界状态阈值的情况下,可以按照预设最大丢包概率进行丢包控制,以使带宽使用率得以平滑切换到安全状态。
由于聊天群组内产生的消息种类非常多,对于实际用户来说,各种消息的敏感度不同,有些消息即便完全不接收,可能用户也根本不关心;而有些消息的丢弃用户就相对比较容易发现。因此,为了有更好的用户体验,丢包控制可以同时考虑消息类型这个相关因素。
作为示例,本发明实施例所述丢包概率还根据消息类型加以调整。可以配合丢包概率的取值在0到1之间的百分数表示方法,对不同消息类型赋以0至1之间的相关值,从而对应当前丢包概率基于消息类型分级降级。以赋值的两个端点为例,对那些无关紧要的消息,可以被赋值1,表示可以完全按照丢包概率的现有比例进行丢包控制,不做降级;而对于重要程度比较高的消息,可以赋予相对趋近于0的值,表示在丢包概率现有比例的基础上要继续缩小到很小的比例进行丢包控制,以降低使客户敏感到的可能性。对于被赋值为0的消息类型,可以用于表示用户对此类消息足够敏感,此类消息不可做丢包处理;对于此种消息类型,也可以单独作为是否进行流量控制的附加判定条件。
作为示例,本发明实施例可以再设置一个与消息类型相关的降级因子,使每一类消息匹配一个相应的降级因子。计算丢包概率时,可以对当前丢包概率乘以当前消息类型的降级因子,将计算结果作为广播包的最终丢包概率。该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增,也就是说,降级因子越小,需要消息被丢弃的比例越小。
作为示例,本发明实施例所述降级因子可以基于消息类型重要程度赋值。
作为示例,本发明实施例以以下六种消息的排序为例:进出聊天群组消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息;若基于消息类型的重要程度,则可以按上述顺序从大到小对相应降级因子赋值。
作为示例,本发明实施例所述降级因子还可以基于消息类型占用空间大小赋值。
作为示例,本发明实施例以以下五种消息的排序为例:图片消息、语音消息、进出聊天群组消息、成员身份变更消息及文字消息;若基于消息类型的占用空间量,则可以按上述顺序从大到小对相应降级因子赋值。
作为示例,本发明实施例所述降级因子还可以基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
作为示例,本发明实施例以以下五种消息的又一次排序为例:进出聊天群组消息、成员身份变更消息、图片消息、语音消息及文字消息;若基于消息类型重要程度及消息类型占用空间大小的综合考量,可以按上述顺序从大到小对相应降级因子赋值。
根据以上特点,通过表1给出消息类型与降级因子对应匹配的示例:
表1
表1中,消息类型用序列号1,2,……,n按用户敏感度由弱到强排序,n为正整数。对应于用户敏感度最弱的消息类型1,其降级因子可以赋值最大,例如1;对应于用户敏感度最强的消息类型n,可以相适应的赋值为0或趋向于0的与消息类型匹配的值。
处理流程100结束于S140。
图2示意性地示出了根据本公开实施方式的聊天群组网络流量控制方法的另一个示例的处理流程200。
如图2所示,处理流程200开始于S210,然后执行步骤S220。
步骤S220的处理可以与上文中结合图1所描述的处理流程100中的对应步骤S120的处理相同,并能够达到相类似的功能和效果,这里不再赘述。然后执行S230。
步骤S230中,实时判断带宽使用率是否满足流控触发条件,若满足,则执行S240;否则,继续在步骤S230中进行判断;
图2所示的处理流程200可以是在基于图1所示的处理流程100满足流控触发条件时,再进一步增加对聊天群组在线人数是否满足人数触发条件的判定,即在步骤S230与步骤S240都达到触发条件的基础之上,才启动对聊天群组广播包发送量的控制。
对于流控触发条件,与处理流程100中的步骤S130中所描述的相类似,并具有相同的功能和效果。
步骤S240中的人数触发条件,简单说来,就是对可以启动流量控制的最低人数限定。举个例子来说明设定人数触发条件的重要性,极端一点,假设当前聊天群组的在线用户只有两个人,因为大流量数据的发送使得带宽使用率满足了流控触发条件。但是在此种条件下,若启动流量控制,由于只是两个人在对话,如有被丢弃的广播包,用户会格外敏感,因此不适于启动流量控制。这样就需要设定一个可以启动流量控制的人数最低值,即至少在线用户达到多少以上,丢包控制才不会使用户轻易的感觉到,从而不破坏用户的在线体验。
由于在线用户人数的变化也是双向的,因此,作为示例,本发明实施例所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。即,当用户人数由少到多达到或超过在线人数触发阈值时,可以启动流量控制;当用户人数由多到少越过在线人数触发阈值时,可以停止流量控制。
聊天群组的网络流量是由于在线用户的聊天消息产生的,因此,我们可以认为,聊天群组的带宽使用率与在线人数成正相关,也即,聊天群组在线人数越多,带宽使用率相对最大,因此,在进行丢包控制时,丢包概率的计算还可以考虑在线人数的因素。
作为示例,本发明实施例所述丢包概率还可以根据在线人数加以调整。按照带宽使用率与在线人数的正相关关系,以在线人数多,对应丢包概率相对大为原则确定最终的丢包概率。
此处为有利于对最终的丢包概率有个明确的概念做一简单说明:例如,可以将根据流控步长和流控步数确定的初始丢包概率作为流控发生时,可执行的最大丢包概率。而后面提到的消息类型降级因子,或者在线人数因素,都相当于在初始丢包概率的数值基础上作降级,比如前面提到的消息类型降级因子,如果消息不重要,至多是现有丢包概率不变,若变,便是由于消息类型相对重要,缩小丢包概率;此处提到的在线人数因素也可以相类似,至多是当人数达到预设人数最高阈值时,按现有丢包概率进行丢包控制;对于在线人数在人数触发阈值与预设人数最高阈值之间变化的情况,可以按0至1之间的数值比例对丢包概率进行相应减小的调整。
作为示例,本发明实施例所述丢包概率可以根据在线人数分级调整。即可以在人数触发阈值之上,将在线人数由少到多分段,丢包概率对应于在线人数所处分段相应调整。
作为示例,本发明实施例所述丢包概率可以根据在线人数所处数值区间,按与数值区间相应的预设比例调整。可以将在线人数达到的每个数值区间,分别预设相应的丢包概率调整比例。
作为示例,本发明实施例所述丢包概率根据在线人数的逐渐增多而逐步增加。例如,在人数触发阈值之上,可以使丢包概率的调整比例与在线人数成简单的正比例关系;也可以设置调整比例的步长,使最终的调整比例是步长累加的结果。
对于多个聊天群组对应于一台服务器的情况,每个聊天群组的丢包概率还与本身的在线人数及其他聊天群组的在线人数相关。
作为示例,本发明实施例对于归属同一服务器的至少两个聊天群组,按照每个聊天群组人数的相对比例调整丢包概率。此处可以自定义丢包概率根据聊天群组人数的相对比例的调节规则。例如,两个聊天群组,一个在线人数为100,一个在线人数为200;可以首先设定一个人数调节基值例如0.3,则第一个聊天群组的丢包概率调节值可以为0.3*(100/n),第二个聊天群组的丢包概率调节值可以为0.3*(200/n)。其中n为预先设定的、或者可以人工调节的一个基准值,例如500。
作为示例,本发明实施例所述聊天群组人数的相对比例可以包括每个聊天群组的在线人数与在线人数最多聊天群组人数的比值。在所述相对比例的基础上可以自定义一个调节基准值。
举个例子,假设归属于同一服务器的三个在线人数最多的聊天群组分别为A,B,C,在线人数分别为1000,500,300,则在线人数最多的聊天群组人数为1000,按最简单的比例对丢包概率进行调整,则聊天群组A的最终丢包概率为:原丢包概率*(1000/1000),即保持原丢包概率不变;聊天群组B的最终丢包概率为:原丢包概率*(500/1000),由于人数的关系,聊天群组B最终丢包概率为原丢包概率的一半;聊天群组C的最终丢包概率为:原丢包概率*(300/1000),即为原丢包概率的十分之三。此例中,为了在使用中使丢包概率的调整比例更合理,可以选择设置一个0至1之间的调节基准值,在此基础上再乘以人数比值。
作为示例,本发明实施例所述聊天群组人数的相对比例还可以包括每个聊天群组的在线人数与所有聊天群组在线人数总和的比值。将所有聊天群组在线人数作为一个整体,获得每个聊天群组的丢包概率调节比例,则每个聊天群组人数的总体占比更直观,这种情况下按单个聊天群组在线人数在总体中的比例进行丢包概率的调整,调节比例相对来说更容易合理地确定。
处理流程200结束于步骤S260。
上述以带宽使用率作为流控触发条件的网络流量控制示例,与以在线人数作为触发条件的网络流量控制示例,二者可以相结合实现,以使流量控制达到更好的控制效果。也可以分别成立,以人数作为触发条件的网络流量控制为例,可以是例如:设定0.5的基本丢包概率。然后以10000人为上限。也就是说10000人在线的聊天群组丢包概率为0.5,十个人在线的聊天群组的丢包概率为0.5*0.1%,很低,几乎相当于不丢包,为一种相对来说更加简单易行的方式。
本发明是在服务器资源有限的情况下进行的流量控制,通过上述示例表明,本发明能够控制发包数量,从而使系统的工作状态能够平滑过度,保障良好运转,可用于实现服务器的自我保护。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图5描述本发明示例性实施方式的计算机可读存储介质,用于实现上述示例性方法部分中描述的根据本发明各种示例性实施方式的方法中的步骤。
图5的计算机可读存储介质为光盘500,其上存储有计算机程序(即程序产品),该程序被处理器执行时,会实现上述方法实施方式中所记载的各步骤,例如,获取聊天群组服务器的带宽使用率;在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。各步骤的具体实现方式在此不再重复说明。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图4对本发明示例性实施方式的聊天群组网络流量控制装置进行说明。
参见图4,示意性地示出了根据本发明实施方式的聊天群组网络流量控制装置的结构框图,该装置可以设置于终端设备中,例如,该装置可以设置于服务器中。本发明实施方式的装置400可以包括下述组成单元:流量监测单元410和流量控制单元420。
流量监测单元410可以用于获取聊天群组服务器的带宽使用率。
作为流量控制的前提,首先要获得网络流量(数据流量码率)。
作为示例,本发明实施方式中的网络流量可以采用网络流量监测模块监测获得。
由于聊天群组的流控控制的是聊天群组长连接服务器发往实际的用户客户端的流量,故而所述网络流量监测模块可以用于监测服务器的外网网卡流量。
作为示例,本发明实施方式中可以利用linux系统自带的“cat/proc/net/dev”命令对当前的网卡流量进行定时监测:
String COMMAND=“cat/proc/net/dev”;
Process process=Runtime.getRuntime().exec(COMMAND);
其中,进程Process process通过调用命令“Runtime.getRuntime().exec()”生成一个新的进程,调用“cat/proc/net/dev”命令,从而可以得到当前时刻外网网卡流量总大小Traffic,单位可以采用字节。
作为示例,本发明实施方式中的带宽使用率可以根据监测的聊天群组服务器网络流量计算获得。
作为示例,本发明实施方式中的带宽使用率netUsage可以是:
netUsage=Traffic_Rate/customBandwidth,
其中流量码率Traffic_Rate可以为相邻采样周期的外网网卡流量差,customBandwidth为自定义的最大外网带宽流量阈值。
作为示例,本发明实施方式中的流量码率Traffic_Rate可用于表示一个预设定时周期内的流量码率,以兆比特每秒(Mbps=Mbit/s)为单位,则可以表示为:
Traffic_Rate=(Traffic_N+1-Traffic_N)*8/(1000000*interval);
其中Traffic_N+1为第N+1次采集得到的外网网卡流量,Traffic_N为第N次采集得到的外网网卡流量。
流量控制单元420可以用于在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制。
作为示例,本发明实施方式中控制广播包发送量的方式可以为,例如:不考虑客户端,对消息本身的发送量进行控制。例如,按预设的条件,滤除部分类型消息减少广播包发送量,这种方式简单,直接。
作为示例,本发明实施方式中对聊天群组的广播包发送量进行控制还可以包括对聊天群组的广播包进行丢包控制。
作为示例,本发明实施例中丢包控制依然可以包括不考虑客户端,而只控制产生流量的消息本身的方式:例如按预设的时间段,放弃发送至少某一时间段内产生的广播包。此种方式,在流控过程中,可以按预设频率执行丢包控制。例如可以根据带宽使用率的变化设置相应的丢包频率:当流量增长快的时候,执行丢包的时间间隔就短一点;否则,丢包的时间间隔可以设置长一点。再例如,丢包控制还可以包括放弃发送某类数据的方式:例如,将所有消息按类别标记标签,当流量调控发生时,按照预定的放弃条件放弃发送具有某类标签的消息。所述标记标签可以按重要程度由低到高对消息类别进行标记,放弃发送条件可以包括按由低到高的标记标签依次放弃对应的消息。这种方式直接放弃掉某一类或某些类消息的发送,所有客户端收到的消息相同。标记标签还可以体现为对消息类型占用空间大小的区分,或者综合考虑消息的重要程度和占用空间大小之后的优先顺序区分。
作为示例,本发明实施方式的丢包控制还可以包括对聊天群组部分在线人员客户端放弃发送消息。
作为示例,本发明实施例对部分在线人员客户端放弃发送消息的方式可以为:例如,将在线客户端分组,在预设的时间段内将产生的消息选择至少一个客户端组不发送;在线客户端的分组方式可以采用任意可实现规则;不接收消息的客户端组数量,可以根据带宽使用率的占用情况设定对应选择规则。例如,当带宽使用率足够高的时候,可按照预设的可放弃客户端组数量上限来选定客户端组。也可以对客户端按属性特征分组,使数据消息可以针对性的选择发送,不一一赘述。
作为示例,本发明实施方式还可以包括对聊天群组在线人员客户端按丢包概率放弃发送消息。
作为示例,本发明实施例的丢包概率可以为一个固定值,即当带宽使用率满足流控触发条件时,对客户端按预设的丢包概率放弃发送消息。进一步地,在客户端按属性特征分组的基础上,可以针对不同的分组特征一一对应设置不同值的丢包概率。在此基础上,还可以将设定的多个丢包概率在不同分组之间循环变换使用。
作为示例,本发明实施例所述丢包控制可以包括:根据带宽使用率的变化,逐步调整丢包概率。
作为示例,本发明实施例所述丢包概率基于带宽使用率的升高而逐步增加。例如,丢包概率随带宽使用率呈线性升高;或者丢包概率随带宽使用率升高而逐级累加。
作为示例,本发明实施例所述丢包概率基于带宽使用率的下降而逐步降低。该过程与丢包概率基于带宽使用率的升高而逐步增加的过程呈反方向变化,实现方式与之类似。
作为示例,本发明实施例所述丢包概率可以处于预定丢包初值与预定丢包阈值之间。预定丢包初值不宜设置过小,以免达不到控制流量增长的目的;同样,预定丢包阈值也不宜过大,以免使大部分客户端无法正常接收消息,影响到聊天群组的主体业务。
作为示例,本发明实施例所述丢包概率可以基于带宽使用率的流控触发条件而逐步调整。满足流控触发条件,是执行丢包控制的先决条件。为了达到更好的流控效果,可以通过设置流控触发条件的方式,使丢包概率的选择更合理。
作为示例,本发明实施例的一个相对简单的方式,可以只设置一个流控触发条件,带宽使用率达到或超过流控触发条件,即按相应的丢包概率进行流量调控。
作为示例,本发明实施例所述的流控触发条件可以包括:所述带宽使用率可以是以增加或者减少的方式达到或者越过流控触发阈值。也即,带宽使用率沿从高到低或者从低到高的方向分别触发流量控制时,会分别执行不同的流量控制策略。
作为示例,本发明实施例所述的流控触发阈值可以分段设置,使带宽使用率在不同的数值区间时,能够对应更有效的流控方案。例如,假设以带宽使用率在0.5以内时为额定安全值,可以使带宽使用率每增长0.1对应一个流控触发阈值,然后可以在不同的流控触发阈值之间,执行不同的丢包概率。
作为示例,本发明实施例所述的流控触发阈值可以包括低流控触发阈值和高流控触发阈值。设定这两个流控触发阈值将带宽使用率的状态分成了三小段,在未达到低流控触发阈值以前,不需要流控;带宽使用率介于二者之间时,可以认为是带宽使用率平稳变化的阶段,此时服务器并没有过载,之所以要在此阶段启动流量控制,是为了防止后续一旦产生大量的数据消息直接导致系统过载,此时的流控可以是一种预防手段,因此流控比例选择可以相对平缓;在带宽使用率超过高流控触发阈值时,表明系统即将处于过载的临界状态,此阶段,流控比例可以设置的相对大,使系统不至因突发的大流量导致瘫痪。
作为示例,本发明实施例所述的丢包概率基于带宽使用率的流控触发条件而逐步调整包括:以预定流控步长来调整所述丢包概率。即不是一次性达到最大的丢包概率或者回归到0丢包概率,而是一次以一定的概率(流控步长)逐步递增或者递减丢包概率。
作为示例,本发明实施例所述的丢包概率可以是预定流控步长依次递加或依次递减的结果。流控步长依次递加或递减的次数,即为流控步数。以丢包概率为百分比的表达形式为例,此时所有包均丢掉时的丢包概率为1即100%,因此流控步长(例如百分点数n%)与流控步数(m)的乘积n*m%需要不超过100%。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率包括:在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0。当带宽使用率在一定的时间段内都处于低流控触发阈值以下,表明网络流量很稳定,服务器的工作资源足以应付产生的广播包,此时不需要介入流量控制,因此使流控步数为0,即丢包概率为0。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1。带宽使用率处于低流控触发阈值以上,并且相邻的前一个状态并未启动流量控制时,需要启动流量控制,此时,使流控步数加1,即按预定流控步长启动了流量控制。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值。在已经启动了流量控制,并使带宽使用率控制在低流控触发阈值和高流控触发阈值之间时,认为带宽使用率达到了一个相对平衡,此时,可不对丢包概率进行调整。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1。当带宽使用率处于高流控触发阈值以上,表明网络流量正在快速的增长,不论带宽使用率是由哪种状态过渡到当前状态,为使系统稳定,都要加大流量控制。如果是当前已启动了流控控制的情况,表明当前的丢包概率过于柔和,需要继续提高丢包概率。
作为示例,本发明实施例所述以预定流控步长来调整所述丢包概率还包括:在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1。这种情况表明当前是由于采用了流量控制手段才使带宽使用率处于低流控触发阈值以下,由于带宽使用率已处于安全范围内,因此可以调低流控步数,直至为0;如果由于调低流控步数,又造成带宽使用率的升高,则继续按照带宽使用率过渡到的区间的相应调整规则调整丢包概率。
作为示例,结合图3所示,本发明实施例可以将带宽使用率的动态变化过程以低流控触发阈值和高流控触发阈值为界线设定为四种工作状态,用以说明在结合流量控制手段后,带宽使用率是如何在四种工作状态之间变化的。
首先说明一下,聊天群组的流量控制事件,发生在聊天群组长连接服务器对聊天群组中的消息进行分发广播时。对聊天群组广播包进行拆包时,首先获取最新监测到的带宽使用率netUsage,并基于低流控触发阈值(flowLowThreshold)和高流控触发阈值(flowHighThreshold)对当前的带宽使用率所处工作状态进行判断:
可以将带宽使用率小于低流控触发阈值,但流控步数为0的工作状态定义为持续型流控未达态;将带宽使用率达到低流控触发阈值但未达到高流控触发阈值之间的工作状态定义为流控稳定态;将带宽使用率达到高流控触发阈值以上的状态定义为流控增长态;再将带宽使用率小于低流控触发阈值,但流控步数大于0的工作状态定义为短暂型流控未达态。
结合图3所示,来说明带宽使用率在四种工作状态下的自然切换:
以低流控触发阈值作为流控触发的临界点。假设在初始阶段,带宽使用率处于持续型流控未达态,此时不会触发流控,所有的聊天群组广播消息都将按计划下发;随着网络流量的增长,带宽使用率可能过渡到流控稳定态或流控增长态。
若带宽使用率进入到流控稳定态,会触发流控,此时,流控步数加1。随着丢包控制的进行,带宽使用率可能会过渡到流控增长态或短暂型流控未达态,也可能维持在流控稳定态不变。对于维持流控稳定态的情形,可以认为此时的丢包概率恰到好处,系统达到了相对平稳,保持原丢包概率运行。
若带宽使用率由持续型流控未达态进入到流控增长态,表示业务流量大幅飙升,需要启动流量控制,同样使流控步数加1;若带宽使用率由流控稳定态进入到流控增长态,则表示当前的丢包概率不足以使系统稳定下来,因此需要继续提高丢包概率,继续累加流控步数。接下来,带宽使用率又可能返回到流控稳定态或短暂型流控未达态。
带宽使用率从任意状态过渡到短暂型流控未达态时,均表示在流控的调整下,带宽使用率已经回归到低流控触发阈值以下,但是因为此时流控步数大于0,因此,可降低流控步数,直至为0,进入持续型流控未达态,从而可以认为完成一个带宽使用率的循环。但是在流控步数减小的过程中,带宽使用率还有可能再次回到流控稳定态或流控增长态,继续按相应的规则调控即可。
需要说明的是,对于由短暂型流控未达态或流控增长态过渡到流控稳定态的状况,均认为此时的丢包概率恰到好处,系统达到了相对平稳,因此保持原丢包概率运行即可。
作为示例,本发明实施例在聊天群组业务流量飙升的状态下,可以设置应急控制策略,来避免网络瘫痪故障的发生。例如所述流控触发阈值还可以包括临界状态阈值,为当前的带宽使用率状况预警。此处的临界状态阈值可以大于高流控触发阈值。
作为示例,本发明实施例在带宽使用率达到或者超过临界状态阈值的情况下,可以按照预设最大丢包概率进行丢包控制,以使带宽使用率得以平滑切换到安全状态。
作为示例,本发明实施例所述丢包概率还根据消息类型加以调整。可以配合丢包概率的取值在0到1之间的百分数表示方法,对不同消息类型赋以0至1之间的相关值,从而对应当前丢包概率基于消息类型分级降级。以赋值的两个端点为例,对那些无关紧要的消息,可以被赋值1,表示可以完全按照丢包概率的现有比例进行丢包控制,不做降级;而对于重要程度比较高的消息,可以赋予相对趋近于0的值,表示在丢包概率现有比例的基础上要继续缩小到很小的比例进行丢包控制,以降低使客户敏感到的可能性。对于被赋值为0的消息类型,可以用于表示用户对此类消息足够敏感,此类消息不可做丢包处理;对于此种消息类型,也可以单独作为是否进行流量控制的附加判定条件。
作为示例,本发明实施例可以再设置一个与消息类型相关的降级因子,使每一类消息匹配一个相应的降级因子。计算丢包概率时,可以对当前丢包概率乘以当前消息类型的降级因子,将计算结果作为广播包的最终丢包概率。该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增,也就是说,降级因子越小,需要消息被丢弃的比例越小。
作为示例,本发明实施例所述降级因子可以基于消息类型重要程度赋值。
作为示例,本发明实施例以以下六种消息的排序为例:进出聊天群组消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息;若基于消息类型的重要程度,则可以按上述顺序从大到小对相应降级因子赋值。
作为示例,本发明实施例所述降级因子还可以基于消息类型占用空间大小赋值。
作为示例,本发明实施例以以下五种消息的排序为例:图片消息、语音消息、进出聊天群组消息、成员身份变更消息及文字消息;若基于消息类型的占用空间量,则可以按上述顺序从大到小对相应降级因子赋值。
作为示例,本发明实施例所述降级因子还可以基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
作为示例,本发明实施例以以下五种消息的又一次排序为例:进出聊天群组消息、成员身份变更消息、图片消息、语音消息及文字消息;若基于消息类型重要程度及消息类型占用空间大小的综合考量,可以按上述顺序从大到小对相应降级因子赋值。
根据以上特点,通过表1给出消息类型与降级因子对应匹配的示例:
表1
消息类型 | 降级因子 |
1 | 1.0 |
2 | 0.9 |
…… | …… |
n | factor_n |
表1中,消息类型用序列号1,2,……,n按用户敏感度由弱到强排序,n为正整数。对应于用户敏感度最弱的消息类型1,其降级因子可以赋值最大,例如1;对应于用户敏感度最强的消息类型n,可以相适应的赋值为0或趋向于0的与消息类型匹配的值。
流量控制单元420还可以用于在聊天群组在线人数满足人数触发条件时,才启动对聊天群组的广播包发送量进行控制。
由于在线用户人数的变化也是双向的,因此,作为示例,本发明实施例所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。即,当用户人数由少到多达到或超过在线人数触发阈值时,可以启动流量控制;当用户人数由多到少越过在线人数触发阈值时,可以停止流量控制。
作为示例,本发明实施例所述丢包概率还可以根据在线人数加以调整。按照带宽使用率与在线人数的正相关关系,以在线人数多,对应丢包概率相对大为原则确定最终的丢包概率。
作为示例,本发明实施例所述丢包概率可以根据在线人数分级调整。即可以在人数触发阈值之上,将在线人数由少到多分段,丢包概率对应于在线人数所处分段相应调整。
作为示例,本发明实施例所述丢包概率可以根据在线人数所处数值区间,按与数值区间相应的预设比例调整。可以将在线人数达到的每个数值区间,分别预设相应的丢包概率调整比例。
作为示例,本发明实施例所述丢包概率根据在线人数的逐渐增多而逐步增加。例如,在人数触发阈值之上,可以使丢包概率的调整比例与在线人数成简单的正比例关系;也可以设置调整比例的步长,使最终的调整比例是步长累加的结果。
对于多个聊天群组对应于一台服务器的情况,每个聊天群组的丢包概率还与本身的在线人数及其他聊天群组的在线人数相关。
作为示例,本发明实施例对于归属同一服务器的至少两个聊天群组,按照每个聊天群组人数的相对比例调整丢包概率。此处可以自定义丢包概率根据聊天群组人数的相对比例的调节规则。例如,两个聊天群组,一个在线人数为100,一个在线人数为200;可以首先设定一个人数调节基值例如0.3,则第一个聊天群组的丢包概率调节值可以为0.3*(100/n),第二个聊天群组的丢包概率调节值可以为0.3*(200/n)。其中n为预先设定的、或者可以人工调节的一个基准值,例如500。
作为示例,本发明实施例所述聊天群组人数的相对比例可以包括每个聊天群组的在线人数与在线人数最多聊天群组人数的比值。在所述相对比例的基础上可以自定义一个调节基准值。
举个例子,假设归属于同一服务器的三个在线人数最多的聊天群组分别为A,B,C,在线人数分别为1000,500,300,则在线人数最多的聊天群组人数为1000,按最简单的比例对丢包概率进行调整,则聊天群组A的最终丢包概率为:原丢包概率*(1000/1000),即保持原丢包概率不变;聊天群组B的最终丢包概率为:原丢包概率*(500/1000),由于人数的关系,聊天群组B最终丢包概率为原丢包概率的一半;聊天群组C的最终丢包概率为:原丢包概率*(300/1000),即为原丢包概率的十分之三。此例中,为了在使用中使丢包概率的调整比例更合理,可以选择设置一个0至1之间的调节基准值,在此基础上再乘以人数比值。
作为示例,本发明实施例所述聊天群组人数的相对比例还可以包括每个聊天群组的在线人数与所有聊天群组在线人数总和的比值。将所有聊天群组在线人数作为一个整体,获得每个聊天群组的丢包概率调节比例,则每个聊天群组人数的总体占比更直观,这种情况下按单个聊天群组在线人数在总体中的比例进行丢包概率的调整,调节比例相对来说更容易合理地确定。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图6描述本发明示例性实施方式的计算机系统/服务器60。图6显示的计算机系统/服务器60仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统/服务器60以通用计算设备的形式表现。计算机系统/服务器60的组件可以包括但不限于:一个或者多个处理器或者处理单元601,系统存储器602,连接不同系统组件(包括系统存储器602和处理单元601)的总线603。
计算机系统/服务器60典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器60访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器602可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)6021和/或高速缓存存储器6022。计算机系统/服务器60可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM6023可以用于读写不可移动的、非易失性磁介质(图6中未显示,通常称为“硬盘驱动器”)。尽管未在图6中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线603相连。系统存储器602中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块6024的程序/实用工具6025,可以存储在例如系统存储器602中,且这样的程序模块6024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块6024通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器60也可以与一个或多个外部设备604(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口605进行。并且,计算机系统/服务器60还可以通过网络适配器606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器606通过总线603与计算机系统/服务器60的其它模块(如处理单元601等)通信。应当明白,尽管图6中未示出,可以结合计算机系统/服务器60使用其它硬件和/或软件模块。
处理单元601通过运行存储在系统存储器602中的程序,从而执行各种功能应用以及数据处理,例如,执行并实现聊天群组网络流量控制方法中的各步骤;例如,获取聊天群组服务器的带宽使用率;以及在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。
应当注意,尽管在上文详细描述中提及了聊天群组网络流量控制装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
综上,在根据本公开的实施例中,本公开提供了如下方案,但不限于此:
方案1.一种聊天群组网络流量控制方法,包括:
获取聊天群组服务器的带宽使用率;以及
在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制,从而实现对网络流量的控制。
方案2.根据方案1所述的聊天群组网络流量控制方法,
所述带宽使用率根据监测的聊天群组服务器网络流量计算获得。
方案3.根据方案1或2所述的聊天群组网络流量控制方法,
所述对聊天群组的广播包发送量进行控制包括对聊天群组的广播包进行丢包控制。
方案4.根据方案3所述的聊天群组网络流量控制方法,
所述丢包控制包括对聊天群组部分在线人员客户端放弃发送消息。
方案5.根据方案3或4所述的聊天群组网络流量控制方法,
所述丢包控制包括对聊天群组在线人员客户端按丢包概率放弃发送消息。
方案6.根据方案5所述的聊天群组网络流量控制方法,
所述丢包控制包括:
根据带宽使用率的变化,逐步调整丢包概率。
方案7.根据方案6所述的聊天群组网络流量控制方法,
所述丢包概率基于带宽使用率的升高而逐步增加。
方案8.根据方案6或7所述的聊天群组网络流量控制方法,
所述丢包概率基于带宽使用率的下降而逐步降低。
方案9.根据方案5~8中任一项所述的聊天群组网络流量控制方法,
所述丢包概率处于预定丢包初值与预定丢包阈值之间。
方案10.根据方案5~9中任一项所述的聊天群组网络流量控制方法,
所述丢包概率基于带宽使用率的流控触发条件而逐步调整。
方案11.根据方案10所述的聊天群组网络流量控制方法,
所述流控触发条件包括:所述带宽使用率以增加或者减少的方式达到或者越过流控触发阈值。
方案12.根据方案11所述的聊天群组网络流量控制方法,
所述流控触发阈值包括低流控触发阈值和高流控触发阈值。
方案13.根据方案10~12中任一项所述的聊天群组网络流量控制方法,
所述丢包概率基于带宽使用率的流控触发条件而逐步调整包括:
以预定流控步长来调整所述丢包概率。
方案14.根据方案13所述的聊天群组网络流量控制方法,
所述以预定流控步长来调整所述丢包概率包括:
在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0。
方案15.根据方案14所述的聊天群组网络流量控制方法,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1。
方案16.根据方案15所述的聊天群组网络流量控制方法,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值。
方案17.根据方案14~16所述的聊天群组网络流量控制方法,
所述以预定流控步长来调整所述丢包概率还包括:
在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1。
方案18.根据方案15~17中任一项所述的聊天群组网络流量控制方法,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1。
方案19.根据方案12~18中任一项所述的聊天群组网络流量控制方法,
所述流控触发阈值还包括临界状态阈值。
方案20.根据方案19所述的聊天群组网络流量控制方法,
在带宽使用率达到或者超过临界状态阈值的情况下,按照预设最大丢包概率进行丢包控制。
方案21.根据方案6~20中任一项所述的聊天群组网络流量控制方法,
所述丢包概率还根据消息类型加以调整。
方案22.根据方案21所述的聊天群组网络流量控制方法,
对丢包概率乘以一个降级因子,该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增。
方案23.根据方案22所述的聊天群组网络流量控制方法,
所述降级因子基于消息类型重要程度赋值。
方案24.根据方案23所述的聊天群组网络流量控制方法,
按以下顺序从大到小对相应降级因子赋值:
进出聊天群组消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息。
方案25.根据方案22所述的聊天群组网络流量控制方法,
所述降级因子基于消息类型占用空间大小赋值。
方案26.根据方案25所述的聊天群组网络流量控制方法,
按以下顺序从大到小对相应降级因子赋值:
图片消息、语音消息、进出聊天群组消息、成员身份变更消息及文字消息。
方案27.根据方案22所述的聊天群组网络流量控制方法,
所述降级因子基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
方案28.根据方案27所述的聊天群组网络流量控制方法,
按以下顺序从大到小对相应降级因子赋值:
进出聊天群组消息、成员身份变更消息、图片消息、语音消息及文字消息。
方案29.根据方案1~28中任一项所述的聊天群组网络流量控制方法,还包括,
在聊天群组在线人数满足人数触发条件时,对聊天群组的广播包发送量进行控制。
方案30.根据方案29所述的聊天群组网络流量控制方法,
所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。
方案31.根据方案6~30中任一项所述的聊天群组网络流量控制方法,
所述丢包概率还根据在线人数加以调整。
方案32.根据方案31所述的聊天群组网络流量控制方法,
所述丢包概率根据在线人数分级调整。
方案33.根据方案32所述的聊天群组网络流量控制方法,
所述丢包概率根据在线人数所处数值区间,按与数值区间相应的预设比例调整。
方案34.根据方案31所述的聊天群组网络流量控制方法,
所述丢包概率根据在线人数的逐渐增多而逐步增加。
方案35.根据方案6~34中任一项所述的聊天群组网络流量控制方法,
对于归属同一服务器的至少两个聊天群组,按照每个聊天群组人数的相对比例调整丢包概率。
方案36.根据方案35所述的聊天群组网络流量控制方法,
聊天群组人数的相对比例包括每个聊天群组的在线人数与在线人数最多聊天群组人数的比值。
方案37.根据方案35所述的聊天群组网络流量控制方法,
聊天群组人数的相对比例包括每个聊天群组的在线人数与所有聊天群组在线人数总和的比值。
方案38.根据方案1~37中任一项所述的聊天群组网络流量控制方法,
所述聊天群组包括即时通信群组或者聊天室。
方案39.一种存储有程序的存储介质,所述程序被处理器执行时实现根据方案1~38中任一项所述方法的步骤。
方案40.一种聊天群组网络流量控制装置,包括:
流量监测单元,用于获取聊天群组服务器的带宽使用率;
流量控制单元,包括用于在所述带宽使用率满足流控触发条件时,对聊天群组的广播包发送量进行控制。
方案41.根据方案40所述的聊天群组网络流量控制装置,所述流量监测单元根据监测的聊天群组服务器网络流量计算获得所述带宽使用率。
方案42.根据方案40或41所述的聊天群组网络流量控制装置,所述流量控制单元对聊天群组的广播包进行丢包控制。
方案43.根据方案42所述的聊天群组网络流量控制装置,
所述丢包控制包括对聊天群组部分在线人员客户端放弃发送消息。
方案44.根据方案42或43所述的聊天群组网络流量控制装置,
所述丢包控制包括对聊天群组在线人员客户端按丢包概率放弃发送消息。
方案45.根据方案44所述的聊天群组网络流量控制装置,所述丢包控制包括根据带宽使用率的变化,逐步调整丢包概率。
方案46.根据方案45所述的聊天群组网络流量控制装置,所述丢包概率基于带宽使用率的升高而逐步增加。
方案47.根据方案45或46所述的聊天群组网络流量控制装置,所述丢包概率基于带宽使用率的下降而逐步降低。
方案48.根据方案44~47中任一项所述的聊天群组网络流量控制装置,
所述丢包概率处于预定丢包初值与预定丢包阈值之间。
方案49.根据方案44~48中任一项所述的聊天群组网络流量控制装置,所述丢包概率基于带宽使用率的流控触发条件而逐步调整。
方案50.根据方案49所述的聊天群组网络流量控制装置,
所述流控触发条件包括:所述带宽使用率以增加或者减少的方式达到或者越过流控触发阈值。
方案51.根据方案50所述的聊天群组网络流量控制装置,
所述流控触发阈值包括低流控触发阈值和高流控触发阈值。
方案52.根据方案49~51中任一项所述的聊天群组网络流量控制装置,
所述丢包概率基于带宽使用率的流控触发条件而逐步调整包括:
以预定流控步长来调整所述丢包概率。
方案53.根据方案52所述的聊天群组网络流量控制装置,
所述以预定流控步长来调整所述丢包概率包括:
在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0。
方案54.根据方案53所述的聊天群组网络流量控制装置,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1。
方案55.根据方案54所述的聊天群组网络流量控制装置,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值。
方案56.根据方案53~55所述的聊天群组网络流量控制装置,
所述以预定流控步长来调整所述丢包概率还包括:
在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1。
方案57.根据方案54~56中任一项所述的聊天群组网络流量控制装置,
所述以预定流控步长来调整所述丢包概率还包括:
在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1。
方案58.根据方案51~57中任一项所述的聊天群组网络流量控制装置,
所述流控触发阈值还包括临界状态阈值。
方案59.根据方案58所述的聊天群组网络流量控制装置,
在带宽使用率达到或者超过临界状态阈值的情况下,按照预设最大丢包概率进行丢包控制。
方案60.根据方案45~59中任一项所述的聊天群组网络流量控制装置,
所述丢包概率还根据消息类型加以调整。
方案61.根据方案60所述的聊天群组网络流量控制装置,
对丢包概率乘以一个降级因子,该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增。
方案62.根据方案61所述的聊天群组网络流量控制装置,
所述降级因子基于消息类型重要程度赋值。
方案63.根据方案62所述的聊天群组网络流量控制装置,
按以下顺序从大到小对相应降级因子赋值:
进出聊天群组消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息。
方案64.根据方案61所述的聊天群组网络流量控制装置,
所述降级因子基于消息类型占用空间大小赋值。
方案65.根据方案64所述的聊天群组网络流量控制装置,
按以下顺序从大到小对相应降级因子赋值:
图片消息、语音消息、进出聊天群组消息、成员身份变更消息及文字消息。
方案66.根据方案61所述的聊天群组网络流量控制装置,
所述降级因子基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
方案67.根据方案66所述的聊天群组网络流量控制装置,
按以下顺序从大到小对相应降级因子赋值:
进出聊天群组消息、成员身份变更消息、图片消息、语音消息及文字消息。
方案68.根据方案40~67中任一项所述的聊天群组网络流量控制装置,
所述流量控制单元,还包括用于在聊天群组在线人数满足人数触发条件时,对聊天群组的广播包发送量进行控制。
方案69.根据方案68所述的聊天群组网络流量控制装置,
所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。
方案70.根据方案45~69中任一项所述的聊天群组网络流量控制装置,
所述丢包概率还根据在线人数加以调整。
方案71.根据方案70所述的聊天群组网络流量控制装置,
所述丢包概率根据在线人数分级调整。
方案72.根据方案71所述的聊天群组网络流量控制装置,
所述丢包概率根据在线人数所处数值区间,按与数值区间相应的预设比例调整。
方案73.根据方案70所述的聊天群组网络流量控制装置,
所述丢包概率根据在线人数的逐渐增多而逐步增加。
方案74.根据方案45~73中任一项所述的聊天群组网络流量控制装置,
对于归属同一服务器的至少两个聊天群组,按照每个聊天群组人数的相对比例调整丢包概率。
方案75.根据方案74所述的聊天群组网络流量控制装置,
聊天群组人数的相对比例包括每个聊天群组的在线人数与在线人数最多聊天群组人数的比值。
方案76.根据方案74所述的聊天群组网络流量控制装置,
聊天群组人数的相对比例包括每个聊天群组的在线人数与所有聊天群组在线人数总和的比值。
方案77.根据方案40~76中任一项所述的聊天群组网络流量控制装置,
所述聊天群组包括即时通信群组或者聊天室。
方案78.一种计算设备,包括根据方案39所述的存储介质。
Claims (48)
1.一种聊天室网络流量控制方法,其特征在于:包括:
获取聊天室服务器的带宽使用率;以及
在所述带宽使用率满足流控触发条件时,对聊天室的广播包发送量进行丢包控制,从而实现对网络流量的控制,所述丢包控制包括对聊天室在线人员客户端按丢包概率放弃发送消息,其中所述丢包概率基于带宽使用率的流控触发条件而逐步调整;
所述丢包概率还基于消息类型而逐步调整;
所述丢包概率还基于消息类型而逐步调整包括对丢包概率乘以一个降级因子,该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增;
所述丢包概率基于带宽使用率的流控触发条件而逐步调整包括以预定流控步长来调整所述丢包概率;
所述以预定流控步长来调整所述丢包概率包括以下步骤:
在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0;
在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1;
在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值;
在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1;
在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1;
其中所述流控触发条件为所述带宽使用率以增加或者减少的方式达到或者越过流控触发阈值,所述流控触发阈值包括低流控触发阈值和高流控触发阈值,所述流控步长与所述流控步数的乘积不超过100%。
2.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述带宽使用率根据监测的聊天室服务器网络流量计算获得。
3.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包控制包括对聊天室部分在线人员客户端放弃发送消息。
4.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率基于带宽使用率的升高而逐步增加。
5.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率基于带宽使用率的下降而逐步降低。
6.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率处于预定丢包初值与预定丢包阈值之间。
7.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述流控触发阈值还包括临界状态阈值。
8.根据权利要求7所述的聊天室网络流量控制方法,其特征在于:
在带宽使用率达到或者超过临界状态阈值的情况下,按照预设最大丢包概率进行丢包控制。
9.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述降级因子基于消息类型重要程度赋值。
10.根据权利要求9所述的聊天室网络流量控制方法,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
进出聊天室消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息。
11.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述降级因子基于消息类型占用空间大小赋值。
12.根据权利要求11所述的聊天室网络流量控制方法,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
图片消息、语音消息、进出聊天室消息、成员身份变更消息及文字消息。
13.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述降级因子基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
14.根据权利要求13所述的聊天室网络流量控制方法,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
进出聊天室消息、成员身份变更消息、图片消息、语音消息及文字消息。
15.根据权利要求1或2所述的聊天室网络流量控制方法,其特征在于:还包括,
在聊天室在线人数满足人数触发条件时,对聊天室的广播包发送量进行控制。
16.根据权利要求15所述的聊天室网络流量控制方法,其特征在于:
所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。
17.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率根据在线人数分级调整。
18.根据权利要求17所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率根据在线人数所处数值区间,按与数值区间相应的预设比例调整。
19.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
所述丢包概率根据在线人数的逐渐增多而逐步增加。
20.根据权利要求1所述的聊天室网络流量控制方法,其特征在于:
对于归属同一服务器的至少两个聊天室,按照每个聊天室人数的相对比例调整丢包概率。
21.根据权利要求20所述的聊天室网络流量控制方法,其特征在于:
聊天室人数的相对比例包括每个聊天室的在线人数与在线人数最多聊天室人数的比值。
22.根据权利要求20所述的聊天室网络流量控制方法,其特征在于:
聊天室人数的相对比例包括每个聊天室的在线人数与所有聊天室在线人数总和的比值。
23.根据权利要求1或2所述的聊天室网络流量控制方法,其特征在于:
聊天群组包括即时通信群组或者聊天室。
24.一种存储有程序的存储介质,所述程序被处理器执行时实现根据权利要求1~23中任一项所述方法的步骤。
25.一种聊天室网络流量控制装置,其特征在于:包括:
流量监测单元,用于获取聊天室服务器的带宽使用率;
流量控制单元,包括用于在所述带宽使用率满足流控触发条件时,对聊天室的广播包发送量进行丢包控制,所述丢包控制包括对聊天室在线人员客户端按丢包概率放弃发送消息,其中所述丢包概率基于带宽使用率的流控触发条件而逐步调整;
所述丢包概率还基于消息类型而逐步调整;
所述丢包概率还基于消息类型而逐步调整包括对丢包概率乘以一个降级因子,该降级因子按消息类型从1至0相应赋值,从1至0表示用户对消息的敏感度为递增;
所述丢包概率基于带宽使用率的流控触发条件而逐步调整包括以预定流控步长来调整所述丢包概率;
所述以预定流控步长来调整所述丢包概率包括以下步骤:
在所述带宽使用率超过预定长度的时间未达到低流控触发阈值的情况下,使流控步数为0;
在流控步数为0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数加1;
在流控步数大于0,并且带宽使用率达到或者超过低流控触发阈值但是未达到高流控触发阈值的情况下,使流控步数保持原值;
在所述带宽使用率达到或者超过高流控触发阈值的情况下,使流控步数加1;
在流控步数大于0,并且带宽使用率未达到低流控触发阈值的情况下,使流控步数减1;
其中所述流控触发条件为所述带宽使用率以增加或者减少的方式达到或者越过流控触发阈值,所述流控触发阈值包括低流控触发阈值和高流控触发阈值,所述流控步长与所述流控步数的乘积不超过100%。
26.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:所述流量监测单元根据监测的聊天室服务器网络流量计算获得所述带宽使用率。
27.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述丢包控制包括对聊天室部分在线人员客户端放弃发送消息。
28.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:所述丢包概率基于带宽使用率的升高而逐步增加。
29.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:所述丢包概率基于带宽使用率的下降而逐步降低。
30.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述丢包概率处于预定丢包初值与预定丢包阈值之间。
31.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述流控触发阈值还包括临界状态阈值。
32.根据权利要求31所述的聊天室网络流量控制装置,其特征在于:
在带宽使用率达到或者超过临界状态阈值的情况下,按照预设最大丢包概率进行丢包控制。
33.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述降级因子基于消息类型重要程度赋值。
34.根据权利要求33所述的聊天室网络流量控制装置,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
进出聊天室消息、成员身份变更消息、表情消息、语音消息、图片消息及文字消息。
35.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述降级因子基于消息类型占用空间大小赋值。
36.根据权利要求35所述的聊天室网络流量控制装置,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
图片消息、语音消息、进出聊天室消息、成员身份变更消息及文字消息。
37.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述降级因子基于消息类型重要程度及消息类型占用空间大小的综合考量赋值。
38.根据权利要求37所述的聊天室网络流量控制装置,其特征在于:
按以下顺序从大到小对相应降级因子赋值:
进出聊天室消息、成员身份变更消息、图片消息、语音消息及文字消息。
39.根据权利要求25或26所述的聊天室网络流量控制装置,其特征在于:
所述流量控制单元,还包括用于在聊天室在线人数满足人数触发条件时,对聊天室的广播包发送量进行控制。
40.根据权利要求39所述的聊天室网络流量控制装置,其特征在于:
所述人数触发条件包括:基于在线人数增加或者减少而达到或者越过在线人数触发阈值。
41.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述丢包概率根据在线人数分级调整。
42.根据权利要求41所述的聊天室网络流量控制装置,其特征在于:
所述丢包概率根据在线人数所处数值区间,按与数值区间相应的预设比例调整。
43.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
所述丢包概率根据在线人数的逐渐增多而逐步增加。
44.根据权利要求25所述的聊天室网络流量控制装置,其特征在于:
对于归属同一服务器的至少两个聊天室,按照每个聊天室人数的相对比例调整丢包概率。
45.根据权利要求44所述的聊天室网络流量控制装置,其特征在于:
聊天室人数的相对比例包括每个聊天室的在线人数与在线人数最多聊天室人数的比值。
46.根据权利要求44所述的聊天室网络流量控制装置,其特征在于:
聊天室人数的相对比例包括每个聊天室的在线人数与所有聊天室在线人数总和的比值。
47.根据权利要求25或26所述的聊天室网络流量控制装置,其特征在于:
聊天群组包括即时通信群组或者聊天室。
48.一种计算设备,包括根据权利要求24所述的存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810024736.0A CN108243112B (zh) | 2018-01-11 | 2018-01-11 | 聊天群组网络流量控制方法及装置、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810024736.0A CN108243112B (zh) | 2018-01-11 | 2018-01-11 | 聊天群组网络流量控制方法及装置、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108243112A CN108243112A (zh) | 2018-07-03 |
CN108243112B true CN108243112B (zh) | 2022-07-19 |
Family
ID=62699464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810024736.0A Active CN108243112B (zh) | 2018-01-11 | 2018-01-11 | 聊天群组网络流量控制方法及装置、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108243112B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941554A (zh) * | 2021-09-26 | 2023-04-07 | 中车株洲电力机车研究所有限公司 | 以太网流量检测处理方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6690645B1 (en) * | 1999-12-06 | 2004-02-10 | Nortel Networks Limited | Method and apparatus for active queue management based on desired queue occupancy |
CN101079816A (zh) * | 2007-07-06 | 2007-11-28 | 北京航空航天大学 | 一种基于网络状态参数估计的快速控制方法 |
CN102223675A (zh) * | 2011-06-08 | 2011-10-19 | 大唐移动通信设备有限公司 | 拥塞告警及处理方法、系统和设备 |
CN102316025A (zh) * | 2011-07-27 | 2012-01-11 | 中国科学院计算机网络信息中心 | 网络流量控制方法、装置、系统及服务器 |
CN102752192A (zh) * | 2012-04-27 | 2012-10-24 | 浙江工商大学 | 基于SCTP的ForCES传输映射层的带宽分配方法 |
CN107040961A (zh) * | 2017-06-15 | 2017-08-11 | 吉林大学 | 一种无线传感器网络拥塞控制方法 |
CN107070802A (zh) * | 2016-12-21 | 2017-08-18 | 吉林大学 | 基于pid控制器的无线传感器网络拥塞控制技术 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6819673B1 (en) * | 1999-11-25 | 2004-11-16 | International Business Machines Corporation | Method and system for establishing SNA sessions over wide area networks |
US20050083440A1 (en) * | 2002-12-27 | 2005-04-21 | Kang Myung J. | Broadcasting service providing system using the point to multi-point connection in ATM network and method therof |
US7697519B2 (en) * | 2006-10-31 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Packet processing |
CN101707789B (zh) * | 2009-11-30 | 2013-03-27 | 中兴通讯股份有限公司 | 流量控制方法及系统 |
US9338019B2 (en) * | 2013-01-23 | 2016-05-10 | Nexenta Systems, Inc. | Scalable transport method for multicast replication |
CN104104973B (zh) * | 2014-06-12 | 2017-07-07 | 中山大学 | 一种应用于云媒体系统的群组带宽管理优化方法 |
CN105491136B (zh) * | 2015-12-11 | 2019-04-26 | 网易(杭州)网络有限公司 | 消息发送方法和装置 |
CN105656763B (zh) * | 2016-02-03 | 2018-09-14 | 浙江翼信科技有限公司 | 一种消息推送方法和装置 |
CN106161219B (zh) * | 2016-09-29 | 2019-04-09 | 广州华多网络科技有限公司 | 消息处理方法及装置 |
CN107147504A (zh) * | 2017-03-31 | 2017-09-08 | 北京奇艺世纪科技有限公司 | 一种消息推送方法及装置 |
CN107395767B (zh) * | 2017-08-31 | 2021-02-05 | 北京奇元科技有限公司 | 基于长连接的消息推送系统及方法 |
-
2018
- 2018-01-11 CN CN201810024736.0A patent/CN108243112B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6690645B1 (en) * | 1999-12-06 | 2004-02-10 | Nortel Networks Limited | Method and apparatus for active queue management based on desired queue occupancy |
CN101079816A (zh) * | 2007-07-06 | 2007-11-28 | 北京航空航天大学 | 一种基于网络状态参数估计的快速控制方法 |
CN102223675A (zh) * | 2011-06-08 | 2011-10-19 | 大唐移动通信设备有限公司 | 拥塞告警及处理方法、系统和设备 |
CN102316025A (zh) * | 2011-07-27 | 2012-01-11 | 中国科学院计算机网络信息中心 | 网络流量控制方法、装置、系统及服务器 |
CN102752192A (zh) * | 2012-04-27 | 2012-10-24 | 浙江工商大学 | 基于SCTP的ForCES传输映射层的带宽分配方法 |
CN107070802A (zh) * | 2016-12-21 | 2017-08-18 | 吉林大学 | 基于pid控制器的无线传感器网络拥塞控制技术 |
CN107040961A (zh) * | 2017-06-15 | 2017-08-11 | 吉林大学 | 一种无线传感器网络拥塞控制方法 |
Non-Patent Citations (2)
Title |
---|
IEEE 802.15.4 网络动态自适应参数调整算法;蒋文贤,蔡惠娟;《信息与控制》;20141231;569-577 * |
基于分组优先级的队列管理与自适应丢包机制;杨庆祥.李安伏;《电力自动化设备》;20060430;18-21 * |
Also Published As
Publication number | Publication date |
---|---|
CN108243112A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080201383A1 (en) | System for managing data collection processes | |
US20120195324A1 (en) | Sharing bandwidth among multiple users of network applications | |
CN108449232B (zh) | 一种网速自适应控制的方法 | |
Choudhury et al. | Long-tail buffer-content distributions in broadband networks | |
CN114268537B (zh) | 面向确定性网络的网络切片生成及动态配置系统及方法 | |
CN105847377A (zh) | 集群网络的请求拥塞过载处理方法及系统 | |
CN109039953B (zh) | 带宽调度方法及装置 | |
CN115103450B (zh) | 一种多业务时隙分配方法和设备 | |
Bang et al. | Design and implementation of a load shedding engine for solving starvation problems in Apache Kafka | |
CN111343097A (zh) | 链路负载均衡的方法、装置、电子设备及存储介质 | |
CN108243112B (zh) | 聊天群组网络流量控制方法及装置、存储介质及计算设备 | |
CN106453114B (zh) | 流量分配方法及装置 | |
CN114826924A (zh) | 用于带宽分配的方法及装置 | |
US8583819B2 (en) | System and method for controlling server usage in peer-to-peer (P2P) based streaming service | |
CN110347518B (zh) | 消息处理方法及装置 | |
CN114338532B (zh) | 光网络资源预估方法及装置、存储介质、终端设备 | |
CN116319565A (zh) | 基于在网计算的负载均衡系统、方法、设备及存储介质 | |
CN114143263B (zh) | 一种对用户请求进行限流的方法、设备及介质 | |
CN112055382B (zh) | 一种基于精细化区分的业务接入方法 | |
CN114554496A (zh) | 基于机器学习的5g网络切片资源分配方法 | |
Zhang et al. | A new mechanism for supporting differentiated services in cluster-based network servers | |
CN112714037A (zh) | 一种线上服务质量的保障性能评估方法、装置及设备 | |
CN112291166A (zh) | 一种丢弃报文的处理方法、系统及相关装置 | |
US9960957B2 (en) | Methods for prioritizing failover of logical interfaces (LIFs) during a node outage and devices thereof | |
CN115037696B (zh) | 数据传输方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210924 Address after: 310000 Room 408, building 3, No. 399, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Netease Zhiqi Technology Co.,Ltd. Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: HANGZHOU LANGHE TECHNOLOGY Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |