一种网络流量的分流方法及装置与流程

文档序号:17923481发布日期:2019-06-15 00:15阅读:440来源:国知局
一种网络流量的分流方法及装置与流程

本申请涉及网络管理技术领域,尤其涉及一种网络流量的分流方法及装置。



背景技术:

随着互联网技术的发展,越来越多的服务器接入网络,使得互联网中需要传输的数据量,即网络流量越来越大。这种情况下,为了防止网络发生拥塞,现有技术中一般通过网络流量分流方法,将不同的网络流量分流到不同的网络链路中。通常,网络流量分流方法是指通过分类技术,识别网络流量所对应的应用,进而基于应用的识别结果,将对应不同应用的网络流量分流至该网络流量所对应的应用的网络链路中。

常见的网络流量分类技术为报文深度识别(deeppacketinspection,dpi)技术,dpi技术是一种基于网络流量中的应用层协议,对网络流量所对应的应用进行识别的技术。在使用dpi技术对网络流量进行识别时,能够根据网络流量所包括的报文流的第一个报文,识别出该网络流量所对应的应用,进而可以及时的对该网络流量进行分流。

但是,申请人在本发明的研究过程中发现,当网络流量为传输控制协议(transmissioncontrolprotocol,tcp)流量时,tcp流量的第一个报文为syn(synchronizesequencenumbers,syn)报文,syn报文不包含任何应用层的相关数据,然而dpi技术是基于应用层协议对网络流量进行识别的技术,因此dpi技术无法针对tcp流量的第一个报文,识别出该网络流量对应的应用,并及时的进行分流。所以,现有技术中提供的网络流量分流方法,无法及时对tcp流量进行分流。



技术实现要素:

为了解决现有的网络流量分流方法,无法及时对tcp流量进行分流的问题,本申请通过以下实施例公开一种网络流量的分流方法及装置。

本申请第一方面,公开一种网络流量的分流方法,包括:

获取网络中的多个应用;

获取每一个所述应用的第一域名,所述第一域名为每一个所述应用对应的应用域名;

为每一个所述应用分配应用账号,所述应用账号用于区分所述应用,不同应用的应用账号不同;

根据所述第一域名以及所述应用账号,建立所述第一域名与所述应用账号之间的对应关系;

获取预先经过分流的网络流量,并获取所述预先经过分流的网络流量的第二域名以及第一ip地址,其中,所述第二域名为每一个所述预先经过分流的网络流量对应的应用域名,所述第一ip地址为每一个所述预先经过分流的网络流量对应的目的ip地址;

判断是否存在与所述第二域名相同的第一域名,当存在与所述第二域名相同的第一域名时,则根据所述第一域名与所述应用账号之间的对应关系,确定与所述第二域名相同的第一域名所对应的应用账号为命中应用账号,以及确定所述第二域名对应的所述第一ip地址为命中ip地址,并将所述命中应用账号与所述命中ip地址的对应关系记录到缓存数据库中;

获取当前需要分流的网络流量的目标ip地址,所述目标ip地址为所述当前需要分流的网络流量对应的目的ip地址;

根据所述目标ip地址,查找所述缓存数据库,若所述缓存数据库中存在与所述目标ip地址相同的命中ip地址,则根据所述命中应用账号与所述命中ip地址的对应关系,确定与所述目标ip地址相同的命中ip地址所对应的命中应用账号为识别应用账号;

根据所述识别应用账号,识别出所述当前需要分流的网络流量所对应的应用,并根据识别结果,对所述当前需要分流的网络流量进行分流。

可选的,所述为每一个所述应用分配应用账号,包括:

根据所述应用以及所述第一域名,建立对应列表,所述对应列表中,每一个所述应用与每一个所述第一域名相对应;

为所述对应列表中的每一个所述应用分配应用账号。

可选的,所述获取预先经过分流的网络流量,包括:

在网关上安装监听装置;

通过所述监听装置,获取所述网关中预先经过分流的网络流量。

可选的,所述获取所述预先经过分流的网络流量的第二域名以及第一ip地址,包括:

