数据转发方法、装置及相关设备与流程

文档序号:27764210发布日期:2021-12-04 00:30阅读:96来源:国知局
数据转发方法、装置及相关设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种数据转发方法、装置以及相关设备。


背景技术:

2.随着计算机网络技术以及网络应用的飞速发展,网络用户对网络连接速度和质量的要求越来越高。应用识别是应用可视、实现高品质网络业务承载的关键。应用识别技术部署于网络中能够用于企业、个人的应用流量分析,辅助识别应用质量,进而针对不同应用进行智能选路和qos保障。
3.深度数据包检测(deep packet inspection,dpi)是一种网络数据包过滤技术,用于识别数据包所属的应用或应用类型,进而根据数据包所属的应用或应用类型对数据包进行相应的处理,其原理是读取数据包载荷内容从而得到应用层的数据,然后根据已有的特征库对应用层的数据进行检测,匹配多级规则识别出数据包属于具体的应用,从而识别出不符合规范的协议、病毒、垃圾邮件等,也能够用预定的规则来对不同应用的数据包进行智能选路和qos保障。但是使用dpi技术识别数据包所属的应用时,需要对数据包进行拆包分析,识别效率较低。并且目前各种应用软件都在不断发展,应用的数据的特征信息也在不断的变化,当特征发生变化的时候,特征库中的特征也要随之改变,特征库需要随着应用的更新不断更新和维护,从而加大了基于dpi技术识别数据的难度。


技术实现要素:

