基于多层流量分类与QoS队列控制的流量调配方法
本发明涉及数字信息传输,具体涉及基于多层流量分类与qos队列控制的流量调配方法。
背景技术:
1、随着家庭网络、小型办公网络和边缘网关设备中多业务并发场景的增加,互联网流量在不断扩充,在面对庞大且可变化的网络数据流量进行流量分析和应用提取时,网络中可能同时存在视频点播、直播会议、网页访问、即时通信、应用下载和大文件传输等多种业务,不同业务对时延、抖动、丢包率和带宽占用的敏感性不同,往往需要及时监管,以便于识别出业务差异实施网络数据流量精细化管控,确保关键业务服务质量(qos),防止网络拥塞并提升整体网络数据流量利用效率。
2、现有常用的流量控制方法包括以下五种:第一类:基于深度包检测(dpi)的流量识别方案:通过解析应用层负载、协议特征或报文内容识别流量类型,再将识别结果用于带宽调度或优先级控制,该类方案识别粒度较细,但通常需要持续分析报文内容,对设备计算资源占用较高,在加密流量占比较高的场景下也容易受到限制;第二类:基于dns解析结果的调度方案:通常利用域名与ip地址之间的映射关系,实现选路、分流、内容分发调度或特定业务识别;该类方案对明文域名信息利用充分,但多用于静态调度或单层识别,对规则覆盖不足、共享cdn和连接建立后的持续识别问题支持有限;第三类:基于端口、协议和连接特征的流量分类方案:通过五元组、端口范围、连接持续时间、字节数等信息对流量进行粗分类;此类方案实现简单,但准确率有限,尤其在现代应用普遍复用443端口的情况下,单一端口判断难以满足实际需求;第四类:基于机器学习或人工智能模型的流量识别方案:通过采集流量特征并进行模型推理,实现分类、异常识别或策略推荐。该类方案在样本充足时具有一定适应能力,但通常依赖训练数据、模型维护和运行时推理资源,未必适合长期运行在资源受限的边缘路由器环境中;第五类:传统qos队列控制方案:通常在linux或openwrt平台上利用多种机制对流量进行整形与优先级管理,现有动态qos控制方案通常将策略评估和策略下发紧密耦合,每次评估结果变化都可能直接修改tc队列参数,容易造成策略震荡、下发失败后状态不一致,或者频繁改动影响在线业务。
3、如中国专利申请号为201811412144.2,公布日为2019.04.09的专利文献,其公开了一种自动识别流量并提取应用规则的装置,由流量分类模块、流量过滤模块、http流量自动学习分析模块、非http流量特征提取模块组成;流量分类模块由流量对比器和http流量特征表组成;流量过滤模块由流量过滤器、流量规则指纹库组成;http流量自动学习分析模块由流量类型判断模块、特征字符串匹配分析器、域名和网页title分析器、服务器ip地址分析器组成;非http流量特征提取模块由非http流量记录器和16进制特征转换器组成。
4、上述文献是通过流量对比器、流量过滤器、流量类型判断模块、特征字符串匹配分析器和16进制特征转换器,实现对网络流量的自动分类、过滤和规则库的自动生成,以解决无法有效处理互联网流量更新的问题;但对于不同业务对时延、抖动、丢包率和带宽占用的敏感性不同,往往需要在路由器端进行流量分类和qos队列控制,而对于现有的qos队列控制中每次评估结果变化都可能直接修改tc队列参数,容易造成策略震荡、下发失败后状态不一致,或者频繁改动影响在线业务,从而上述处理互联网流量更新的装置应用在资源受限的openwrt路由器或边缘网关设备上,使用成本高,同时也无法对流量进行逐层筛选后再调配,并且对于不同规则配置中,无法通过不获取明文信息即可确定业务分类结果,或不需要通过复杂的规则匹配从而简单且可靠地确定业务分类结果。
技术实现思路
1、本发明的目的在于提供一种基于多层流量分类与qos队列控制的流量调配方法,能够对多种网络业务进行准确的流量分类,并实现安全可控的策略评估与带宽分配控制,同时兼顾分类准确性与运行稳定性。
2、为达到上述目的,本发明提供一种基于多层流量分类与qos队列控制的流量调配方法,包括以下步骤:
3、s1、预设域名与业务类别对应的内置规则和用户规则;从dns回复日志提取域名与ip地址的相匹配映射关系并形成域名-ip缓存,然后根据预设的内置规则和用户规则,将提取域名映射到相匹配的业务类别,接着prerouting阶段对后续连接的流量进行预打标,对于预打标的流量,输出与预打标流量对应的业务分类结果;对于未打标的流量,读取未预打标流量的连接跟踪表中的元信息,并根据与元信息对应的连接特征对未预打标流量进行分类,然后输出与未预打标流量对应的业务分类结果;
4、s2、定时任务预评估时,读取处于不同流量在htb队列中实时带宽占比,并根据不同流量统计确定拥塞情况,然后根据不同流量的业务分类结果和拥塞情况、当前策略状态确定目标调度模式及带宽分配结果仅写入日志文件中,进入下发阶段,在队列下发模块中验证不同流量对应不同类别的htb 队列下发新的参数集与预设目标参数集是否相同,以确定是否改变htb 队列的参数集;
5、s3、周期性确定不同流量中业务分类结果以及拥塞情况,并根据不同流量中业务分类结果以及拥塞情况在预设时间内新触发采用维持现有目标调度模式,而连续命中次数多于预设次数时采用新的目标调度模式和htb队列参数集进行调配。
6、以上方法,通过解析dns回复日志、连接跟踪元信息形成的多层架构依次对流量进行逐层分类,在基于解析dns回复日志的第一层分类中,对流量的命中率高且延迟低,能够对大多数常见业务实现快速预分类;而对于防火墙中空数据包基于连接跟踪元信息的第二层分类,则能够避开dns回复日志完整性的约束,对第一层分类中没有标记的流量进行再次识别达标;且二层流量分类过程中均无需安装ca证书进行中间人解密,同时无需解析http/https应用层载荷,能够显著降低设备资源消耗,并兼顾隐私性;在进行逐层流量分类后通过定时任务预评估,然后确定不同流量业务分类结果和拥塞情况确定目标调度模式进行预评估之后,并确定是否对htb队列的参数集进行重新下发,且在周期性评估时只有在冷却时间比如预设时间内有新触发情况维持现有调度模式,而在多次触发时采用新的调度模式,从而进行高频策略评估与低频实际下发,能够有效减少频繁修改队列参数集造成的网络抖动,降低下发失败后状态不一致的风险,同时能够通过将不同流量的业务分类结果和拥塞情况对应的目标调度模式以及带宽分配记过保留完整的审计日志用于问题追溯,这样对多种网络业务进行准确的流量分类后,能够实现安全可控的策略评估与带宽分配控制,同时兼顾分类准确性与运行稳定性。
7、进一步的,在步骤s1中,预设内置规则和用户规则均包括域名模式、业务类别、置信度和可选备注信息,用户规则为用户根据实际网络环境调整后分类策略,且用户规则优先于内置规则匹配,还包括:步骤s1.1~s1.3,
8、s1.1、读取dns回复日志记录中的cname别名链,然后追踪cname别名链的原始域名并判断是否命中内置规则或用户规则,若是,则进入步骤s1.2;若否且能确定元信息,否则进入步骤s1.3;
9、s1.2、将与域名对应的ip地址写入dns分类缓存,并记录有效期,然后按照dns分类缓存结果构造防火墙规则,并在prerouting阶段根据ip地址对流量进行预打标,预打标为fwmark,通过预打标和预设ip规则匹配预打标对应路由表,确定协议类型、目的端口、源端口、累计字节数、累计包数和平均包长,根据预设的内置规则,对路由表中连接进行业务分类结果;
10、s1.3、对于防火墙标记为空的流量,确定为未打标流量,确定未打标流量的连接跟踪元信息,并根据元信息确定业务分类结果。
11、以上设置,能够在流量连接在大多数常见业务的场景下,通过基于域名-ip地址的映射对流量进行预打标,预打标的方式调用linux中预打标的方式,进而能够快速完成连接流量的第一层分类,能够提高后续流量诊断效率。
12、进一步的,在步骤s1.3中,包括:步骤s1.3.3~ s1.3.2,
13、s1.3.1、读取未预打标流量的连接跟踪表中每条活动连接的元信息,元信息包括协议类型、目的端口、源端口、累计字节数、累计包数和平均包长,根据内置规则判断未预打标流量的每条活动连接的元信息是否可以进行弱分类,若可以进行弱分类,并输出弱分类后的分类结果为业务分类结果;否则进入步骤s1.3.2;
14、s1.3.2、将未预打标流量中无法进行弱分类的活动连接的元信息判断为其他类低置信度并设置为业务分类结果。
15、以上设置,在第一层流量分类的基础上,进一步通过连接跟踪表的元信息对未预打标流量进行第二层流量分类,并且第二层流量分类无需通过应用层明文载荷即可实现判断分类,即无需识别数据包的具体应用类型,能够避免加密流量占主流时对流量分类的干扰,以实现快速识别第二层流量的分类。
16、进一步的,步骤s1.3.1包括:根据目标端口以及内置规则确定是否为特定游戏平台端口或典型媒体协议端口,根据累计字节数、累计包数和平均包长以及内置规则确定是否为大体量下载特征,对特定游戏平台端口赋予低时延类置信度,对典型媒体协议端口赋予流媒体类置信度,对大体量下载特征赋予批量下载类置信度,对无法明确判断的通用端口赋予默认其他类低置信度。
17、以上设置,对于在预打标或未打标之外的加密流量基于tls握手明文字段的第三层分类,则能够对第一层分类和第二层分类中无法被识别的加密流量进行识别,能够提高cname别名链过长、dns回复日志缺失等场景流量盲区的识别率,这样在加密流量占比持续增长时,能够有效提高流量分类覆盖率。
18、进一步的,在步骤s1中,包括:步骤s1.4.1-s1.4.3,
19、s1.4.1、判断加密流量中是否存在可解析的tls握手信息,若是,则读取tls握手阶段的问候报文,然后提取问候报文中的sni明文字段,并解析出与sni明文字段对应的域名;否则进入步骤s1.4.3;
20、s1.4.2、判断与sni明文字段对应的域名是否命中内置规则或用户规则,若是,将与sni明文字段的域名相对应的ip地址补充写入dns分类缓存,然后通过相对应的ip地址映射到相匹配的业务类别,并输出与加密流量对应的业务分类结果;否则进入步骤s1.4.3;
21、s1.4.3、将无法解析出tls握手信息的加密流量和无法命中内置规则或用户规则的加密流量归纳为未识别类别流量,并输出与未识别类别流量对应的业务分类结果。
22、以上设置,在第二层流量分类的基础上,通过第三层流量分类,能够弥补第一层流量分类中dns回复日志的域名没有命中、第二层流量分类中已建立的活动连接没有弱分类或多个网站共同使用同一组 cdn(即内容分发网络) 缓存节点资源造成的流量识别缺失,从而通过递进式层层分类识别,且三层流量分类过程中均不解析应用层加密载荷内容,进而能够在不解析应用层加密载荷内容的前提下,实现逐层快速分类,有效降低设备资源消耗。
23、进一步的,在步骤s2中,包括:步骤s2.1~ s2.2,
24、s2.1、在定时预评估阶段,触发预设缺省间隔的cron定时任务后,采集当前流量的不同业务分类结果、拥塞情况和策略状态,然后分析得到当前流量目标调度模式和带宽分配结果,并写入结构化jsonl日志文件,通过人工干预或预设触发条件进入下发阶段;,目标调度模式包括低时延优先模式、流媒体优先模式、批量限制模式或均衡模式;
25、s2.2、在下发阶段,读取当前htb 队列包含速率、上限和优先级的参数集形成完整快照,根据分配结果中的最新策略建议,对不同类别的htb 队列下发新的参数集,下发完成后校验不同类别htb 队列的参数集与预设目标参数集是否相同,若是,则保持新的参数集生效;否则将htb队列的参数集恢复至下发前的快照状态。
26、以上设置,通过评估阶段的高频评估与下发阶段的低频下发分离相结合,能够拥有效降低策略决策的抖动和错误扩散的风险。
27、进一步的,在步骤s3的策略决策模块中,根据周期性采集的网络质量指标,将网络拥塞情况分为正常、轻度拥塞和严重拥塞三个等级,然后在冷却时间与连续命中内置规则或用户规则次数的双重机制中进行切换,当处于连续命中状态并检测到高时延业务或流媒体业务或批量下载业务占优势时,结合当前网络拥塞状态变化至对应的目标调度模式;当处于冷却时间窗口时,维持原始的目标调度模式。
28、以上设置,能够避免由于瞬时网络波动而导致策略决策频繁切换,进而在流量分类占比较低或未知流量占比较高时,能够优先保障基本流量连接的连通性。
29、进一步的,在步骤s1.4.3后,还包括:
30、对步骤s1.4.3的未识别类别流量进行聚合记录,然后统计出现的频率和次数、关联ip样本以及别名链样本,并生成对应的候选匹配模式,然后导出与未识别类别流量对应的域名及统计的样本数据,通过离线智能分析或人工辅助分析对未识别类别流量的业务分类归属进行判断,形成包含域名模式、业务类别、置信度和说明信息的候选规则并进行校验,通过校验并经过确认的候选规则保存,且使得内置规则优先于候选规则,并在下一轮流量分类调配过程中参与步骤s2、步骤s3的流量分类规则匹配,同时候选规则在每一轮流量分类调配过程中持续迭代,不断完善候选规则。
31、以上设置,能够有效提升没有被识别到的流量的分类覆盖率,这样通过不断迭代完善候选规则并参与到下一轮的流量分类调配过程中,便能够提高未识别类别流量的匹配率,从而提高流量分类的准确率。
32、进一步的,所述业务分类结果包括低时延类、流媒体类、批量下载类或其他类。
33、以上设置,能重点关注比较突出的业务类型。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com