根据所述预先经过分流的网络流量,提取所述预先经过分流的网络流量中的dns响应报文;

根据所述dns响应报文,对所述dns响应报文进行解析,获取所述dns响应报文中的a类型报文;

根据所述a类型报文,获取所述预先经过分流的网络流量的第二域名以及所述第一ip地址。

本申请第二方面,公开一种网络流量的分流装置,包括:

第一获取模块,用于获取网络中的多个应用;

第二获取模块,用于获取每一个所述应用的第一域名,所述第一域名为每一个所述应用对应的应用域名;

应用账号分配模块,用于为每一个所述应用分配应用账号,所述应用账号用于区分所述应用,不同应用的应用账号不同;

关系建立模块,用于根据所述第一域名以及所述应用账号,建立所述第一域名与所述应用账号之间的对应关系;

第三获取模块,用于获取预先经过分流的网络流量,并获取所述预先经过分流的网络流量的第二域名以及第一ip地址,其中,所述第二域名为每一个所述预先经过分流的网络流量对应的应用域名,所述第一ip地址为每一个所述预先经过分流的网络流量对应的目的ip地址;

数据库建立模块,用于判断是否存在与所述第二域名相同的第一域名,当存在与所述第二域名相同的第一域名时,则根据所述第一域名与所述应用账号之间的对应关系,确定与所述第二域名相同的第一域名所对应的应用账号为命中应用账号,以及确定所述第二域名对应的所述第一ip地址为命中ip地址,并将所述命中应用账号与所述命中ip地址的对应关系记录到缓存数据库中;

第四获取模块,用于获取当前需要分流的网络流量的目标ip地址,所述目标ip地址为所述当前需要分流的网络流量对应的目的ip地址;

查找模块,用于根据所述目标ip地址,查找所述缓存数据库,若所述缓存数据库中存在与所述目标ip地址相同的命中ip地址,则根据所述命中应用账号与所述命中ip地址的对应关系,确定与所述目标ip地址相同的命中ip地址所对应的命中应用账号为识别应用账号;

识别分流模块,用于根据所述识别应用账号,识别出所述当前需要分流的网络流量所对应的应用,并根据识别结果,对所述当前需要分流的网络流量进行分流。

可选的,所述应用账号分配模块包括:

对应列表建立单元,用于根据所述应用以及所述第一域名,建立对应列表,所述对应列表中,每一个所述应用与每一个所述第一域名相对应;

账号分配单元,用于为所述对应列表中的每一个所述应用分配应用账号。

可选的,所述第三获取模块包括:

监听单元,用于在网关上安装监听装置;

流量获取单元,用于通过所述监听装置,获取所述网关中预先经过分流的网络流量。

可选的,所述第三获取模块还包括:

报文提取单元,用于根据所述预先经过分流的网络流量,提取所述预先经过分流的网络流量中的dns响应报文;

报文解析单元,用于根据所述dns响应报文,对所述dns响应报文进行解析,获取所述dns响应报文中的a类型报文;

域名获取单元,用于根据所述a类型报文,获取所述预先经过分流的网络流量的第二域名以及所述第一ip地址。

本申请公开了一种网络流量的分流方法及装置,该方法中,一方面,通过获取网络中的多个应用,获取每一个应用的第一域名,以及为每一个应用分配应用账号,建立第一域名与应用账号之间的对应关系。另一方面,获取预先经过分流的网络流量的第二域名与第一ip地址。接着,通过判断是否存在与第二域名相同的第一域名,使得第一域名对应的应用账号与第二域名对应的第一ip地址之间建立联系,将与第二域名相同的第一域名所对应的应用账号确定为命中应用账号,以及将第二域名对应的第一ip地址确定为命中ip地址,并将命中应用账号与命中ip地址的对应关系记录到缓存数据库中。当需要对网络流量进行分流时,只需获取该网络流量的目标ip地址,在所述缓存数据库中查找与所述目标ip地址相同的命中ip地址,若查找到,则根据该命中ip地址对应的命中应用账号,对该网络流量进行识别以及分流。实际应用中,由于根据tcp流量的第一个报文便能够获取目标ip地址,因此针对tcp流量,利用本申请公开的方法可以对其进行及时的分流。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种网络流量的分流方法的工作流程示意图;

图2为本申请实施例公开的一种网络流量的分流方法中,为每一个所示应用分配应用账号的工作流程示意图;

图3为本申请实施例公开的一种网络流量的分流方法中,获取预先经过分流的网络流量的工作流程示意图;

图4为本申请实施例公开的一种网络流量的分流方法中,获取预先经过分流的网络流量的第二域名以及第一ip地址的工作流程示意图;

图5为本申请实施例公开的一种网络流量的分流装置的结构示意图。

具体实施方式

为了解决现有的网络流量分流方法,无法及时对tcp流量进行分流的问题,本申请通过以下实施例公开一种网络流量的分流方法及装置。

本申请第一实施例公开一种网络流量的分流方法,参见图1所示的工作流程示意图,该方法包括:

步骤s110,获取网络中的多个应用。

步骤s120,获取每一个所述应用的第一域名,所述第一域名为每一个所述应用对应的应用域名。

在实际应用中,可以通过爬虫技术抓取每个应用下的所有域名,来获取应用的第一域名,以保证第一域名的准确性以及全面性。

步骤s130,为每一个所述应用分配应用账号,所述应用账号用于区分所述应用,不同应用的应用账号不同。

步骤s140,根据所述第一域名以及所述应用账号,建立所述第一域名与所述应用账号之间的对应关系。

在一种实现方式中,可以通过ac(aho-corasick,ac)自动机算法将所有应用的第一域名进行编译,生成多模匹配状态机。所述多模匹配状态机包含了所有第一域名与应用账号之间的对应关系,也就是说,在多模匹配状态机中,每个应用的第一域名和应用账号都一一对应。其中,模式匹配是数据结构中字符串的一种基本运算,具体要求为给定一个子串,在某个字符串中要找到与该子串相同的所有子串。模式匹配包括单模匹配和多模匹配,在本申请实施例公开的一种实现方式中,为了提高匹配性能,按照多模匹配的规则,通过生成多模匹配状态机,进而建立第一域名与应用账号之间的对应关系。

步骤s150,获取预先经过分流的网络流量,并获取所述预先经过分流的网络流量的第二域名以及第一ip地址,其中,所述第二域名为每一个所述预先经过分流的网络流量对应的应用域名,所述第一ip地址为每一个所述预先经过分流的网络流量对应的目的ip地址。

步骤s160,判断是否存在与所述第二域名相同的第一域名,当存在与所述第二域名相同的第一域名时,则根据所述第一域名与所述应用账号之间的对应关系,确定与所述第二域名相同的第一域名所对应的应用账号为命中应用账号,以及确定所述第二域名对应的所述第一ip地址为命中ip地址,并将所述命中应用账号与所述命中ip地址的对应关系记录到缓存数据库中。

在一种实现方式中,可以通过采用上文所述的多模匹配状态机与第二域名进行匹配的方法,来判断是否存在与所述第二域名相同的第一域名。具体的,针对某一预先经过分流的网络流量的第二域名,如果其与多模匹配状态机中的第一域名匹配中,则表示多模匹配状态机中存在与该第二域名相同的第一域名,此时,将该第一域名所对应的应用账号作为命中应用账号,将该第二域名对应的第一ip地址作为命中ip地址,通过将该命中应用账号与该命中ip地址的对应关系记录到缓存数据库中,建立该预先经过分流的网络流量的目的ip地址与应用账号之间的映射关系。

另外,为了保证缓存数据库的全面性,可以通过不断地获取网络中的应用以及预先经过分流的网络流量,形成一种学习机制,以达到扩展缓存数据库的目的。

步骤s170,获取当前需要分流的网络流量的目标ip地址,所述目标ip地址为所述当前需要分流的网络流量对应的目的ip地址。

通常,对于任何一个网络流量,包括tcp流量,其报文流的第一个报文便包含了目的ip地址。因此,根据当前需要分流的网络流量,通过其报文流的第一个报文,容易获得当前需要分流的网络流量的目标ip地址。

步骤s180,根据所述目标ip地址,查找所述缓存数据库,若所述缓存数据库中存在与所述目标ip地址相同的命中ip地址,则根据所述命中应用账号与所述命中ip地址的对应关系,确定与所述目标ip地址相同的命中ip地址所对应的命中应用账号为识别应用账号。

所述缓存数据库中存储了大量预先经过分流的网络流量的目的ip地址与应用账号之间的映射关系,在识别当前需要分流的网络流量时,通过查找缓存数据库,获取与目标ip地址相同的命中ip地址,然后根据映射关系,读取该命中ip地址对应的命中应用账号,通过将该命中应用账号赋予给当前需要分流的网络流量,能够准确进行识别以及分流。

步骤s190,根据所述识别应用账号,识别出所述当前需要分流的网络流量所对应的应用,并根据识别结果,对所述当前需要分流的网络流量进行分流。

本申请通过以上实施例公开了一种网络流量的分流方法,该方法中,一方面,通过获取网络中的多个应用,获取每一个应用的第一域名,以及为每一个应用分配应用账号,建立第一域名与应用账号之间的对应关系。另一方面,获取预先经过分流的网络流量的第二域名与第一ip地址。接着,通过判断是否存在与第二域名相同的第一域名,使得第一域名对应的应用账号与第二域名对应的第一ip地址之间建立联系,将与第二域名相同的第一域名所对应的应用账号确定为命中应用账号,以及将第二域名对应的第一ip地址确定为命中ip地址,并将命中应用账号与命中ip地址的对应关系记录到缓存数据库中。当需要对网络流量进行分流时,只需获取该网络流量的目标ip地址,在所述缓存数据库中查找与所述目标ip地址相同的命中ip地址,若查找到,则根据该命中ip地址对应的命中应用账号,对该网络流量进行识别以及分流。实际应用中,由于根据tcp流量的第一个报文便能够获取目标ip地址,因此针对tcp流量,利用本申请公开的方法可以对其进行及时的分流。

进一步的,在一种实现方式中,参见图2所示的工作流程示意图,所述为每一个所述应用分配应用账号,包括:

步骤s1301,根据所述应用以及所述第一域名,建立对应列表,所述对应列表中,每一个所述应用与每一个所述第一域名相对应。

在建立对应列表时,可以按照固定的对应格式:“应用=第一域名”,将应用和第一域名对应起来,例如“新浪=sina.com,sina.cn”或者“京东=jd.cn,jd.com”等。

步骤s1302,为所述对应列表中的每一个所述应用分配应用账号。

通过解析所述对应列表,为列表中的每一个应用分配应用账号,即为每一个应用分配id。在实际应用中,为了准确的识别不同的应用,id不可重复。具体的,可以采用为每一个应用分配唯一的序列号的方式,以达到区分以及识别不同应用的目的。

进一步的,在一种实现方式中,参见图3所示的工作流程示意图,所述获取预先经过分流的网络流量,包括:

步骤s1501,在网关上安装监听装置。

在实际应用中,监听装置可以安装在网关上,也可以安装在主机上。通过监听装置,能够获取网关中或者主机上所有经过分流的历史网络流量。

步骤s1502,通过所述监听装置,获取所述网关中预先经过分流的网络流量。

进一步的,在一种实现方式中,参见图4所示的工作流程示意图,所述获取所述预先经过分流的网络流量的第二域名以及第一ip地址,包括:

步骤s1503,根据所述预先经过分流的网络流量,提取所述预先经过分流的网络流量中的dns响应报文。

在互联网中,每一个域名都对应一个唯一的ip地,域名服务器(domainnameserver,dns)就是用于进行域名解析的服务器,具体的,dns在接收到客户端发送的请求报文后,会根据请求报文中的域名,查询对应的ip地址,然后将包含ip地址的dns响应报文返回至客户端,使客户端能够根据ip地址找到对应的服务器。通过对所述预先经过分流的网络流量进行解析以及提取,容易获取dns响应报文。

