CN115378848A - 一种基于排序算法的流量统计方法及系统 - Google Patents
一种基于排序算法的流量统计方法及系统 Download PDFInfo
- Publication number
- CN115378848A CN115378848A CN202210978673.9A CN202210978673A CN115378848A CN 115378848 A CN115378848 A CN 115378848A CN 202210978673 A CN202210978673 A CN 202210978673A CN 115378848 A CN115378848 A CN 115378848A
- Authority
- CN
- China
- Prior art keywords
- user
- flow
- application
- ordered array
- linked list
- 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.)
- Granted
Links
- 238000007619 statistical method Methods 0.000 title claims abstract description 13
- 238000012163 sequencing technique Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims description 37
- 101100476210 Caenorhabditis elegans rnt-1 gene Proteins 0.000 description 9
- 238000003491 array Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- Environmental & Geological Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种基于排序算法的流量统计方法及系统,通过遍历网络接口上的应用会话,根据应用ID和应用ID对应的应用流量信息生成链表节点,并将所有的链表节点挂链得到流量链表。流量链表中包含网络接口中所有的应用的流量信息。使用快速排序算法对流量链表中的链表节点进行排序,得到第一有序数组,第一有序数组中是按照应用流量信息对链表节点排序。遍历流量链表下的用户对话,用户对话表示对应的应用所连接的用户情况。获取户会话中的用户ID和用户ID对应的用户流量信息,进而将应用下的用户流量信息进行排序,得到第二有序数组。使用排序算法将第一有序数组和第二有序数组合并,得到流量排序结果。
Description
技术领域
本申请涉及通信数据统计领域,尤其涉及一种基于排序算法的流量统计方法及系统。
背景技术
网络流量就是网络上传输的数据量。网络流量的大小对网络架构设计具有重要意义,就像要根据来往车辆的多少和流向来设计道路的宽度和连接方式类似,根据网络流量进行网络的设计是十分必要的。
网络流量、流速控制统计是现代网络管理和安全系统中最基本的功能。常用的网络流量、流速控制统计方法效率并不高。对于网络流量、流速的控制统计通常采用选择排序算法、插入排序算法或堆排序算法。
但是目前,随着互联网的发展,网络设备可以支持的规格在不断增大,动辄百万级会话,十万级的用户。这对网络中应用和用户流量、流速控制统计提出了更高的要求,稳定性和效率都必须更高。以上排序算法中,选择排序算法,其算法优点在于统计数据量较小时的效率高。所以用到它的时候,数据规模越小越好,不占用额外的内存空间。插入排序算法在排序过程中,无序数列插入到有序区的过程中,不会改变相同元素的前后顺序,是一种稳定排序算。法算法优点是稳定。插入排序算法要进行n-1轮,每一轮对比的元素最坏的情况依次是1,2,3…n-1,所以时间复杂度是O(N^2),所以在数据量大的情况下效率并不高。堆排序算法的下沉调整的时间复杂度等同于堆的高度O(logn),构建二叉堆执行下沉调整次数是n/2,循环删除进行下沉调整次数是n-1,时间复杂度约为O(nlogn)。但是,堆排序算法针对相同的元素也会存在移动的现象,不够稳定,在对数据中相同的元素进行处理时,会存在排序移动的情况。
发明内容
为了解决常用网络会话中网络流量、流速控制的统计方法对于大规模数据的统计出现效率较低,不够稳定等问题,第一方面,本申请提供了一种基于排序算法的流量统计方法,所述方法包括:
遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息;
根据所述应用ID和所述应用流量信息生成链表节点;
将所有的链表节点挂链,得到流量链表;
使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组;
遍历所述流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息;
使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组;
将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
在一些可行的实施方式中,所述应用流量信息包括应用流量使用值和应用流量流速;在使用快速排序算法对所述流量链表进行排序处理,得到第一有序数组的步骤之前,所述方法包括:
将所述应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆;
当所述第一小顶堆中的链表节点数量等于第一预设数量时,根据所述第一小顶堆中的链表节点更新流量链表。
在一些可行的实施方式中,所述用户流量信息包括用户流量使用值和用户流量流速;在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤,还包括:
将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆;
当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
在一些可行的实施方式中,在将所述用户流量使用值大于流量阈值且所述用户流量流速大于所述流速阈值的用户流量信息归入所述第二小顶堆的步骤前,所述方法还包括:
遍历所述第二小顶堆中的用户流量信息的用户ID;
将所述用户ID相同的用户流量信息的用户流量使用值累加,并更新所述第二小顶堆中的用户流量信息。
在一些可行的实施方式中,将所述第一有序数组和所述第二有序数组合并的步骤包括:
使用二分查找法在所述第二有序数组中查找所述第一有序数组中的排序第一的流量数据的定位位置;
从所述定位位置处,将所述第一有序数组中的数据与第二有序数组中的流量数据按照从大到小的排序规则合并。
在一些可行的实施方式中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤后,所述方法还包括:
获取所述第一有序数组中的链表节点的排序结果;
将所述第二有序数组按照所述排序结果与所述第一有序数组的链表节点对应合并。
第二方面,本申请提供一种基于排序算法的流量统计系统,所述系统包括服务器和控制器,其中,
所述服务器被配置为遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息;所述应用流量信息包括应用流量使用值和应用流量流速;
所述服务器还被配置为遍历流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息;所述用户流量信息包括用户流量使用值和用户流量流速;
所述控制器被配置为:
根据所述应用ID和所述应用流量信息生成链表节点;
将所有的链表节点挂链,得到流量链表;
使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组;
使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组;
将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
在一些可行的实施方式中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆;
当所述第一小顶堆中的链表节点数量等于第一预设数量时,根据所述第一小顶堆中的链表节点更新流量链表。
在一些可行的实施方式中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆;
当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
在一些可行的实施方式中,在将所述用户流量使用值大于流量阈值且所述用户流量流速大于所述流速阈值的用户流量信息归入所述第二小顶堆的步骤前,所述控制器还被配置为:
遍历所述第二小顶堆中的用户流量信息的用户ID;
将所述用户ID相同的用户流量信息的用户流量使用值累加,并更新所述第二小顶堆中的用户流量信息。
由以上方案可知,本申请提供了一种基于排序算法的流量统计方法及系统,通过遍历网络接口上的应用会话,根据应用ID和应用ID对应的应用流量信息生成链表节点,并将所有的链表节点挂链得到流量链表。流量链表中包含网络接口中所有的应用的流量信息。使用快速排序算法对流量链表中的链表节点进行排序,得到第一有序数组,第一有序数组中是按照应用流量信息对链表节点排序。遍历流量链表下的用户对话,用户对话表示对应的应用所连接的用户情况。获取户会话中的用户ID和用户ID对应的用户流量信息,进而将应用下的用户流量信息进行排序,得到第二有序数组。使用排序算法将第一有序数组和第二有序数组合并,得到流量排序结果。本申请通过两次遍历对话,提前得到两组有序数组,第一次遍历网络中的应用对话,并根据应用的流量信息对应用进行排序,第二次遍历应用下的用户对话,并根据用户的流量信息对用户进行排序,最后使用排序算法对两个排序好的数组进行合并。本申请通过两次遍历对话,提前将需要合并的数组进行排序,然后使用排序算法将排序好的数组进行合并,减少了合并数据的时间,能够快速统计大数据量的流量、流速等信息,提高了统计的效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例示出的一种基于排序算法的流量统计方法的流程示意图;
图2为本申请实施例示出的对网络会话中有效应用流量信息筛选示意图;
图3为本申请实施例示出的对网络会话中有效应用流量信息排序示意图;
图4为本申请实施例示出的应用会话中的用户流量信息统计示意图;
图5为本申请实施例使用Timsort算法合并第一有序数组和第二有序数组的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着互联网的发展,网络设备可以支持的规格在不断增大,动辄百万级会话,十万级的用户。这对网络中应用和用户流量、流速控制统计提出了更高的要求,稳定性和效率都必须更高。现有的排序算法中,选择排序算法和插入排序算法均在数据规模较小时展现出其对数据处理的高效率。但是在处理较大规模数据时,选择排序算法和插入排序算法的时间复杂度较高,其对大数据的处理效率较低。而堆排序算法针对相同的元素也会存在移动的现象,不够稳定,在对数据中相同的元素进行处理时,会存在排序移动的情况。
为了解决常用网络会话中网络流量、流速控制的统计方法对于大规模数据的统计出现效率较低,不够稳定等问题,参见图1,为本申请实施例示出的一种基于排序算法的流量统计方法的流程示意图,提供了一种基于排序算法的流量统计方法,包括:
S100:遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息。
在网络接口中,通常会存在多个应用会话,每个应用会话代表对应的应用程序与网络接口的交互。在应用程序与网络接口交互的过程中,会根据交互的时间或实现的功能产生网络流量。应用本身会根据相关的功能记录应用所使用的流量。
在本实施例中,每个应用会话中包括对应的应用ID,以及应用ID对应的应用的流量使用情况,包括流量使用值和流量的流速。在本申请实施例中的应用包括终端设备中具有网络连接的基础功能应用,例如,邮箱、浏览器或杀毒软件等,也可以是用户安装的具有网络连接的娱乐应用,例如,影音播放器、游戏、购物平台、直播平台、社交软件等。
由于在不同的时间段,用户使用应用所产生的流量不同,在一些实施例中,可以获取对应时间段的流量使用值和流量的流速作为流量使用值和流速的统计数据。例如,用户通常白天工作,使用娱乐应用的频率较低,在本示例中,如果想要统计娱乐应用的流量数据,应用流量信息则选取18:00-22:00为最佳。
S200:根据所述应用ID和所述应用流量信息生成链表节点。
在获取到应用ID和应用流量信息后,就可以初步获取在网络接口中应用会话的数量,以及每个应用对应使用的流量值和流速。
在一些实施例中,如果在预设时间段内,应用所使用的流量值为0或者流量流速为0,说明在对应时间段内用户没有使用该应用,或者仅使用了该应用的离线功能,则不将该应用纳入数据统计。
S300:将所有的链表节点挂链,得到流量链表。
为了将网络接口中的应用根据流量使用情况更好的排序,需要将对应的链表节点进行挂链。所得到的流量链表中,包含了网络接口中每个应用的应用ID,以及应用ID对应的应用流量信息。此时,流量链表中所有的链表节点是无序的。
S400:使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组。
快速排序算法通过多次比较和交换来实现排序,通过设置一个分界值,将大于分界值的数据移至数组的左侧,将小于分界值的数据移至数组的右侧,这样就将所有的应用流量数据按照使用值的大小分为两批数据。左右两批数据可以分别独立排序,也是通过同样的方法,直至整个数组完成递归,完成快速排序,得到第一有序数组。第一有序数组中的流量数据可以是按照流量使用值由大到小排序,也可以按照流量使用值由小到大排序。第一有序数组能够表征网络接口中,已排序好的所有应用的流量信息情况。
在步骤S400之前,还需要对流量链表中的链表节点进行筛选,将流量使用值较小的应用流量数据筛除掉,保留其余数据再进行排序。在本实施例中,所述方法还包括:
S401:将应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆。在步骤S401之前,需要先构建第一小顶堆,设置第一小顶堆的堆顶阈值。
S402:当第一小顶堆中的链表节点数量等于第一预设数量时,根据第一小顶堆中的链表节点更新流量链表。
应用流量信息包括应用流量使用值和应用流量流速。如图2所示,在网络(CT)会话中,存在8个应用,应用的名称与对应的流量使用值分别为应用1/800MB、应用2/100MB、应用3/200MB、应用4/1.05GB、应用5/2.1GB、应用6/500KB、应用7/1.6GB和应用8/750MB。在本实施例中,小顶堆的顶堆阈值设置为300MB。在进行筛选后,更新流量链表。在更新后的流量链表中,大于堆顶阈值的有应用1、应用4、应用5应用7和应用8,即在流量链表中,仅保留以上应用对应的链表节点进行统计。
在经过快速排序算法后,如图3所示,在流量链表中,根据由小到大的排序规则,排序结果依次为应用5、应用7、应用4、应用1和应用8。以上结果仅为本申请实施例的示例性说明,实际在网络接口中的会话的数据量要远大于上述实施例的数量,通常数量级在百万左右。
本申请的另一实施例中,在将大于堆顶阈值的链表节点归入第一小顶堆的过程之前,还可以设置第一数组的容纳数量。第一数组由归入第一小顶堆的链表节点构成,便于后续对链表节点挂链生成流量链表。当完成筛选后,第一小顶堆中全部为大于堆定阈值的链表节点,此时可以按照容纳数量,筛选靠前的链表节点,作为第一数组的组成部分,并重新生成流量链表以完成对流量链表的更新。
S500:遍历所述流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息。
在每一个应用会话中,通常会有很多用户对话,能够表示在该应用下用户的连接情况,以及用户对应的用户流量信息。在用户通过对应的应用平台使用相应功能的时候,会产生用户使用的流量信息,包括用户流量使用值和用户流量流速。
需要说明的是,用户流量信息包括用户流量使用值和用户流量流速。在某一链表节点下的用户会话的流量使用值的总和等于对应链表节点的流量使用值。
参见图4,以应用8在某一时间段的用户流量使用值做示例性说明。在遍历的网络会话中获取到5个用户,分别获取5个用户的ID以及对应的用户流量使用值:用户1/350MB、用户2/50MB、用户3/100MB、用户4/250MB和应用5/0MB,此时用户流量信息为无序数组。
在一些实施例中,还可以选择预设时间段,并获取用户在预设时间段内的流量数据作为流量使用值。
S600:使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组。
在本实施例中,同样使用快速排序算法对步骤S500中获取的用户流量信息进行排序处理,得到第二有序数组。第二有序数组表示流量链表中的一个链表节点下的用户的流量使用情况。使用快速排序算法对用户流量信息进行排序的过程与步骤S400的过程相同,在此不做重复阐述。
在一些实施例中,步骤S600还可以演变为:
S601:将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆。
本实施例中,为了统计用户在使用应用的有效使用情况,需要在第二小顶堆同时设置流量阈值和流速阈值。然后将用户流量信息中,用户流量使用值大于流量阈值并且用户流量流速大于流量阈值的用户流量信息归入第二小顶堆中。在一些实施例中,也可以只设置流量阈值或流速阈值。
S602:当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
在本实施例中,用户流量使用值大于流量阈值且用户流量流速大于流速阈值的用户流量信息归入第二小顶堆之前,还可以设置第二数组的容纳数量。第二数组由归入第二小顶堆的用户流量信息对应的数据组成。在完成筛选后,第二小顶堆中全部为流量大于流量阈值且流速大于流速阈值的用户流量信息,此时按照第二数组的容纳数量,筛选靠前的用户流量信息,作为第二数组的组成部分。
S700:将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
在本实施例中,可以使用Timsort算法对第一有序数组和第二有序数组进行合并,第一有序数组和第二有序数据相当于Timsort算法合并过程中的两个“run”,“run”相当于有序的数据快。因为在步骤S400和步骤S600中,已经分别得到了第一有序数组和第二有序数组,进而节省了Timsort算法生成“run”的时间。图5为本申请实施例使用Timsort算法合并第一有序数组和第二有序数组的示意图。在第一有序数组中,各应用时按照流量使用值的大小进行排序。进一步的,在应用8中,是将应用8中的用户按照流量使用大小进行排序。
需要说明的是,图5中仅示出了应用8的用户流量使用的排序情况,其他应用的用户流量使用的排序情况并未示出。在实际排序的过程中,所有的应用均与对应第二有序数组进行合并。
在一些实施例中,将所述第一有序数组和所述第二有序数组合并的步骤包括:
使用二分查找法在所述第二有序数组中查找所述第一有序数组中的排序第一的流量数据的定位位置;
从所述定位位置处,将所述第一有序数组中的数据与第二有序数组中的流量数据按照从大到小的排序规则合并。
在本实施例中,以第一有序数组为Run1:[101,102,103,...,200],第二有序数组为Run2:[1,2,3,...,100]做示例性说明。在定位的过程中,是以2^n(2的n次方)递增数据比较的依据。[0]表示数组角标0,依次类推。
run1[0]>run2[0];此时Run1不向Run2合并。
run1[0]>run2[1];
run1[0]>run2[3];
run1[0]>run2[7];
run1[0]>run2[15];
...
run1[0]>run2[2^n-1];
run1[0]<=run2[2^(n+1)-1];此时,定位到合并的定位位置,开始合并,将第一有序数组中的“101”排在第二有序数组的“100”后面。
在本实施例中,通过二分法的方式,能够快速的定位出第一有序数组和第二有序数组的定位位置,节省合并的时间,提高合并的效率。
在一些实施例中,使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤后,所述方法还包括:
获取所述第一有序数组中的链表节点的排序结果;
将所述第二有序数组按照所述排序结果与所述第一有序数组的链表节点对应合并。
因为第二有序数组为链表节点所对应应用下的用户流量信息。为了统计每个链表节点下的用户的排序结果,在本实施例中,在第一有序数组的链表节点完成排序之后,按照排序结果,将第一有序数组中的链表节点与对应的第二有序数组合并。在链表节点有序的情况下,链表节点对应的用户的流量使用情况也有序排列。
以上方法还可以通过硬件设施来实现,第二方面,本申请提供一种基于排序算法的流量统计系统,所述系统包括服务器和控制器,其中,
所述服务器被配置为遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息;所述应用流量信息包括应用流量使用值和应用流量流速;
所述服务器还被配置为遍历流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息;所述用户流量信息包括用户流量使用值和用户流量流速;
所述控制器被配置为根据所述应用ID和所述应用流量信息生成链表节点;
将所有的链表节点挂链,得到流量链表;
使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组;
使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组;
将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
在一些实施例中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆;
当所述第一小顶堆中的链表节点数量等于第一预设数量时,根据所述第一小顶堆中的链表节点更新流量链表。
在一些实施例中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆;
当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
在一些实施例中,在将所述用户流量使用值大于流量阈值且所述用户流量流速大于所述流速阈值的用户流量信息归入所述第二小顶堆的步骤前,所述控制器还被配置为:
遍历所述第二小顶堆中的用户流量信息的用户ID;将所述用户ID相同的用户流量信息的用户流量使用值累加,并更新所述第二小顶堆中的用户流量信息。
在一些实施例中,将所述第一有序数组和所述第二有序数组合并的步骤,控制器还可以配置为使用二分查找法在所述第二有序数组中查找所述第一有序数组中的排序第一的流量数据的定位位置;
从所述定位位置处,将所述第一有序数组中的数据与第二有序数组中的流量数据按照从大到小的排序规则合并。
在一些实施例中,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤后,控制器还被配置为获取所述第一有序数组中的链表节点的排序结果;将所述第二有序数组按照所述排序结果与所述第一有序数组的链表节点对应合并。
本申请系统的功能参见上述方法实施例中的说明,在此不再赘述。
由以上方案可知,本申请提供了一种基于排序算法的流量统计方法及系统,通过遍历网络接口上的应用会话,根据应用ID和应用ID对应的应用流量信息生成链表节点,并将所有的链表节点挂链得到流量链表。流量链表中包含网络接口中所有的应用的流量信息。使用快速排序算法对流量链表中的链表节点进行排序,得到第一有序数组,第一有序数组中是按照应用流量信息对链表节点排序。遍历流量链表下的用户对话,用户对话表示对应的应用所连接的用户情况。获取户会话中的用户ID和用户ID对应的用户流量信息,进而将应用下的用户流量信息进行排序,得到第二有序数组。使用排序算法将第一有序数组和第二有序数组合并,得到流量排序结果。本申请通过两次遍历对话,提前得到两组有序数组,第一次遍历网络中的应用对话,并根据应用的流量信息对应用进行排序,第二次遍历应用下的用户对话,并根据用户的流量信息对用户进行排序,最后使用排序算法对两个排序好的数组进行合并。本申请通过两次遍历对话,提前将需要合并的数组进行排序,然后使用排序算法将排序好的数组进行合并,减少了合并数据的时间,能够快速统计大数据量的流量、流速等信息,提高了统计的效率。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种基于排序算法的流量统计方法,其特征在于,所述方法包括:
遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息;
根据所述应用ID和所述应用流量信息生成链表节点;
将所有的链表节点挂链,得到流量链表;
使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组;
遍历所述流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息;
使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组;
将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
2.根据权利要求1所述的方法,其特征在于,所述应用流量信息包括应用流量使用值和应用流量流速;在使用快速排序算法对所述流量链表进行排序处理,得到第一有序数组的步骤之前,所述方法包括:
将所述应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆;
当所述第一小顶堆中的链表节点数量等于第一预设数量时,根据所述第一小顶堆中的链表节点更新流量链表。
3.根据权利要求1所述的方法,其特征在于,所述用户流量信息包括用户流量使用值和用户流量流速;在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤,还包括:
将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆;
当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
4.根据权利要求3所述的方法,其特征在于,在将所述用户流量使用值大于流量阈值且所述用户流量流速大于所述流速阈值的用户流量信息归入所述第二小顶堆的步骤前,所述方法还包括:
遍历所述第二小顶堆中的用户流量信息的用户ID;
将所述用户ID相同的用户流量信息的用户流量使用值累加,并更新所述第二小顶堆中的用户流量信息。
5.根据权利要求1所述的方法,其特征在于,将所述第一有序数组和所述第二有序数组合并的步骤包括:
使用二分查找法在所述第二有序数组中查找所述第一有序数组中的排序第一的流量数据的定位位置;
从所述定位位置处,将所述第一有序数组中的数据与第二有序数组中的流量数据按照从大到小的排序规则合并。
6.根据权利要求1所述的方法,其特征在于,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤后,所述方法还包括:
获取所述第一有序数组中的链表节点的排序结果;
将所述第二有序数组按照所述排序结果与所述第一有序数组的链表节点对应合并。
7.一种基于排序算法的流量统计系统,其特征在于,所述系统包括服务器和控制器,其中,
所述服务器被配置为遍历网络接口上的至少一个应用会话,获取所述应用会话中的应用ID和所述应用ID对应的应用流量信息;所述应用流量信息包括应用流量使用值和应用流量流速;
所述服务器还被配置为遍历流量链表下的用户会话,获取所述用户会话中的用户ID和所述用户ID对应的用户流量信息;所述用户流量信息包括用户流量使用值和用户流量流速;
所述控制器被配置为:
根据所述应用ID和所述应用流量信息生成链表节点;
将所有的链表节点挂链,得到流量链表;
使用快速排序算法对所述流量链表中的链表节点进行排序处理,得到第一有序数组;
使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组;
将所述第一有序数组和所述第二有序数组合并,得到流量排序结果。
8.根据权利要求7所述的系统,其特征在于,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述应用流量使用值大于堆顶阈值的链表节点归入第一小顶堆;
当所述第一小顶堆中的链表节点数量等于第一预设数量时,根据所述第一小顶堆中的链表节点更新流量链表。
9.根据权利要求7所述的系统,其特征在于,在使用快速排序算法对用户流量信息进行排序处理,得到第二有序数组的步骤中,所述控制器还被配置为:
将所述用户流量使用值大于流量阈值且所述用户流量流速大于流速阈值的用户流量信息归入第二小顶堆;
当所述第二小顶堆中的用户流量信息数量等于第二预设数量时,使用快速排序算法对所述第二小顶堆中的用户流量信息进行排序处理,得到第二有序数组。
10.根据权利要求9所述的系统,其特征在于,在将所述用户流量使用值大于流量阈值且所述用户流量流速大于所述流速阈值的用户流量信息归入所述第二小顶堆的步骤前,所述控制器还被配置为:
遍历所述第二小顶堆中的用户流量信息的用户ID;
将所述用户ID相同的用户流量信息的用户流量使用值累加,并更新所述第二小顶堆中的用户流量信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210978673.9A CN115378848B (zh) | 2022-08-16 | 2022-08-16 | 一种基于排序算法的流量统计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210978673.9A CN115378848B (zh) | 2022-08-16 | 2022-08-16 | 一种基于排序算法的流量统计方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115378848A true CN115378848A (zh) | 2022-11-22 |
CN115378848B CN115378848B (zh) | 2024-03-22 |
Family
ID=84066528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210978673.9A Active CN115378848B (zh) | 2022-08-16 | 2022-08-16 | 一种基于排序算法的流量统计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115378848B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478156B1 (en) * | 2003-09-25 | 2009-01-13 | Juniper Networks, Inc. | Network traffic monitoring and reporting using heap-ordered packet flow representation |
CN102318288A (zh) * | 2011-07-29 | 2012-01-11 | 华为技术有限公司 | 节点排序与选取方法、装置及系统 |
CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
CN108170772A (zh) * | 2017-12-26 | 2018-06-15 | 泰康保险集团股份有限公司 | 一种数据处理方法及装置 |
CN109634966A (zh) * | 2018-12-17 | 2019-04-16 | 广州天懋信息系统股份有限公司 | 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 |
WO2020103345A1 (zh) * | 2018-11-19 | 2020-05-28 | 众安信息技术服务有限公司 | 会话流程处理方法、装置及计算机可读存储介质 |
CN113132259A (zh) * | 2019-12-31 | 2021-07-16 | 北京金山云网络技术有限公司 | 一种流量数据包统计方法、装置、设备及存储介质 |
CN113127693A (zh) * | 2019-12-31 | 2021-07-16 | 北京金山云网络技术有限公司 | 一种流量数据包统计方法、装置、设备及存储介质 |
-
2022
- 2022-08-16 CN CN202210978673.9A patent/CN115378848B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478156B1 (en) * | 2003-09-25 | 2009-01-13 | Juniper Networks, Inc. | Network traffic monitoring and reporting using heap-ordered packet flow representation |
CN102318288A (zh) * | 2011-07-29 | 2012-01-11 | 华为技术有限公司 | 节点排序与选取方法、装置及系统 |
CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
CN108170772A (zh) * | 2017-12-26 | 2018-06-15 | 泰康保险集团股份有限公司 | 一种数据处理方法及装置 |
WO2020103345A1 (zh) * | 2018-11-19 | 2020-05-28 | 众安信息技术服务有限公司 | 会话流程处理方法、装置及计算机可读存储介质 |
CN109634966A (zh) * | 2018-12-17 | 2019-04-16 | 广州天懋信息系统股份有限公司 | 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 |
CN113132259A (zh) * | 2019-12-31 | 2021-07-16 | 北京金山云网络技术有限公司 | 一种流量数据包统计方法、装置、设备及存储介质 |
CN113127693A (zh) * | 2019-12-31 | 2021-07-16 | 北京金山云网络技术有限公司 | 一种流量数据包统计方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
谢鲲;张大方;谢高岗;文吉刚;黎文伟;: "一种基于网络业务流的流量监测分析算法", 小型微型计算机系统, no. 01, pages 48 - 51 * |
Also Published As
Publication number | Publication date |
---|---|
CN115378848B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10747780B2 (en) | Blockchain-based data processing method and device | |
US11422853B2 (en) | Dynamic tree determination for data processing | |
US8438574B1 (en) | Generating monotone hash preferences | |
US9996593B1 (en) | Parallel processing framework | |
CN110798517B (zh) | 去中心化集群负载均衡方法、系统、移动终端及存储介质 | |
CN112434000B (zh) | 一种基于hdfs的小文件合并方法、装置及设备 | |
CN111723148A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN105512156B (zh) | 点击模型生成方法和装置 | |
US7308494B1 (en) | Reprovisioning technique for an interconnect fabric design | |
CN111597054A (zh) | 一种信息处理方法、系统、电子设备及存储介质 | |
WO2017095413A1 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
CN109388636A (zh) | 业务数据插入数据库方法、装置、计算机设备及存储介质 | |
CN111026765A (zh) | 严格平衡二叉树的动态处理方法、设备、存储介质及装置 | |
CN115378848A (zh) | 一种基于排序算法的流量统计方法及系统 | |
US7647592B2 (en) | Methods and systems for assigning objects to processing units | |
CN110321388B (zh) | 一种基于Greenplum的快速排序查询方法及系统 | |
CN115828011B (zh) | 基于大数据的数据分析方法和平台 | |
CN106506647A (zh) | 一种客户端具有数据备份装置的智慧社区云存储系统 | |
CN111008873A (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
US9009004B2 (en) | Generating interconnect fabric requirements | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
CN111767225B (zh) | 一种云计算环境下第三方软件测试系统及方法 | |
CN114938376A (zh) | 基于优先级处理数据的工业物联网及其控制方法 | |
CN112825045B (zh) | 支付请求处理方法、系统和存储介质 | |
CN112783673A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |