一种流量监测装置及方法与流程

文档序号:12789317阅读:489来源:国知局
一种流量监测装置及方法与流程

本发明涉及电子技术领域,尤其涉及一种流量监测装置及方法。



背景技术:

随着科学技术的不断发展,电子技术也得到了飞速的发展,电子产品的种类也越来越多,人们也享受到了科技发展带来的各种便利。现在人们可以通过各种类型的电子设备,享受随着科技发展带来的舒适生活。在电子设备接入网络的过程中,电子设备内安装的者软件会根据更新、同步等等预先的设置,自动与网络进行通信,从而从网络中获取需要的信息,以方便用户使用这些者软件。

针对电子设备集群如企业内部网、政府内部网等内部网络而言,这些内部网络中的电子设备一般通过一个或者多个服务器等网络转发设备与外部网络进行通信,但是,随着对信息安全和隐私的关注度的提高,服务器等网络转发设备会对网络内的电子设备的流量监测,但是,服务器等网络转发设备对网络内的电子设备的进行流量监测时细分程度较低,例如仅仅能够显示每个电子设备当前的下载速率、上传速率等等,没有详细的信息供监测人员分析。

因此,现有技术中流量监测技术存在细分程度较低的技术问题。



技术实现要素:

本发明实施例通过提供一种流量监测装置及方法,用以解决现有技术中的流量监测技术存在的细分程度较低的技术问题。

本发明实施例第一方面提供了一种流量监测装置,包括:

监测单元,用于监测针对数据终端的数据流,所述数据流包括数据终端发 送的上行数据包,以及网络转发设备将要向所述数据终端发送的下行数据包;

识别单元,用于通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;

显示单元,用于显示所述协议识别结果以及所述下行数据包的流量。

可选地,所述装置还包括拼接单元,所述拼接单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。

可选地,所述拼接单元具体用于将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;

或者,

若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

可选地,所述拼接单元具体用于依次排列所述上行数据包的第一字节、所述下行数据包的第一字节、所述上行数据包的第N字节和所述下行数据包第N字节;N为大于1的自然数,且所述第一载荷数据流的字节数小于等于1000,大于等于200。

可选地,所述装置还包括模型建立单元,所述模型建立单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议, 获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。

可选地,所述模型建立单元具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;

将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。

可选地,所述模型建立单元具体用于针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;

若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;

或者,

若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得所述第一数据。

可选地,所述模型建立单元具体还用于在针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据之后,判断当前协议对应的第二数据的字节数是否符合预设字节数范围;若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。

可选地,所述识别单元具体用于采用深度学习模型对所述载荷数据流进行 协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。

本发明实施例第二方面提供了一种流量监测方法,所述方法包括:

监测针对数据终端的数据流,所述数据流包括数据终端发送的上行数据包,以及网络转发设备将要向所述数据终端发送的下行数据包;

通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;

显示所述协议识别结果以及所述下行数据包的流量。

可选地,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。

可选地,所述对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流,具体包括:

将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;

或者,

若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

可选地,所述将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,具体包括

依次排列所述上行数据包的第一字节、所述下行数据包的第一字节、所述 上行数据包的第N字节和所述下行数据包第N字节;N为大于1的自然数,且所述第一载荷数据流的字节数小于等于1000,大于等于200。

可选地,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:

采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。

可选地,所述采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数,具体包括:

对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;

将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。

可选地,所述对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据,具体包括:

针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;

若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;

或者,

若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除 以255,获得所述第一数据。

可选地,在所述针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据之后,所述方法还包括:

判断当前协议对应的第二数据的字节数是否符合预设字节数范围;

若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;

若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。

可选地,所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,具体包括:

采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;

针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

由于本发明实施例提供的流量监测方法通过对数据终端的数据流的协议识别并显示结果,从而便于监测人员监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息,与现有技术中流量监测技术对网络内的电子设备的进行流量监测时细分程度较低相比,详细程度大大提高,从而解决了现有技术中的流量监测技术存在的细分程度较低的技术问题。

附图说明

图1为本发明实施例提供的流量监测方法的流程示意图图;