步骤s1504,根据所述dns响应报文,对所述dns响应报文进行解析,获取所述dns响应报文中的a类型报文。

通过解析dns响应报文,能够获取dns响应报文中的a类型报文,a类型报文是指dns的一种查询类型,该查询类型为:由域名获得对应的ip地址。

步骤s1505,根据所述a类型报文,获取所述预先经过分流的网络流量的第二域名以及所述第一ip地址。

由于a类型报文所代表的查询类型为由域名获得对应的ip地址,因此通过a类型报文,容易获得预先经过分流的网络流量对应的应用域名以及目的ip地址。

上述内容对本申请的方法实施例进行了介绍,下面通过装置实施例对一种网络流量分流装置进行描述。对于装置实施例中未披露的细节,请参照本申请方法实施例。

本申请第二实施例公开一种网络流量的分流装置,参见图5所示的结构示意图,该装置包括:

第一获取模块10,用于获取网络中的多个应用。

第二获取模块20,用于获取每一个所述应用的第一域名,所述第一域名为每一个所述应用对应的应用域名。

应用账号分配模块30,用于为每一个所述应用分配应用账号,所述应用账号用于区分所述应用,不同应用的应用账号不同。

关系建立模块40,用于根据所述第一域名以及所述应用账号,建立所述第一域名与所述应用账号之间的对应关系。

第三获取模块50,用于获取预先经过分流的网络流量,并获取所述预先经过分流的网络流量的第二域名以及第一ip地址,其中,所述第二域名为每一个所述预先经过分流的网络流量对应的应用域名,所述第一ip地址为每一个所述预先经过分流的网络流量对应的目的ip地址。

数据库建立模块60,用于判断是否存在与所述第二域名相同的第一域名,当存在与所述第二域名相同的第一域名时,则根据所述第一域名与所述应用账号之间的对应关系,确定与所述第二域名相同的第一域名所对应的应用账号为命中应用账号,以及确定所述第二域名对应的所述第一ip地址为命中ip地址,并将所述命中应用账号与所述命中ip地址的对应关系记录到缓存数据库中。

第四获取模块70,用于获取当前需要分流的网络流量的目标ip地址,所述目标ip地址为所述当前需要分流的网络流量对应的目的ip地址。

查找模块80,用于根据所述目标ip地址,查找所述缓存数据库,若所述缓存数据库中存在与所述目标ip地址相同的命中ip地址,则根据所述命中应用账号与所述命中ip地址的对应关系,确定与所述目标ip地址相同的命中ip地址所对应的命中应用账号为识别应用账号。

识别分流模块90,用于根据所述识别应用账号,识别出所述当前需要分流的网络流量所对应的应用,并根据识别结果,对所述当前需要分流的网络流量进行分流。

进一步的,所述应用账号分配模块30包括:

对应列表建立单元,用于根据所述应用以及所述第一域名,建立对应列表,所述对应列表中,每一个所述应用与每一个所述第一域名相对应。

账号分配单元,用于为所述对应列表中的每一个所述应用分配应用账号。

进一步的,所述第三获取模块包括:

监听单元,用于在网关上安装监听装置。

流量获取单元,用于通过所述监听装置,获取所述网关中预先经过分流的网络流量。

进一步的,所述第三获取模块还包括:

报文提取单元,用于根据所述预先经过分流的网络流量,提取所述预先经过分流的网络流量中的dns响应报文。

报文解析单元,用于根据所述dns响应报文,对所述dns响应报文进行解析,获取所述dns响应报文中的a类型报文。

域名获取单元,用于根据所述a类型报文,获取所述预先经过分流的网络流量的第二域名以及所述第一ip地址。

具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的建立本地网络连接的方法的各实施例中的部分或全部步骤。所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,简称rom)或随机存储记忆体(randomaccessmemory,简称ram)等。

此外,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述实施例所述的建立本地网络连接的方法的部分或全部步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。

以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1