4.本技术实施例公开了一种数据转发方法、装置及相关设备,通过域名识别数据所属的应用进而根据应用转发报文,具有更好的泛化性和稳定性,并且识别速度更快。
5.第一方面,本技术实施例提供一种数据转发方法,该方法包括:
6.网络设备接收报文,该报文包括目的地址;
7.若网络设备根据上述目的地址获取到报文对应的目标应用,则根据目标应用对应的转发规则,转发该报文;
8.若网络设备根据目的地址无法获取所述报文对应的目标应用;则获取所述目的地址对应的域名,并根据所述目的地址对应的域名获取所述报文对应的目标应用;根据所述目标应用所对应的转发规则,转发所述的报文。
9.网络设备在获取到报文之后,首先根据报文的目的地址,识别报文属于的应用,通过目的地址与应用之间的对应关系识别报文属于的应用,不需要获取报文的载荷,提高识别效率。在根据目的地址与应用之间的对应关系不能识别出报文所属的应用时,再获取目的地址对应的待识别域名,通过域名识别报文所属的应用,利用该方法识别报文所属的应用,进而根据报文所属的应用转发报文,相对于根据深度数据包检测技术识别报文所述的应用,具有更好的泛化性和稳定性,并且不需要对数据包进行拆包分析,识别速度更快。
10.在一种具体的实现方式中,所述若所述网络设备根据所述目的地址获取所述报文对应的目标应用,则根据所述目标应用所对应的转发规则,转发所述报文之前,所述方法还
包括:
11.所述网络设备根据所述目的地址与地址数据库识别所述目的地址所对应的目标应用,所述地址数据库包括多个地址与多个应用之间的对应关系,其中,每个应用对应一个或者多个地址,一个地址对应一个应用。
12.网络设备中存储有多个地址与多个应用之间的对应关系,如果地址数据库中包括上述报文的目的地址所对应的目标应用,则根据地址数据库快速的识别出上述报文对应的目标应用,识别简单且识别效率更高,识别更准确。
13.在一种具体的实现方式中,上述获取所述目的地址对应的域名,包括:网络设备从域名数据库获取上述报文的目的地址对应的域名,所述域名数据库包括多个域名与多个地址之间的对应关系,其中,一个域名对应一个地址,一个地址对应一个或者多个域名,所述多个域名与所述多个地址之间的对应关系是通过域名系统dns服务器获得的。
14.在一种具体的实现方式中,上述根据目的地址对应的域名获取报文对应的目标应用,包括:根据目的地址对应的域名和目标域名识别模型,获取报文对应的目标应用。
15.网络设备获取报文的目的地址,根据目的地址获取域名系统返回的该目的地址对应的待识别域名,并将该待识别域名输入至训练好的目标域名识别模型,识别待识别域名所属的目标应用,从而确定待识别数据属于上述目标应用的数据,其中,目标域名识别模型是根据包括多个域名以及各个域名所属应用的应用标识的数据集训练得到的机器学习模型。
16.通过机器学习的方法训练得到域名识别模型,根据待识别域名以及域名识别模型,识别待识别域名所属的应用,进而确定访问待识别域名的待识别数据所属的应用。利用该方法识别数据所属的应用,能够避免采用深度数据包技术识别数据所属的应用时,由于应用的数据的特征信息不断的变化,导致识别结果不准确的问题,因此利用域名识别访问域名的数据所属的应用的方法具有更好的泛化性和稳定性,并且在识别时不需要对数据包进行拆包分析,识别效率更高。
17.在一种具体的实现方式中,所述根据所述域名和目标域名识别模型,获取所述报文对应的目标应用之前,所述方法还包括:
18.获取多个初始域名数据集,所述多个初始域名数据集中的每个初始域名数据集包括一个应用访问的多个域名以及每个域名对应的流量;
19.对目标初始域名数据集中的多个域名进行聚类,得到所述目标初始域名数据集对应的多个域名子集,所述多个域名子集中的每个域名子集包括一个或者多个域名,所述目标初始域名数据集为所述多个初始域名数据集中的任意一个;
20.获取目标域名子集对应的第一流量以及所述目标初始域名数据集对应的第二流量,所述第一流量包括所述目标域名子集中一个或者多个域名对应的流量的总和,所述第二流量包括所述目标初始域名数据集中多个域名对应的流量的总和,所述目标域名子集为所述多个域名子集中的任意一个;
21.确定所述第一流量与所述第二流量的比值,在所述比值大于或等于第一阈值时,将所述目标域名子集中的域名添加至目标数据集,所述目标数据集包括多个应用对应的域名以及每个域名对应的应用的应用标识,所述目标数据集中的每个域名对应一个应用标识,所述多个应用中的每个应用对应一个或者多个域名;
22.根据所述目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型。
23.在获取到一个应用访问的域名组成的初始域名数据集之后,通过对该应用访问的多个域名进行聚类,得到多个域名子集,根据聚类结果计算该应用访问每个域名子集中的域名所产生的第一流量,以及该应用访问的所有域名所产生的第二流量,将第一流量与第二流量的比值大于等于预设值的域名子集中的域名作为该应用主要访问的域名,从而提取出该应用对应的主要域名,提高通过目标数据集训练得到的目标域名识别模型的识别准确性,减少用于训练初始域名识别模型的数据量,提高训练效率。
24.在一种具体的实现方式中,所述对所述目标初始域名数据集中的多个域名进行聚类,得到所述目标初始域名数据集对应的多个域名子集之前,所述方法还包括:
25.确定目标域名在所述多个初始域名数据集中出现的频率,在所述频率大于或等于第二阈值时,将所述目标域名从所述多个初始域名数据集中删除,所述目标域名为所述多个初始域名数据集中的任一域名。
26.通过在多个初始域名数据集中确定出现频率较高的域名,确定该域名为干扰域名,进而将干扰域名从上述多个初始域名数据集中删除,能够提高通过目标数据集训练得到的目标域名识别模型的识别准确性,减少用于训练初始域名识别模型的数据量,提高训练效率。
27.在一种具体的实现方式中,所述方法还包括:
28.提取所述目标数据集中具有相同一级域名的域名,将所述目标数据集分为第一目标数据集与第二目标数据集,其中,所述第一目标数据集中的域名在所述第一目标数据集中不存在与所述第一域名具有相同一级域名的域名,所述第二目标数据集中的域名在所述第二目标数据集中存在与所述第二域名具有相同一级域名的域名;
29.所述根据所述目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型,包括:
30.根据所述第一目标数据集对一级域名识别模型进行训练,得到训练好的一级域名识别模型;
31.根据所述第二目标数据集对多级域名识别模型进行训练,得到训练好的多级域名识别模型。
32.将目标数据集中的域名分成第一目标数据集和第二目标数据集,用第一目标数据集训练一级域名识别模型,用第二目标数据集训练多级域名识别模型,相比于用目标数据集训练一个上述初始域名识别模型,用于训练各个模型的数据量更少,训练速度更快,训练好的模型也更小,能够提高训练和识别的效率。
33.在一种具体的实现方式中,所述根据所述目的地址对应的域名和目标域名识别模型,获取所述报文对应的目标应用,包括:提取所述目的地址对应的域名的域名关键字,在域名关键字集合中查询到与所述域名关键字相似度小于第三阈值的关键字的情况下,将所述目的地址对应的域名输入至所述训练好的一级域名识别模型中,根据所述目的地址对应的域名和所述一级域名识别模型,获取所述报文对应的目标应用,所述域名关键字集合包括具有相同一级域名的不同应用的一级域名信息。
34.在一种具体的实现方式中,上述根据目的地址对应的域名和目标域名识别模型,
获取所述报文对应的目标应用,包括:提取待识别域名的域名关键字,在域名关键字集合中查询到与待识别域名的域名关键字相似度小于第三阈值的关键字的情况下,将待识别域名输入至一级域名识别模型中,根据待识别域名和一级域名识别模型,确定待识别域名对应的目标应用;在域名关键字集合中查询到与域名关键字相似度大于或等于第三阈值的关键字的情况下,将待识别域名输入至多级域名识别模型,根据待识别域名和多级域名识别模型,确定待识别域名对应的目标应用,其中,域名关键字集合包括具有相同一级域名的不同应用的一级域名信息。
35.在一种具体的实现方式中,所述根据所述目的地址对应的域名获取所述报文对应的目标应用之后,所述方法还包括:根据所述目的地址与所述目标应用对所述地址数据库进行更新。
36.通过目标域名识别模型识别待识别域名与目标应用的对应关系之后,能够获得目的地址与目标应用之间的对应关系,将目的地址与目标应用发送至地址数据库,设备根据目的地址与目标应用对地址数据库进行更新。从而在再次接收到地址为该目的地址的数据时,只需通过目的地址即可识别出数据所属的应用。
37.第二方面,本技术实施例提供一种报文转发系统,该系统包括训练设备和转发设备,其中,
38.所述训练设备,用于通过目标数据集对初始域名识别模型进行训练,得到目标域名识别模型,并将所述目标域名识别模型发送给所述转发设备,其中,所述目标数据集包括多个域名以及每个域名对应的应用标识,每个域名对应一个应用标识;
39.所述转发设备,用于:接收报文,所述报文包括目的地址;
40.在根据所述目的地址获取到所述报文对应的目标应用时,根据所述目标应用所对应的转发规则,转发所述报文;
41.在根据所述目的地址无法获取所述报文对应的目标应用时;获取所述目的地址所对应的域名,并根据所述域名与目标域名识别模型,获取所述报文对应的目标应用;根据所述目标应用所对应的转发规则,转发所述的报文。
42.在一种具体的实现方式中,所述转发设备还用于:根据所述目的地址与地址数据库识别所述目的地址所对应的目标应用,所述地址数据库包括多个地址与多个应用之间的对应关系,其中,每个应用对应一个或者多个地址,一个地址对应一个应用。
43.在一种具体的实现方式中,所述转发设备具体用于:从域名数据库获取所述目的地址对应的域名,所述域名数据库包括多个域名与多个地址之间的对应关系,其中,一个域名对应一个地址,一个地址对应一个或者多个域名,所述多个域名与所述多个地址之间的对应关系是通过域名系统dns服务器获得的。
44.在一种具体的实现方式中,所述训练设备具体用于:
45.获取多个初始域名数据集,所述多个初始域名数据集中的每个初始域名数据集包括一个应用访问的多个域名以及每个域名对应的流量;
46.对目标初始域名数据集中的多个域名进行聚类,得到所述目标初始域名数据集对应的多个域名子集,所述多个域名子集中的每个域名子集包括一个或者多个域名,所述目标初始域名数据集为所述多个初始域名数据集中的任意一个;
47.确定目标域名子集对应的第一流量以及所述目标初始域名数据集对应的第二流
量,所述第一流量包括所述目标域名子集中一个或者多个域名对应的流量的总和,所述第二流量包括所述目标初始域名数据集中多个域名对应的流量的总和,所述目标域名子集为所述多个域名子集中的任意一个;
48.确定所述第一流量与所述第二流量的比值,在所述比值大于或等于第一阈值时,将所述目标域名子集中的域名添加至目标数据集,所述目标数据集包括多个应用对应的域名以及每个域名对应的应用的应用标识,所述目标数据集中的每个域名对应一个应用标识,所述多个应用中的每个应用对应一个或者多个域名;
49.根据所述目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型。
50.在一种具体的实现方式中,所述训练系统具体用于:确定目标域名在所述多个初始域名数据集中出现的频率,在所述频率大于或等于第二阈值时,将所述目标域名从所述多个初始域名数据集中删除,所述目标域名为所述多个初始域名数据集中的任一域名。
51.在一种具体的实现方式中,所述训练设备具体用于:
52.提取所述目标数据集中具有相同一级域名的域名,将所述目标数据集分为第一目标数据集与第二目标数据集,其中,所述第一目标数据集中的域名在所述第一目标数据集中不存在与所述第一域名具有相同一级域名的域名,所述第二目标数据集中的域名在所述第二目标数据集中存在与所述第二域名具有相同一级域名的域名;
53.根据所述第一目标数据集对一级域名识别模型进行训练,得到训练好的一级域名识别模型;
54.根据所述第二目标数据集对多级域名识别模型进行训练,得到训练好的多级域名识别模型;
55.将所述一级域名识别模型与所述二级域名识别模型发送给所述转发设备。
56.在一种具体的实现方式中,所述转发设备具体用于:提取所述目的地址对应的域名的域名关键字,在域名关键字集合中查询到与所述域名关键字相似度小于第三阈值的关键字的情况下,将所述目的地址对应的域名输入至所述训练好的一级域名识别模型中,根据所述目的地址对应的域名和所述一级域名识别模型,获取所述报文对应的目标应用,所述域名关键字集合包括具有相同一级域名的不同应用的一级域名信息。
57.在一种具体的实现方式中,所述转发设备还用于:在所述域名关键字集合中查询到与所述域名关键字相似度大于或等于第三阈值的关键字的情况下,将所述目的地址对应的域名输入至所述训练好的多级域名识别模型,根据所述目的地址对应的域名和所述训练好的多级域名识别模型,获取所述报文对应的目标应用。
58.在一种具体的实现方式中,所述转发设备还用于:根据所述目的地址与所述目标应用对所述地址数据库进行更新。
59.第三方面,本技术实施例提供一种数据转发装置,该装置包括:
60.接收单元,用于接收报文,该报文包括目的地址;
61.处理单元,用于:根据目的地址获取报文对应的目标应用,或者,在根据目的地址无法获取报文对应的目标应用时;获取目的地址对应的域名,并根据域名获取所述报文对应的目标应用;
62.发送单元,用于根据目标应用所对应的转发规则,转发上述报文。
63.在一种具体的实现方式中,上述处理单元具体用于:根据目的地址与地址数据库识别目的地址所对应的目标应用,其中,地址数据库包括多个地址与多个应用之间的对应关系,每个应用对应一个或者多个地址,一个地址对应一个应用。
64.在一种具体的实现方式中,上述处理单元具体用于:从域名数据库获取目的地址对应的域名,所述域名数据库包括多个域名与多个地址之间的对应关系,其中,一个域名对应一个地址,一个地址对应一个或者多个域名,多个域名与多个地址之间的对应关系是通过域名系统dns服务器获得的。
65.在一种具体的实现方式中,所述处理单元具体用于:根据所述目的地址对应的域名和目标域名识别模型,获取所述报文对应的目标应用。
66.在一种具体的实现方式中,所述装置还包括:
67.训练单元,用于:获取多个初始域名数据集,所述多个初始域名数据集中的每个初始域名数据集包括一个应用访问的多个域名以及每个域名对应的流量;
68.对目标初始域名数据集中的多个域名进行聚类,得到所述目标初始域名数据集对应的多个域名子集,所述多个域名子集中的每个域名子集包括一个或者多个域名,所述目标初始域名数据集为所述多个初始域名数据集中的任意一个;
69.获取目标域名子集对应的第一流量以及所述目标初始域名数据集对应的第二流量,所述第一流量包括所述目标域名子集中一个或者多个域名对应的流量的总和,所述第二流量包括所述目标初始域名数据集中多个域名对应的流量的总和,所述目标域名子集为所述多个域名子集中的任意一个;
70.确定所述第一流量与所述第二流量的比值,在所述比值大于或等于第一阈值时,将所述目标域名子集中的域名添加至目标数据集,所述目标数据集包括多个域名以及每个域名对应的应用的应用标识,所述目标数据集中的每个域名对应一个应用标识,所述多个应用中的每个应用对应一个或者多个域名;
71.根据所述目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型。
72.在一种具体的实现方式中,所述训练单元还用于:确定目标域名在所述多个初始域名数据集中出现的频率,在所述频率大于或等于第二阈值时,将所述目标域名从所述多个初始域名数据集中删除,所述目标域名为所述多个初始域名数据集中的任一域名。
73.在一种具体的实现方式中,所述训练单元具体用于:
74.提取所述目标数据集中具有相同一级域名的域名,将所述目标数据集分为第一目标数据集与第二目标数据集,其中,所述第一目标数据集中的域名在所述第一目标数据集中不存在与所述第一域名具有相同一级域名的域名,所述第二目标数据集中的域名在所述第二目标数据集中存在与所述第二域名具有相同一级域名的域名;
75.根据所述第一目标数据集对一级域名识别模型进行训练,得到训练好的一级域名识别模型;
76.根据所述第二目标数据集对多级域名识别模型进行训练,得到训练好的多级域名识别模型。
77.在一种具体的实现方式中,所述处理单元具体用于:提取所述目的地址对应的域名的域名关键字,在域名关键字集合中查询到与所述域名关键字相似度小于第三阈值的关
键字的情况下,将所述目的地址对应的域名输入至所述训练好的一级域名识别模型中,根据所述目的地址对应的域名和所述一级域名识别模型,获取所述报文对应的目标应用,所述域名关键字集合包括具有相同一级域名的不同应用的一级域名信息。
78.在一种具体的实现方式中,所述处理单元还用于:在所述域名关键字集合中查询到与所述域名关键字相似度大于或等于第三阈值的关键字的情况下,将所述目的地址对应的域名输入至所述训练好的多级域名识别模型,根据所述目的地址对应的域名和所述训练好的多级域名识别模型,获取所述报文对应的目标应用。
79.在一种具体的实现方式中,所述处理单元还用于:根据所述目的地址与所述目标应用对所述地址数据库进行更新。
80.第四方面,本技术实施例提供一种网络设备,包括处理器和存储器;其中,存储器用于存储指令,处理器用于执行所述指令,当处理器执行所述指令时,该网络设备执行如上述第一方面或第一方面任一种具体实现方式中的数据转发方法。
81.第五方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得服务器执行第一方面或第一方面任一种具体实现方式中的数据转发方法。
82.第六方面,本技术实施例提供一种计算机程序产品,当该计算机程序产品在设备上运行时,使得设备执行第一方面或第一方面任一种具体实现方式中的数据转发方法。
附图说明
83.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
84.图1为本技术实施例提供的一种数据识别系统的架构图;
85.图2为本技术实施例提供的另一种数据识别系统的架构图;
86.图3为本技术实施例提供的另一种数据识别系统的架构图;
87.图4为本技术实施例提供的一种网络设备的结构示意图;
88.图5为本技术实施例提供的一种数据识别方法的流程示意图;
89.图6为本技术实施例提供的一种机器学习模型训练方法的流程示意图;
90.图7为本技术实施例提供的另一种机器学习模型训练方法的流程示意图;
91.图8为本技术实施例提供的一种数据识别装置的结构示意图;
92.图9为本技术实施例提供的一种网络设备的结构示意图;
93.图10为本技术实施例提供的一种计算设备系统的示意图。
具体实施方式
94.下面将结合附图,对本技术中的技术方案进行描述。
95.本技术实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征明示或者隐含地包括一个或者更多个该特征。
96.本技术实施例中,“和/或”,描述关联对象的关联关系,表示存在三种关系,例如,a
和/或b,表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
97.为了解决上述问题,本技术实施例提供一种数据转发方法,用于根据网络中的报文携带的目的地址或者目的地址对应的域名识别数据包所属的应用,然后根据数据包所属的应用对应的转发规则,转发该数据包。如图1所示,图1是本技术实施例提供的一种数据转发系统的架构图,该系统包括网络设备100和训练设备200,其中,网络设备100包括地址识别模块110与域名识别模块120。训练设备200用于根据目标数据集对初始域名识别模型进行训练,得到训练好的目标域名识别模型,然后将目标域名识别模型发送给网络设备100,网络设备100将目标域名识别模型部署于网络设备100的域名识别模块120中。
98.网络设备100在接收到报文后,地址识别模块110首先获取报文中的目的地址,根据地址数据库中存储的地址与应用的对应关系,识别该报文所属的应用。如果地址识别模块110识别出该报文所属的目标应用,网络设备100根据预先配置的对目标应用的数据的转发规则,对该报文进行转发。如果地址识别模块110无法识别出报文所属的应用,将报文中的目的地址发送给域名识别模块120。域名识别模块120在接收到目的地址之后,根据域名数据库中存储的域名与地址的对应关系,查找目的地址对应的待识别域名。然后将待识别域名输入到目标域名识别模型中,识别出待识别域名对应的目标应用。最后由网络设备100根据预先配置的对目标应用的数据的转发规则转发报文。同时域名识别模块120在根据待识别域名识别出目标应用,从而得到待识别域名对应的目的地址与目标应用之间的对应关系,域名识别模块120将目的地址与目标应用发送至地址数据库,网络设备100根据目的地址与目标应用对地址数据库进行更新。在网络设备100再次接收到地址为该目的地址的报文时,只需通过地址识别模块110即可识别出该报文所属的应用。其中,网络设备100可以是交换机或者路由器等数据传输设备,地址可以是网络互连协议(interner protocol,ip)地址。
99.可选地,如图2所示,网络设备100还可以包括dpi识别模块130,dpi识别模块130用于在地址识别模块110未能识别出上述报文所属的应用之后,获取报文并根据dpi识别技术对该报文进行识别,如果dpi识别模块130识别出报文对应的目标应用。网络设备100根据预先配置的对目标应用的数据的转发规则转发报文。同时dpi识别模块130将目的地址与目标应用发送至地址数据库,网络设备100根据目的地址与目标应用对地址数据库进行更新。在网络设备100再次接收到地址为该目的地址的报文时,只需通过地址识别模块110即可识别出该数据所属的应用。如果dpi识别模块130无法识别出该数据所属的应用,则将该报文中的目的地址发送给域名识别模块120,通过域名识别模块120进行识别。
100.在一种可能的实施例中,如图3所示,图3是本技术实施例提供的另一种数据转发系统的架构图,该系统包括网络设备300、控制器400和训练设备200,网络设备300包括地址识别模块310,控制器包括域名识别模块410。其中,网络设备300中地址识别模块310的功能与图1中网络设备100的地址识别模块110的功能相同,控制器400中域名识别模块410的功能与上述网络设备100中域名识别模块120的功能相同,在此不再赘述。其中,域名数据库能够部署在网络设备300中,也能够部署在控制器400中,图3中以域名数据库位于网络设备中
为例。可选地,网络设备300还包括dpi识别模块320,网络设备300中dpi识别模块320的功能与网络设备100中dpi识别模块130的功能相同,在此不再赘述。网络设备300可能是交换机或者路由器等数据传输设备。控制器400可能是服务器、终端等能够被配置执行域名识别的任意一种电子设备。
101.可选地,上述训练设备200也可以是集成于控制器400中的一个单独的模块,本技术实施例不做具体限制。
102.在另一种可能的实施例中,如图4所示,图4是本技术实施例提供的一种网络设备的结构示意图,该网络设备500包括地址识别模块510、域名识别模块520以及训练模块530。网络设备500中地址识别模块510的功能与图1中网络设备100的地址识别模块110的功能相同,域名识别模块520的功能与上述图1中网络设备100中域名识别模块120的功能相同,训练模块530的功能与上述图1中训练设备200的功能相同,在此不再赘述。可选地,网络设备500还可以包括dpi识别模块540,网络设备500中dpi识别模块540与网络设备100中dpi识别模块130的功能相同,在此不再赘述。网络设备500可以是交换机或者路由器等数据传输设备。也可以是服务器等设备。若网络设备500是服务器,则网络设备500与交换机等数据传输设备通信连接,数据传输设备在接收到报文之后,将报文发送给网络设备500,网络设备500在识别出报文所属的应用之后,将识别结果发送给数据传输设备,数据传输设备根据识别结果对报文进行转发。
103.下面结合上述图1至图4所示的数据识别系统或网络设备,对本技术提供的数据转发方法进行详细介绍。如图5所示,图5是本技术实施例提供的一种数据转发方法的流程示意图,该方法包括:
104.s502、接收报文,获取报文的目的地址。
105.用户终端在发送报文之后,需要经过网络设备(例如交换机或者路由器)转发才能到达目的地址指示的设备。网络设备在接收到报文之后,需要识别出该报文所属的应用,进而根据预设的转发规则转发报文。例如,如果该报文属于视频会议应用,则优先转发该报文。网络设备在接收到报文后,网络设备的地址识别模块获取报文的目的地址。
106.需要说明的是,本技术实施例中的网络设备可以是上述网络设备100、网络设备300或者网络设备500中的任意一种,本技术实施例不做具体限制,为了叙述简洁,本技术实施例以网络设备500为例进行描述。
107.s504、根据地址数据库识别所述目的地址对应的目标应用。
108.上述地址数据库中存储有地址(例如ip地址)与目标应用的对应关系,例如ip地址“192.168.135.166”对应的是应用a所在的服务器的地址,ip地址“192.168.100.125”对应的是应用b所在的服务器的地址。其中,一个地址对应一个应用,一个应用可以对应一个或者多个地址。
109.地址识别模块510获取到目的地址之后,通过将目的地址与地址数据库中的地址进行匹配识别上述报文属于哪个应用的数据。例如,如果目的地址为“192.168.100.125”,地址识别模块根据510在地址数据库中匹配到该目的地址对应的是应用b,则确定报文为应用b的数据。
110.s506、在根据地址数据库没有识别出所述目的地址对应的目标应用的情况下,根据所述目的地址获取目的地址对应的待识别域名。
111.本技术实施例中,网络设备500中还包括域名数据库,域名数据库中存储有域名与地址的对应关系,例如域名“www.abc.com”对应的ip地址为“192.168.135.166”,其中,一个域名对应一个ip地址,一个ip地址可以对应一个或者多个域名。可以理解,应用在访问服务器之前,需要先向域名系统(domain name system,dns)服务器查询应用的域名对应的ip地址,dns服务器会返回域名所对应的ip地址,因此网络设备中地址和域名之间的对应关系。
112.本技术实施例中,若地址识别模块510根据地址数据库中的数据能够识别出报文所属的目标应用,则网络设备500根据预先配置的对该目标应用的数据的转发规则转发报文。
113.如果地址识别模块510根据地址数据库中的数据没有识别出目的地址对应的目标应用,即地址识别模块510没有识别出报文所属的目标应用,则将目的地址发送给域名识别模块520,域名识别模块520根据目的地址,通过目的地址与域名数据库中的地址进行匹配,获取目的地址对应的待识别域名。
114.s508、根据待识别域名和目标域名识别模型,获取所述待识别域名对应的目标应用,根据所述目标应用对应的转发规则转发报文。
115.本技术实施例中,上述目标域名识别模型是根据目标数据集对初始域名识别模型根据机器学习算法训练后得到的,其中,目标数据集包括多个域名以及每个域名对应的应用标识,应用标识指示域名所属的应用,目标数据集中的每个域名对应一个应用标识,一个应用标识(即一个应用)对应多个域名。所述初始域名识别模型可以是支持向量机模型,也可以是神经网络模型,还可以是其他机器学习模型,本技术实施例不做具体限制。
116.上述目标域名识别模型部署在域名识别模块520中,域名识别模块520在根据上述目的地址获取到与目的地址对应的待识别域名之后,将待识别域名输入到目标域名识别模型中进行识别,识别出待识别域名对应的应用标识,从而得到待识别域名对应的目标应用,即得到目的地址对应的目标应用,上述报文即属于该目标应用的报文。网络设备500根据预先配置的对该目标应用的数据的转发规则转发报文。需要说明的是,域名识别模块520根据目的地址可能从域名数据库中获取到一个或者多个待识别域名,当域名识别模块520获取到一个待识别域名时,根据该待识别域名识别出的应用作为目标应用。当域名识别模块520获取到多个待识别域名时,域名识别模块520根据这多个待识别域名可能识别出一个或者多个应用,当识别出多个应用时,将识别出的多个应用中的多数作为目标应用。
117.域名识别模块520得到目的地址对应的目标应用之后,将目的地址与目标应用发送至地址数据库,网络设备500根据目的地址与目标应用对地址数据库进行更新,在网络设备500再次接收到地址为该目的地址的数据时,只需通过地址识别模块510即可识别出该数据所属的应用。
118.在一种可能的实施例中,上述目标域名识别模型包括训练好的一级域名识别模型与多级域名识别模型。其中,训练好的一级域名识别模型是根据第一目标数据集训练得到的,训练好的多级域名识别模型是根据第二目标数据集训练得到的。第一目标数据集中包括一级域名和多级域名(例如二级域名、三级域名等),第一目标数据集中的域名没有相同的一级域名,即第一目标数据集中的每个域名在第一目标数据集中找不到与其具有相同一级域名的域名,但是第一目标数据集中可以包括同一个应用对应的多个域名。第二目标数据集中包括多个子集,每个子集中包括一级域名和多级域名,每个子集中的域名具有相同
的一级域名,即第二目标数据集中的每个域名在第二目标数据集中均能找到与其具有相同一级域名的域名。例如,子集a中包括域名“www.abc.com”、“www.game.abc.com”、“www.video.abc.com”以及“www.zone.abc.com”,这四个域名均包括一级域名“abc.com”。子集b中包括域名“www.game.xy.com”、“www.map.xy.com”以及“www.cloud.xy.com”,这三个域名均包括一级域名“xy.com”。
119.域名识别模块520在接收到上述待识别域名之后,提取待识别域名的一级域名信息,将提取的一级域名信息与域名关键字集合中的域名关键字进行匹配,当待识别域名对应的一级域名信息在域名关键字集合中匹配到对应的关键字。例如计算提取出的待识别域名的一级域名信息与域名关键字集合中每个关键字的相似度,当相似度大于或者等于相似度阈值时,即认为匹配到对应的关键字信息。则域名识别模块520将待识别域名输入至多级域名识别模型中,使用多级域名识别模型对待识别域名进行识别。当待识别域名对应的一级域名信息在域名关键字集合中没有匹配到对应的关键字,则域名识别模块520将待识别域名输入至一级域名识别模型中,使用一级域名识别模型对待识别域名进行识别。其中,域名关键字集合包括第二目标数据集中具有相同一级域名的域名中提取的一级域名的关键字,例如,第二目标数据集中的“www.abc.com”、“www.game.abc.com”、“www.video.abc.com”以及“www.zone.abc.com”这四个域名均包括一级域名“abc.com”,则提取出一级域名关键字“abc”添加到域名关键字集合中,“www.game.xy.com”、“www.map.xy.com”以及“www.cloud.xy.com”这三个域名均包括一级域名“xy.com”,则提取出一级域名关键字“xy”添加到域名关键字集合中。
120.在一种可能的实施例中,网络设备500还包括dpi识别模块540,上述s506中,在根据地址数据库没有识别出所述目的地址对应的目标应用的情况下,dpi识别模块540获取报文并根据dpi识别技术对该报文进行识别,如果dpi识别模块540识别出报文对应的目标应用,网络设备500根据预先配置的对目标应用的数据的转发规则转发报文。同时dpi识别模块540将目的地址与目标应用发送至地址数据库,网络设备500根据目的地址与目标应用对地址数据库进行更新,在网络设备500再次接收到地址为该目的地址的数据时,只需通过地址识别模块510即可识别出该数据所述的应用。如果dpi识别模块540无法识别出该数据所属的应用,则将该报文中的目的地址发送给域名识别模块520,通过域名识别模块520进行识别。
121.通过机器学习的方法训练得到域名识别模型,根据待识别域名以及域名识别模型,识别待识别域名所属的应用,进而确定访问待识别域名的报文所属的应用。利用该方法识别数据所属的应用,可以避免采用深度数据包技术识别数据所属的应用时,由于应用的数据的特征信息不断的变化,导致识别结果不准确的问题,因此利用域名识别访问域名的数据所属的应用的方法具有更好的泛化性和稳定性,并且在识别时不需要对数据包进行拆包分析,识别效率更高。
122.上述实施例中,网络设备通过目标域名识别模型进行域名的识别,该目标域名识别模型由初始域名识别模型通过目标数据集训练得到,本技术实施例提供一种机器学习模型的训练方法,如图6所示,图6是本技术实施例提供的一种机器学习模型训练方法的流程示意图。该方法包括:
123.s602、获取多个初始域名数据集。
124.在根据目标数据集训练初始域名识别模型之前,需要获取每个应用访问的一个或者多个域名,作为每个应用对应的域名,目标数据集包括多个应用访问的域名的集合。本技术实施例中,分别获取每个应用对应的初始域名数据集,得到多个应用对应的多个初始域名数据集。其中,每个应用对应一个初始域名数据集,每个初始域名数据集包括一个应用访问的一个或者多个域名。其中,可以通过抓取应用访问网络产生的流量获得应用对应的域名,也可以通过简易信息聚合(really simple syndication,rss)的方式获得每个应用对应的域名,本技术实施例不做具体限定。
125.s604、分别对多个初始域名数据集中每个初始域名数据集中的域名进行预处理,得到各个应用对应的主成因域名集。
126.在获取每个应用对应的初始域名数据集之后,需要对每个初始域名数据集中的域名进行筛选,确定初始域名数据集中的未知应用对应的未知应用域名,提取每个应用对应的主成因域名集,每个应用对应的主成因域名集包括该应用对应的主成因域名。其中,主成因域名为每个应用主要访问的域名,例如,应用a包括10个功能,用户在使用每个功能时,用户终端会通过访问该功能对应的域名访问对应的服务器,则应用a的主成因域名包括这10个功能对应的域名。
127.本技术实施例中,对上述多个应用中的任意一个目标应用,可以通过以下方法提取每个应用对应的初始域名数据集中的主成因域名,进而得到每个应用对应的主成因域名集。首先,对目标应用对应的目标初始域名数据集中的多个域名,通过聚类算法对目标初始域名数据集中的多个域名进行聚类,得到一个或者多个域名子集。然后,统计每个域名子集对应的第一流量,以及目标初始域名数据集对应的第二流量。其中,第一流量是指目标应用在预设时长内访问一个域名子集中所有域名所产生的流量之和,第二流量是指目标应用在预设时长内访问目标初始域名数据集中所有域名所产生的流量之和。最后计算第一流量与第二流量的流量比值,如果一个域名子集对应的第一流量与目标初始域名数据集的第二流量的流量比值小于预设流量比值,则将该域名子集中的域名作为未知应用域名,如果一个域名子集对应的第一流量与第二流量的流量比值大于或者等于预设流量比值,则确定该域名子集中的域名为目标应用对应的主成因域名,即将目标初始域名数据集中除未知应用域名之外的域名,作为目标应用的主成因域名。
128.需要说明的是,在一个域名子集中的域名被确认为未知应用域名之后,需要将被确认为未知应用域名对应的应用标识更改为未知应用对应的标签。例如,对目标应用b对应的目标初始域名数据集中的100个域名进行聚类,共得到3个域名子集,分别编号为b1、b2和b3,其中,子集b1中包括40个域名,子集b2中包括25个域名,子集b3中包括35个域名。若三个域名子集中,子集b2对应的第一流量与目标应用对应的第二流量的比值小于预设流量比值,则将子集b2中的25个域名作为未知应用域名,将子集b2中的域名原本对应的是应用b的应用标识更改为未知应用的标识,将子集b1和子集b2中的域名作为目标应用b的主成因域名。
129.可选的,上述通过统计每个域名子集对应的流量确定每个域名子集中的域名是否为目标应用对应的主成因域名。本技术实施例中,还可以通过统计每个域名子集中所有域名的被访问次数与目标初始域名数据集中所有域名被访问的次数的比值,确定每个域名子集中的域名是否为目标应用对应的主成因域名。示例性的,在对目标初始域名数据集中的
多个域名进行聚类得到一个或者多个域名子集之后,统计每个域名子集对应的第一访问量,以及该初始域名数据集对应的第二访问量。其中,第一访问量是指目标应用在预设时长内访问一个域名子集中所有域名的次数,第二访问量是指目标应用在预设时长内访问目标初始域名数据集中所有域名的次数。最后计算每个域名子集的第一访问量与第二访问量的数量比值,如果一个域名子集对应的第一访问量与第二访问量的数量比值小于预设数量比值,则将该域名子集中的域名作为未知应用域名,如果第一访问量与第二访问量的数量大于或者等于预设数量比值,则确定该域名子集中的域名为目标应用对应的主成因域名。
130.可以理解,还可以根据一个域名子集对应的流量与访问量确定该域名子集中的域名是否为主成因域名。例如,当一个域名子集对应的流量比值小于预设流量比值,且数量比值小于预设数量比值时,将该域名子集中的域名作为未知应用域名。当一个域名子集对应的流量比值大于等于预设流量比值,和/或,数量比值大于等于预设数量比值时,确定该域名子集中的域名为主成因域名。
131.在一种具体的实现方式中,在根据每个域名子集对应的第一流量与目标初始域名数据集对应的第二流量的比值,和/或,根据每个域名子集中所有域名的被访问次数与目标初始域名数据集中所有域名被访问的次数的比值,确定每个目标应用对应的主成因域名之后,对于被确定为未知应用域名的域名,需要提取每个未知应用域名的一级域名信息,若一个未知应用域名的一级域名信息中包括目标应用名称,则将该未知应用域名作为目标应用的主成因域名,添加到目标应用对应的主成因域名中。
132.在获取到一个应用访问的域名组成的初始域名数据集之后,通过对该应用访问的多个域名进行聚类,得到多个域名子集,根据聚类结果计算该应用访问每个域名子集中的域名所产生的第一流量,以及该应用访问的所有域名所产生的第二流量,将第一流量与第二流量的比值大于等于预设值的域名子集中的域名作为该应用主要访问的域名,从而提取出该应用对应的主要域名,提高通过主成因域名训练得到的目标域名识别模型的识别准确性,减少用于训练初始域名识别模型的数据量,提高训练效率。
133.可选地,在通过计算相似度对目标初始域名数据集中的多个域名进行聚类,得到一个或者多个域名子集之前,可以统计每个域名或域名关键字出现在上述多个初始域名数据集中出现的频率,将频率超过预设频率阈值的域名作为干扰域名。例如,在获取的200个初始域名数据集中,有150个初始域名数据集中出现域名“www.shurufa.com”,该域名出现的频率为75%,超过预设频率阈值65%,则认为该域名为干扰域名,将该域名从这150个初始域名数据集中删除。然后再通过计算相似度对目标初始域名数据集中的多个域名进行聚类,得到一个或者多个域名子集。
134.通过在多个初始域名数据集中确定出现频率较高的域名,确定该域名为干扰域名,进而将干扰域名从上述多个初始域名数据集中删除,可以提高通过目标数据集训练得到的目标域名识别模型的识别准确性,减少用于训练初始域名识别模型的数据量,提高训练效率。
135.s606、对多个应用对应的主成因域名的数量进行平衡处理。
136.可以理解,初始域名数据集中的每个域名均有对应的应用标识指示每个域名属于的应用,在对每个初始域名数据集中的域名进行筛选,得到每个应用对应的主成因域名之后,根据应用标识统计每个应用对应的主成因域名的数量,根据每个应用对应的主成因域
名数量平衡各个应用的主成因域名的数量。当一个应用对应的主成因域名的数量大于平衡阈值时,需要对该应用对应的主成因域名进行缩减,将该应用对应的主成因域名的数量缩减至平衡阈值。当一个应用对应的主成因域名的数量小于平衡阈值时,需要增加该应用对应的主成因域名,使该应用对应的主成因域名的数量达到平衡阈值。其中,平衡阈值是指最终用于训练初始域名识别模型的目标数据集中,每个应用对应的主成因域名的数量,平衡阈值可以是上述多个应用各自对应的主成因域名的数量的中位数或者平均数,本技术实施例不做具体限定。
137.当一个应用对应的主成因域名的数量大于平衡阈值时,根据该应用对应的主成因域名的相似度,删除相似度较高的两个或者多个主成因域名中的部分,将该应用的主成因域名的数量减少至平衡阈值。例如,应用a对应的主成因域名有105个,平衡阈值为100个,即应用a对应的主成因域名需减少5个。可以通过计算这105个主成因域名中任意两个之间的相似度,将相似度高于相似度阈值的两个主成因域名中的一个删除。当一个应用对应的主成因域名的数量小于平衡阈值时,可以采用在该应用对应的主成因域名中增加干扰字符、替换主成因域名中的字符或者重复使用主成因域名等方式,将该应用的主成因域名的数量增加到平衡阈值。例如,应用b对应的主成因域名有96个,平衡阈值为100个,即应用b对应的主成因域名需增加4个。如果应用b对应的主成因域名中的一个域名为“www.abc.com”,可以在该域名中增加字符“xy”得到新的域名“www.xy.abc.com”,将得到的新的域名添加到应用b对应的主成因域名集中;也可以将“www.abc.com”中的“com”替换为“cn”,得到新的域名“www.abc.cn”,将得到的新的域名添加到应用b对应的主成因域名集中;还可以将“www.abc.com”在应用b对应的主成因域名集中重复一次或者多次,达到增加应用b对应的主成因域名数量的目的。
138.通过对每个应用对应的主成因域名的数量进行平衡处理,使每个应用对应的主成因域名的数量相同或者相近,可以使根据主成因域名训练得到的目标域名识别模型对域名的识别更加准确。
139.s608、确定未知应用对应的未知应用域名集,根据未知应用域名集以及上述多个应用对应的主成因域名集,得到目标数据集。
140.上述s604中,对每个应用对应的初始域名数据集中的域名进行聚类得到多个域名子集,通过计算每个域名子集对应的流量比值和/或数量比值,确定每个应用对应的初始域名数据集中的未知应用域名,得到多个初始域名数据集中确定的未知应用域名,这多个初始域名数据集中确定的未知应用域名的集合即为初始未知应用域名集,即初始未知应用域名集中包括上述多个初始域名数据集中确定的未知应用域名。在得到初始未知应用域名集之后,需要对初始未知应用域名集中的未知应用域名进行筛选,得到未知应用域名集。具体的,可以对初始未知应用域名集中的每个未知应用域名进行分类,得到每个未知应用域名属于上述多个应用中各个应用的概率,然后根据该未知应用属于多个应用的概率中最大概率和次大概率,确定该未知应用是否可以添加到未知应用域名集中。当最大概率与次大概率的比值小于预设值时,确定该未知应用可以添加到未知应用域名集中;当最大概率与次大概率的比值大于或者等于预设值,确定该未知应用不能添加到未知应用域名集中。根据上述方法确定未知应用域名集中的未知应用域名,然后根据上述对多个应用对应的主成因域名的数量进行平衡处理相同的方法,将未知应用域名集中的未知应用域名的数量增加或
者缩减至平衡阈值。
141.根据上述s604、s606以及s608中的方法得到上述多个应用对应的主成因域名集以及上述未知应用域名集,从而得到用于训练初始域名识别模型的目标数据集,即目标数据集包括上述多个应用对应的主成因域名、未知应用域名以及每个域名对应的应用标识。
142.s610、根据目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型。
143.在得到上述目标数据集之后,输入目标数据集至初始域名识别模型,利用机器学习算法根据目标数据集对初始域名识别模型进行训练,得到训练好的目标域名识别模型,并将目标域名识别模型部署到网络设备或者控制器中。
144.上述初始域名识别模型可以是线性回归模型、支持向量机或者神经网络模型,例如循环神经网络、卷积神经网络、深度卷积网络或深度残差网络等,本技术实施例不做具体限定。
145.上述s602至s610介绍了目标域名识别模型只包括一个域名识别模型时,目标数据集的获取方法,下面结合图7,介绍目标域名识别模型包括一级域名识别模型和多级域名识别模型时,获取用于训练一级域名识别模型的第一目标数据集以及用于训练多级域名识别模型的第二目标数据集的方法。
146.s702、获取多个初始域名数据集。
147.在根据目标数据集训练初始域名识别模型之前,需要获取每个应用访问的一个或者多个域名,作为每个应用对应的域名,目标数据集包括多个应用访问的域名的集合。具体的,网络设备获取多个初始域名数据集的方法可参照上述s602中的相关描述,在此不再赘述。
148.s704、分别对多个初始域名数据集中每个初始域名数据集的域名进行预处理,得到各个应用对应的主成因域名集。
149.对获取的多个初始域名数据集中的域名进行处理得到未知应用域名以及每个应用对应的主成因域名集的方法可以参照上述s604中的描述,在此不再赘述。
150.s706、将多个主成因域名集中的域名分为第一目标数据集与第二目标数据集。
151.本技术实施例中,在得到多个应用对应的主成因域名集之后,对上述多个应用对应的主成因域名集中的域名,提取出具有相同一级域名的域名。例如,域名“www.abc.com”、“www.game.abc.com”、“www.video.abc.com”以及“www.zone.abc.com”这四个域名均包括一级域名“abc.com”,“www.game.xy.com”、“www.map.xy.com”以及“www.cloud.xy.com”这三个域名均包括一级域名“xy.com”,在多个应用对应的主成因域名中提取出具有相同一级域名的域名,得到第二目标数据集。将多个应用对应的主成因域名中除第二目标数据集包括的域名之外的域名形成的集合,作为第一目标数据集。即第一目标数据集中的每个域名在第一目标训练集中没有与其具有相同一级域名的域名,但是第一目数据集中可以包括同一个应用对应的多个域名,第二目标数据集中的每个域名在第二目标数据集中存在与其具有相同一级域名的域名。
152.在得到第二目标数据集之后,提取第二目标数据集中每个域名所包括的一级域名关键字,得到域名关键字集合。例如,第二目标数据集中的域名,“www.abc.com”、“www.game.abc.com”、“www.video.abc.com”以及“www.zone.abc.com”这四个域名均包括
一级域名“abc.com”,则提取一级域名关键字“abc”添加至域名关键字集合中。
153.s708、对第一目标数据集与第二目标数据集中的每个应用对应的主成因域名的数量进行平衡处理。
154.本技术实施例中,分别对第一目标数据集与第二目标数据集中每个应用对应的主成因域名的数量进行平衡处理,对每个应用对应的主成因域名的数量进行平衡处理的方法可参照上述s606中的描述,在此不再赘述。
155.s710、确定未知应用对应的第一未知应用域名集与第二未知应用域名集。
156.在根据上述s704中的方法得到未知应用域名之后,根据上述s706中相同的方法,将未知应用域名分成第一子集与第二子集,其中,第一子集中的每个域名在第一子集中没有与其具有相同一级域名的域名,第二子集中的每个域名在第二子集中有与其具有相同一级域名的域名。然后根据上述s608中的方法对每个子集中的未知域名数据集的数量进行平衡,将每个子集中未知应用域名的数量增加或者缩减至平衡阈值。将进行数量平衡之后的第一子集中的域名添加至上述第一目标数据集中,将进行数量平衡之后的第二子集中的域名添加至上述第二目标数据集中,从而得到用于训练一级域名识别模型的第一目标训练集以及用于训练多级域名识别模型的第二目标训练集。
157.s712、通过第一目标数据集对一级域名识别模型进行训练,得到训练好的一级域名识别模型,通过第二目标数据集对多级域名识别模型进行训练,得到训练好的多级域名识别模型。
158.将上述第一目标数据集输入至一级域名识别模型中对一级域名识别模型进行训练,得到训练好的一级域名识别模型,将上述第二目标数据集输入至多级域名识别模型中对多级域名识别模型进行训练,得到训练好的多级域名识别模型。
159.可以理解,上述一级域名识别模型和多级域名识别模型可以是同一种机器学习模型,也可以是不同的机器学习模型,本技术实施例不做具体限制。
160.将目标数据集中的域名分成第一目标数据集和第二目标数据集,用第一目标数据集训练一级域名识别模型,用第二目标数据集训练多级域名识别模型,相比于用目标数据集训练一个上述初始域名识别模型,用于训练各个模型的数据量更少,训练速度更快,训练好的模型也更小,能够提高训练和识别的效率。
161.需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
162.本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
163.上文中结合图1至图7详细描述了根据本技术实施例所提供的数据转发方法,下面描述配合实施本技术实施例的相关装置与设备。如图1至图4所示,本技术提供一种数据识别系统,该系统用于执行上述方法实施例中的s502至s508、s602至s610或s702至s712。
164.如图8所示,图8是本技术实施例提供的一种数据转发装置的结构示意图,该装置用于执行上述方法实施例中的数据识别方法,本技术实施例对该装置的功能模块的划分不
做限定,下面示例性的提供一种功能模块的划分,该数据识别装置700包括:接收单元710、处理单元720、发送单元730以及训练单元740,其中,
165.接收单元710用于执行上述s502中接收报文。
166.处理单元720用于执行上述s504至s508中的根据目的地址或待识别域名识别报文所属的目标应用的方法,具体可参见上述方法实施例中s504至s508中的详细描述,在此不再赘述。
167.发送单元730用于在处理单元720确定报文所述的目标应用后,根据目标应用所对应的转发规则,转发上述报文。
168.训练单元740用于执行上述方法实施例中图6中s602至s610中对初始域名数据集进行数据预处理以及训练初始域名识别模型的方法,或者上述方法实施例中图7中s702至s712中对初始域名数据集进行数据预处理以及训练一级域名识别模型与二级域名识别模型的方法,在此不再赘述。
169.上述四个单元之间互相可以通过通信通路进行数据传输,应理解,装置700包括的各模块可以为软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。
170.参见图9,图9是本技术实施例提供的一种网络设备的结构示意图。该网络设备800包括处理器810、通信接口820以及存储器830。处理器810、通信接口820以及存储器830通过总线840相互连接,其中,
171.所述处理器810用于实现上述处理单元720和训练单元740执行的操作,处理器810执行各种操作的具体实现可参照上述方法实施例中的具体操作。在此不再赘述。
172.处理器810可以有多种具体实现形式,例如处理器810可以为中央处理器(central processing unit,cpu),处理器810可以由cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。处理器810也可以单独采用内置处理逻辑的逻辑器件来实现,例如fpga或数字信号处理器(digital signal processor,dsp)等。
173.通信接口820可以用于与其他模块或设备进行通信,可以是以太接口、局域互联网络(local interconnect network,lin)等。
174.本技术实施例中通信接口820执行上述接收单元710和发送单元720实现的操作,例如,接收报文、转发报文等。具体的,通信接口820执行的动作可以参照上述方法实施例中接收或者发送的动作,在此不再赘述。
175.存储器830可以是非易失性存储器,例如,只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。存储器830也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。
176.存储器830也可用于存储指令和数据,以便于处理器810调用存储器830中存储的指令实现上述装置700各个模块的功能,此外,网络设备800可能包含相比于图9展示的更多
或者更少的组件,或者有不同的组件配置方式。
177.总线840可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线840可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
178.具体的,处理器810用于执行所述存储器中的程序,促使网络设备执行如下处理:
179.网络设备接收报文,若网络设备根据报文的目的地址获取到报文对应的目标应用,则根据目标应用所对应的转发规则,转发报文;若网络设备根据目的地址无法获取报文对应的目标应用;则获取报文的目的地址对应的域名,并根据目的地址对应的域名获取报文对应的目标应用;然后根据目标应用所对应的转发规则,转发报文。
180.处理器810实现上述转发操作的具体实现过程请参考图5所示实施例中的步骤s502至s508的详细描述,这里不再赘述。
181.处理器810还能够执行所述存储器中的程序,促使网络设备执行如下处理:
182.获取多个初始域名数据集,所述多个初始域名数据集中的每个初始域名数据集包括一个应用访问的多个域名以及每个域名对应的流量;
183.对目标初始域名数据集中的多个域名进行聚类,得到所述目标初始域名数据集对应的多个域名子集,所述多个域名子集中的每个域名子集包括一个或者多个域名,所述目标初始域名数据集为所述多个初始域名数据集中的任意一个;
184.获取目标域名子集对应的第一流量以及所述目标初始域名数据集对应的第二流量,所述第一流量包括所述目标域名子集中一个或者多个域名对应的流量的总和,所述第二流量包括所述目标初始域名数据集中多个域名对应的流量的总和,所述目标域名子集为所述多个域名子集中的任意一个;
185.确定所述第一流量与所述第二流量的比值,在所述比值大于或等于第一阈值时,将所述目标域名子集中的域名添加至目标数据集,所述目标数据集包括多个应用对应的域名以及每个域名对应的应用的应用标识,所述目标数据集中的每个域名对应一个应用标识,所述多个应用中的每个应用对应一个或者多个域名;
186.根据所述目标数据集对初始域名识别模型进行训练,得到所述目标域名识别模型。
187.处理器810实现上述训练操作的具体实现过程请参考图6所示实施例中的步骤s602至s610的详细描述或者图7所示实施例中步骤s702至s712的详细描述,这里不再赘述。
188.此外,在上述图8所示实施例中的各单元,如获取单元710、处理单元720以及训练单元730为软件模块的情况下,所述存储器802中存储有这些软件模块,处理器801执行这些软件模块从而实现上述图5至图7所示实施例中的网络设备的功能和步骤。
189.如图1至图3所示,由于数据转发系统的各个部分可能在不同环境上的多台计算设备上运行。因此,本技术还提出了一种计算设备系统。如图10所示,该计算设备系统包括多个计算设备900,分别执行上述图1中网络设备100和训练设备200执行的操作,或者分别执行上述图3中训练设备200、网络设备300以及控制器400各个设备执行的操作。每个计算设备900包括总线910、处理器920、通信接口930和存储器940。处理器920、通信接口930和存储器940之间通过总线910通信。计算设备900之间通过通信网络建立通信通路。其中,处理器
920可以为cpu。存储器940可以包括易失性存储器,例如ram。存储器940还可以包括非易失性存储器,例如rom等。存储器940中存储有可执行代码,处理器920执行该可执行代码以执行数字识别系统部分方法。
190.本技术实施例还提供一种非瞬态计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,可以实现上述方法实施例执行的方法步骤,所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中的具体操作,在此不再赘述。
191.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
192.在本技术所提供的几个实施例中,应该理解到,以上所描述的设备的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
193.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
194.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
195.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
196.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1