图2为本发明一实施例提供的流量监测方法的流程示意图;

图3为本发明一实施例提供的流量监测方法的流程示意图;

图4为本发明一实施例提供的流量监测装置的结构示意图;

图5为本发明另一实施例提供的识别单元的结构示意图;

图6为本发明一实施例中使用的网络结构的示意图。

具体实施方式

本发明实施例通过提供一种流量监测装置及方法,用以解决现有技术中的流量监测技术存在的细分程度较低的技术问题。

在实际应用中中,发明本实施例提供的流量监测装置及方法可以应用于网络转发设备上,网络转发设备具体可以是服务器、路由器或交换机等等,数据终端具体可以是手机、平板电脑、台式电脑或笔记本电脑等等,在此不做限制。

本发明实施例提供了一种流量监测方法,请参考图1,图1为本发明实施例提供的流量控制方法的流程示意图,如图1所示,该方法包括:

101:监测针对数据终端的数据流,数据流包括数据终端发送的上行数据包,以及网络转发设备将要向数据终端发送的下行数据包;应说明的是,步骤101中数据流通常可为采用统一会话的数据流。

当然,如果数据流不是同一会话的数据流,则需要预先识别出同一会话的待识别协议的数据流,进而针对同一会话的数据流执行本发明实施例中的协议识别方法。

102:通过深度学习模型对数据流的协议进行识别,获得对数据流的协议识别结果,深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。

例如,可采用已知的训练数据流及该训练数据流对应的协议,以及结合深度学习算法可获取用于识别网络数据的深度学习模型及与深度学习模型对应 的模型参数;这些已知的训练数据流可包括已知多种协议标签的训练数据,多种协议例如可以包括SMTP(英文:Simple Mail Transfer Protocol;中文:简单邮件传输协议)、SSL(英文:Secure Sockets Layer;中文:安全套接层)和TLS(英文:Transport Layer Security;中文:传输层安全)、UDP(英文:User Datagram Protocol;中文:用户数据包协议)等等。

在本实施例中,基于深度学习技术的深度学习算法可自动识别网络数据流的协议,同时可以实现自动学习有用的特征进行后续的数据流的协议识别,无需人为筛选特征,进而减少了人力成本,同时深度学习算法还可以保证数据流的协议识别的准确率。

103:显示协议识别结果以及下行数据包的流量。

步骤103中显示的协议识别结果包括一个数据终端与外部网络进行通信时使用的多个协议,这样,根据显示的协议识别结果,监测人员就能够监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息。

由此可以看出,由于本发明实施例提供的流量监测方法通过对数据终端的数据流的协议识别并显示结果,从而便于监测人员监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息,与现有技术中流量监测技术对网络内的电子设备的进行流量监测时细分程度较低相比,详细程度大大提高,从而解决了现有技术中的流量监测技术存在的细分程度较低的技术问题。

图2示出了本发明一实施例提供的流量监测方法的流程示意图,如图2所示,本实施例的流量监测方法包括下述步骤。

201、监测针对数据终端的数据流,数据流包括数据终端发送的上行数据包,以及网络转发设备将要向数据终端发送的下行数据包;

202、对上行数据包和下行数据包进行拼接,并进行格式转换,获得格式 转换后的载荷数据流。

具体来讲,可以是将上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

当然,在其他实施例中,若第一载荷数据流的数据格式为10进制,则直接将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

在本实施例中,举例来说,第一载荷数据流中的字节拼接方式可为:依次排列的上行数据包的第一字节、下行数据包的第一字节、上行数据包的第N字节和下行数据包第N字节;其中,N为大于1的自然数,且第一载荷数据流的字节数小于等于1000大于等于200。

应说明的是,本步骤中是将步骤201中属于同一会话的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,进而获得第一载荷数据流。

203、通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别,获得对数据流的协议识别结果,深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。

举例来说,步骤203可具体包括:采用深度学习模型对格式转换后的载荷数据流进行协议识别,获得数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的5数据的协议,获得数据的协议识别结果。

本实施例中使用深度学习技术获取深度学习模型,进而实现自动识别协议。同时深度学习模型还能够实现自动学习有用的特征,深度网络中每一层神经元的激活值都是自动学习得到的特征;由此,本实施例的协议识别方法识别数据流的协议准确率高,同时可降低人工工作量,节省了人力和时间。

204、显示协议识别结果以及下行数据包的流量。

步骤204中显示的协议识别结果可以包括一个数据终端与外部网络进行通信时使用的多个协议,这样,根据显示的协议识别结果,监测人员就能够监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息。

由此可以看出,由于本发明实施例提供的流量监测方法通过对数据终端的数据流的协议识别并显示结果,从而便于监测人员监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息,与现有技术中流量监测技术对网络内的电子设备的进行流量监测时细分程度较低相比,详细程度大大提高,从而解决了现有技术中的流量监测技术存在的细分程度较低的技术问题。

图3示出了本发明一实施例提供的据终端中流量控制的方法的流程示意图,图3所示出的协议识别方法与图2所示的方法的区别在于,在步骤201之前,协议识别方法还包括下述的步骤200,如图3所示。

200、采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;已知的训练数据流包括已知多种协议标签的训练数据。

在本实施例中,步骤200可位于步骤201之前,在其他实施例中,步骤200只要在步骤203之前实现即可,不一定限定在步骤201之前,可根据实际需要调整。

另外,需要说明的是,上述图3中所示的步骤200还可包括附图中未示出的子步骤2001至2004:

2001、对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据。

举例来说,在步骤2001中,针对每一协议的训练数据,可将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数 在第二预设范围内的第二数据;

例如,按照上行1+下行1+上行2+下行2的方式对训练数据进行拼接。

另外,若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得第一数据;或者,若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得第一数据。

也就是说,对于10进制的第二数据中的每一字节对应的数值除以255,例如:F1E3->241227->0.94510.8902。

需要说明的是,对第二数据进行格式转换之前,为保证每一协议对应的第二数据的样本数符合要求,还需要对未进行格式转换的第二数据进行下述操作:

第一、判断当前协议对应的第二数据的字节数是否符合预设字节数范围;

第二、若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;

第三、若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。

由此,可实现每一协议对应的第二数据的字节数在预设字节数范围内,可较好保证训练数据的准确,以及最后获取的深度学习模型对协议识别的准确率。

2002、将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

2003、采用深度神经网络算法/栈式自编码算法处理向量矩阵,获得深度学习模型及模型参数。

为此,本实施例中,使用深度学习获得的深度学习模型可实现自动识别网络数据流的协议;同时能够实现自动学习有用的特征,进而提高了协议识别的准确率高和识别效率。

后续的步骤如201、202、203和204在图2所示的实施例中已经进行了详细的介绍,在此就不再赘述了。

图4为本发明一实施例提供的流量监测装置的结构示意图,如图4所示,本实施例的流量监测装置包括:

监测单元401,用于监测数据终端中待传输的数据流;数据流包括上行数据包和下行数据包;

识别单元402,用于通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别,获得对数据流的协议识别结果,深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;

显示单元403,用于显示协议识别结果。

在本实施例的一种实现方式中,装置还包括拼接单元404,拼接单元404用于在识别单元402通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别之前,对上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。

在本实施例的一种实现方式中,拼接单元404具体用于将上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;

或者,

若第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

在本实施例的一种实现方式中,拼接单元404具体用于依次排列上行数据包的第一字节、下行数据包的第一字节、上行数据包的第N字节和下行数据包 第N字节;N为大于1的自然数,且第一载荷数据流的字节数小于等于1000,大于等于200。

在本实施例的一种实现方式中,装置还包括模型建立单元405,模型建立单元405用于在识别单元402通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;已知的训练数据流包括已知多种协议标签的训练数据。

在本实施例的一种实现方式中,模型建立单元405具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;

将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

采用深度神经网络算法处理向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理向量矩阵,获得深度学习模型及模型参数。

在本实施例的一种实现方式中,模型建立单元405具体用于针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;

若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得第一数据;

或者,

若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得第一数据。

在本实施例的一种实现方式中,模型建立单元405具体还用于在针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据之后,判断当前协议对应的第二数据的字节数是否符合预设字节数范围;若当前协议的第二数 据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。

在本实施例的一种实现方式中,识别单元402具体用于采用深度学习模型对载荷数据流进行协议识别,获得数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得协议识别结果。

图5为本发明另一实施例提供的识别单元402的结构示意图,如图5所示,本实施例的识别单元402包括:训练数据关联模块51、训练数据抽样模块52、训练数据变换模块53、深度学习模块54、识别数据关联模块55、识别数据变换模块56、协议识别模块57;其中,训练数据关联模块51用于接收用于进行训练深度学习模型的TCP网络数据流和该TCP网络数据流的协议标签,该TCP网络数据流包括多种协议标签的上行数据包和下行数据包;应说明的是,本实施例中的训练数据流为TCP网络数据流,相应地,前述实施例中的训练数据流均可为TCP网络数据流。

该处训练数据关联模块51对接收的TCP网络数据流中同一协议的上行数据包和下行数据包拼接在一起,获得所有协议拼接后的TCP载荷数据流;例如,拼接方式:上行1+下行1+上行2+下行2+上行n+下行n,直至载荷满足长度限制L个字节,n取大于2的自然数;并输出拼接后的TCP载荷数据流和对应的协议标签。

可理解的是,该处训练数据关联模块51在针对TCP网络数据流中同一协议的上行数据包和下行数据包进行拼接之前,判断上行数据包和下行数据包是不是属于同一会话的TCP网络数据流,如果不是,则可先识别出同一会话的上行数据包和下行数据包,进而针对同一会话的且属于同一协议的上行数据包和下行数据包进行拼接。如果是同一会话的TCP网络数据流,则直接拼接同 一协议的上行数据包和下行数据包。

举例来说,可根据数据包携带的IP/PORT4元组以及TCP包头中的sequence和ack值,可以确定数据包是否属于同一个会话的TCP网络数据流。

需要说明的是,上述L可以根据实际需要设定,通常取200~1000之内(包括200或1000)的正数。由于在200~1000内,L取值越大,最终协议识别系统识别的数据流的协议的准确率越高。

由于当前拼接后的TCP载荷数据流的长度小于L个字节,且TCP载荷数据流的数据格式为16进制。

为了解决TCP网络数据流中对每种协议对应的数据样本量不平衡的问题,采用训练数据抽样模块52对TCP网络数据流进行重抽样,具体如下。

本实施例中的训练数据抽样模块52连接训练数据关联模块51,接收训练数据关联模块51输出的TCP载荷数据流以及TCP载荷数据流对应的协议标签;该训练数据抽样模块52用于判断预先设定要训练的数据样本总量M(即所有协议的TCP载荷数据流的总字节数)和每一协议对应的样本量mi(Σmi=M,),该处的样本量即为每一协议的TCP载荷数据流的字节数。

接着,对大于mi的每一协议的TCP载荷数据流进行欠抽样,对小于mi的每一协议的TCP载荷数据流进行过抽样,进而重新获得满足样本总量M的所有协议的TCP载荷数据流。由此,该训练数据抽样模块52输出抽样后满足样本总量M的TCP载荷数据流以及对应的协议标签。

对于欠抽样,举例来说,先剔除与样本平均值的偏差超过三倍标准差的样本,再进行随机抽样;对于过抽样,可复制多次该类的样本,再在复制后的样本中随机选取5%*L个字节,将其重新置为一个00-FF的16进制的该协议的TCP载荷数据流。

举例来说,假如L=1000,5%*L=50。样本1复制得到样本2,样本3……。样本1不动,样本2随机选取50个字节,每个字节置为一个随机数(这50个数不是同一个数)。样本3处理方法与样本2相同,以此类推。

进一步地,本实施例中的训练数据变换模块53连接训练数据抽样模块52,接收该训练数据抽样模块52输出的TCP载荷数据流以及对应的协议标签;

首先,针对每一协议的16进制的TCP载荷数据流,将该16进制的TCP载荷数据流转化为对应的0-255的十进制数,再对每一十进制数除以255,得到该协议的样本即[0,1]的浮点数;所有协议的16进制的TCP载荷数据流格式转换后,获得M个[0,1]的浮点数;

其次,将M个[0,1]的浮点数以矩阵形式呈现,其中一行表示一个训练样本,列表示训练样本的字节变换后的数据。以及将训练样本对应的协议标签以向量形式呈现,且与矩阵形式呈现的行对应,组成向量矩阵。其中向量形成呈现的元素从0开始递增的正数,元素的个数等于协议数。应说明的是,该训练样本的一行对应一个标签,本实施例中标签是从0开始编号的整数,如0表示http(英文:HyperText Transfer Protocol;中文:超文本传输协议),1表示ssl(英文:Secure Sockets Layer;中文:安全套接层)协议等等。可预先做一个映射列表,把协议名称转换为整数形式的标签。这里的元素是指这些整数形式的标签。

接着,输出向量矩阵。该处的向量矩阵中,每一行表示一个样本(代表一个TCP载荷数据流),如第一行是[0.1,0.5,0.3……],第二行是[0.7,0.2,0.4……],多个行向量组合在一起就形成了一个矩阵。矩阵列数等于前面提到的L(训练数据关联模块51中提及的L)。

进一步地,本实施例中的深度学习模块54连接训练数据变换模块53,接收训练数据变换模块53输出的向量矩阵,采用DNN(英文:Deep Neural Network;中文:深度神经网络)算法和/或SAE(英文:Stacked Auto-Encoder;中文:栈式自编码)算法获取深度学习模型及模型参数。

本实施例中,深度神经网络算法对应的网络结构至少大于等于4层。本实施例中模型参数可包括:网络结构、初始学习率、迭代次数,每批训练样本数等。

举例来说,现有的DNN和SAE模型都可以表示成类似图6的结构,只是训练算法不同。图6为4层网络,图6竖着为一层,网络结构表示为[6,4,3,1](当然实际中数值比这大的多)。如果是5层,就在隐藏层(hidden layer)多加一层。

网络结构[6,4,3,1]、初始学习率(浮点数)、迭代次数(自然数),每批训练样本数(自然数),这些叫做预定义参数或者输入参数。模型参数或输出参数是若干个浮点型的矩阵W1……Wn和向量b1……bn,矩阵和向量的个数n等于网络的层数,如4层就有3个W,3个b。W和b维数跟每层结点(圆圈)数有关,这个例子里,W1维数是4*6,W2维数是3*4,W3维数是1*3。b1是4维,b2是3维,b3是1维。

本实施例的深度学习模块54输出深度学习模型至协议识别模块57。

本实施例中的识别数据关联模块55用于接收网络中待识别的网络数据流,将该网络数据流中的上行数据包和下行数据包进行拼接,

例如,按照上行1+下行1+上行2+下行2+上行n+下行n,直至载荷满足长度限制L个字节,n取大于2的自然数;并输出拼接后的第一载荷数据流。

识别数据变换模块56连接识别数据关联模块55,用于接收识别数据关联模块55输出的第一载荷数据流,并将该16进制的第一载荷数据流转化为对应的0-255的十进制数,再对每一十进制数除以255,得到待识别的网络数据流的浮点数;进而,将M个[0,1]的浮点数以矩阵形式呈现,形成待识别协议的矩阵并输出。识别数据变换模块56中一行表示一个待识别协议的样本。

另外,本实施例的协议识别模块57连接识别数据变换模块56和深度学习模块54;接收深度学习模块54输出的协议识别模块,以及接收识别数据变换模块56输出的待识别协议的矩阵,采用协议识别模块对待识别协议的矩阵进行识别,确定属于哪一种协议的概率,最后输出每一条待识别的数据属于每一中协议的概率。

在本实施例中,协议识别模块57用于预测未知的TCP有效载荷数据属于 哪一种协议,并给出属于各协议的概率。

其中,上述预测的过程是用待识别的数据(如果一次识别一条数据,就是向量;如果同时识别多条就是矩阵的形式)与深度学习模块54输出的模型参数进行神经网络的正向运算。

进而,给出对于待识别的网络数据流中每一条待识别数据的预测结果。即取概率最大的协议类型作为该待识别数据的协议。

上述提及的正向运算可理解为用待识别的数据与模型参数进行的矩阵乘法、加法、sigmoid等运算。具体地,设待识别的数据为A,神经网络模型结构是4层,模型参数是W1,W2,W3,b1,b2,b3。则正向运算第一步:a1=sigmoid(W1*A+b1),第二步对前一步结果a1做相同运算:a2=sigmoid(W2*a1+b2),第三步类似:a3=sigmoid(W3*a2+b3)。一般取a3里的最大值(最大概率)对应的标签作为预测结果。每多一层就多做一步运算。

由此,上述识别单元402能够较好的识别网络数据流,以及提高了识别准确率,同时提高识别效率,降低成本,所以保证了本发明实施例提供的流量监测装置对流量进行监测时的准确性。

上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:

由于本发明实施例提供的流量监测方法通过对数据终端的数据流的协议识别并显示结果,从而便于监测人员监测到该数据终端与外部网络的数据交换,并获取到数据终端与外部网络进行连接时的详细信息,与现有技术中流量监测技术对网络内的电子设备的进行流量监测时细分程度较低相比,详细程度大大提高,从而解决了现有技术中的流量监测技术存在的细分程度较低的技术问题。

本发明实施例公开了:

A1、一种流量监测装置,其特征在于,包括:

监测单元,用于监测针对数据终端的数据流,所述数据流包括数据终端发送的上行数据包,以及网络转发设备将要向所述数据终端发送的下行数据包;

识别单元,用于通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;

显示单元,用于显示所述协议识别结果以及所述下行数据包的流量。

A2、如A1所述的装置,其特征在于,所述装置还包括拼接单元,所述拼接单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。

A3、如A2所述的装置,其特征在于,所述拼接单元具体用于将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;

或者,

若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

A4、如A3所述的装置,其特征在于,所述拼接单元具体用于依次排列所述上行数据包的第一字节、所述下行数据包的第一字节、所述上行数据包的第N字节和所述下行数据包第N字节;N为大于1的自然数,且所述第一载荷数据流的字节数小于等于1000,大于等于200。

A5、如A1-4中任一权项所述的装置,其特征在于,所述装置还包括模型建立单元,所述模型建立单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习 模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。

A6、如A5所述的装置,其特征在于,所述模型建立单元具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;

将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。

A7、如A6所述的装置,其特征在于,所述模型建立单元具体用于针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;

若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;

或者,

若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得所述第一数据。

A8、如A7所述的装置,其特征在于,所述模型建立单元具体还用于在针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据之后,判断当前协议对应的第二数据的字节数是否符合预设字节数范围;若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第 二数据。

A9、如A2所述的装置,其特征在于,所述识别单元具体用于采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。

B10、一种流量监测方法,其特征在于,所述方法包括:

监测针对数据终端的数据流,所述数据流包括数据终端发送的上行数据包,以及网络转发设备将要向所述数据终端发送的下行数据包;

通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;

显示所述协议识别结果以及所述下行数据包的流量。

B11、如B10所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。

B12、如B11所述的方法,其特征在于,所述对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流,具体包括:

将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;

若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;

或者,

若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。

B13、如B12所述的方法,其特征在于,所述将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,具体包括

依次排列所述上行数据包的第一字节、所述下行数据包的第一字节、所述上行数据包的第N字节和所述下行数据包第N字节;N为大于1的自然数,且所述第一载荷数据流的字节数小于等于1000,大于等于200。

B14、如B10-13中任一权项所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:

采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。

B15、如B14所述的方法,其特征在于,所述采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数,具体包括:

对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;

将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;

采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。

B16、如B15所述的方法,其特征在于,所述对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据,具体包括:

针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;

若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;

或者,

若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得所述第一数据。

B17、如B16所述的方法,其特征在于,在所述针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据之后,所述方法还包括:

判断当前协议对应的第二数据的字节数是否符合预设字节数范围;

若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;

若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。

B18、如B11所述的方法,其特征在于,所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,具体包括:

采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;

针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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