CN106912077A - 一种数据终端中进行流量控制的装置及方法 - Google Patents

一种数据终端中进行流量控制的装置及方法 Download PDF

Info

Publication number
CN106912077A
CN106912077A CN201510981994.4A CN201510981994A CN106912077A CN 106912077 A CN106912077 A CN 106912077A CN 201510981994 A CN201510981994 A CN 201510981994A CN 106912077 A CN106912077 A CN 106912077A
Authority
CN
China
Prior art keywords
data
agreement
deep learning
flow
learning model
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.)
Pending
Application number
CN201510981994.4A
Other languages
English (en)
Inventor
王占
王占一
刘博�
张卓
黄传明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Beijing Qianxin Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Beijing Qianxin Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Beijing Qianxin Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510981994.4A priority Critical patent/CN106912077A/zh
Publication of CN106912077A publication Critical patent/CN106912077A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据终端中流量控制的装置及方法,该装置包括获取单元,用于获取数据终端中待传输的数据流;数据流包括上行数据包和下行数据包;识别单元,用于通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别,获得对数据流的协议识别结果,深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;控制单元,用于基于协议识别结果以及预设的协议拦截列表,控制数据终端发送数据流或停止发送数据流。由于本实施例提供的方法仅需要用户去设置对协议是否拦截即可,所以用户设置一次之后即能够准确运行,与现有技术中需要用户针对每一个新安装的软件进行设置相比,操作更为简单。

Description

一种数据终端中进行流量控制的装置及方法
技术领域
本发明涉及电子技术领域,尤其涉及一种数据终端中流量控制的装置及方法。
背景技术
随着科学技术的不断发展,电子技术也得到了飞速的发展,电子产品的种类也越来越多,人们也享受到了科技发展带来的各种便利。现在人们可以通过各种类型的电子设备,享受随着科技发展带来的舒适生活。在电子设备接入网络的过程中,电子设备内安装的者软件会根据更新、同步等等预先的设置,自动与网络进行通信,从而从网络中获取需要的信息,以方便用户使用这些者软件。
随着对信息安全、个人隐私的关注度提高,人们希望能够控制电子设备与网络之间的流量,目前,流量控制技术一般为通过安全软件来控制每个应用的网络访问权限,例如,一款安全软件在安装后,向用户提供了系统中每个软件的网络访问需求,用户可以通过安全软件打开或者关闭软件的网络访问。但是,该安全软件需要根据用户针对系统中每个软件的网络访问需求做出相应的设置,电子设备每安装一个新的软件,都需要用户去设置才能够保证效果,操作较为繁琐。
因此,现有技术中流量控制技术存在操作较为繁琐的技术问题。
发明内容
本发明实施例通过提供一种数据终端中流量控制的装置及方法,用以解决现有技术中的流量控制技术存在的操作较为繁琐的技术问题。
本发明实施例第一方面提供了一种数据终端中流量控制的装置,包括:
获取单元,用于获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
识别单元,用于通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
控制单元,用于基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
可选地,所述装置还包括拼接单元,所述拼接单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
可选地,所述装置还包括模型建立单元,所述模型建立单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
可选地,所述模型建立单元具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
可选地,所述识别单元具体用于采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。
可选地,所述协议拦截列表包括允许所述数据终端发送数据的第一类协议与不允许所述数据终端发送数据的第二类协议;所述控制单元具体用于控制所述数据终端发送所述数据流中属于所述第一类协议的数据,以及控制所述数据终端停止发送所述数据流中属于所述第二类协议的数据。
本发明实施例第二方面还提供一种数据终端中流量控制的方法,所述方法包括:
获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
可选地,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
可选地,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:
采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
可选地,所述采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数,具体包括:
对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
可选地,所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,具体包括:
采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;
针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。
可选地,所述协议拦截列表包括允许所述数据终端发送数据的第一类协议与不允许所述数据终端发送数据的第二类协议;
所述基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流,具体包括:
控制所述数据终端发送所述数据流中属于所述第一类协议的数据,以及控制所述数据终端停止发送所述数据流中属于所述第二类协议的数据。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、由于本发明实施例提供的数据终端中流量控制的方法仅仅需要用户去设置对协议是否拦截即可,无论以后用户安装什么类型的软件,用户设置一次之后即能够准确运行,与现有技术中需要用户针对每一个新安装的软件进行设置相比,操作更为简单,从而解决了现有技术中的流量控制技术存在的操作较为繁琐的技术问题。
2、由于采用了通过针对数据流所采用的协议来对数据流的发送进行控制的技术方案,避免了通过安全软件控制系统内的软件发送的数据时,若某一软件在系统内的权限高于安全软件,则安全软件对该软件无能无力的尴尬情景。
附图说明
图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 DatagramProtocol;中文:用户数据包协议)等等。
在本实施例中,基于深度学习技术的深度学习算法可自动识别网络数据流的协议,同时可以实现自动学习有用的特征进行后续的数据流的协议识别,无需人为筛选特征,进而减少了人力成本,同时深度学习算法还可以保证数据流的协议识别的准确率。
103:基于协议识别结果以及预设的协议拦截列表,控制数据终端发送数据流或停止发送数据流。
步骤103中预设的协议拦截列表可以是用户预先设置的,该协议拦截列表内包含了用户希望哪些协议对应的数据流被拦截、哪些协议对应的数据流被正常发送的信息,例如,用户在某个时间段如09:00到18:00这一时间段内不希望收到即时通信软件的信息,就可以阻止该即时通讯软件对应的协议,反之则允许该即时通信软件对应的协议,这样,根据步骤102获取的协议识别结果与预设协议拦截列表,就能够控制数据终端发送步骤101中获取的数据流或者停止发送步骤101中获取的数据流。
由此可以看出,上述实施例提供的数据终端中流量控制的方法仅仅需要用户去设置对协议是否拦截即可,无论以后用户安装什么类型的软件,用户设置一次之后即能够准确运行,与现有技术中需要用户针对每一个新安装的软件进行设置相比,操作更为简单,从而解决了现有技术中的流量控制技术存在的操作较为繁琐的技术问题。
并且,由于采用了通过针对数据流所采用的协议来对数据流的发送进行控制的技术方案,避免了通过安全软件控制系统内的软件发送的数据时,若某一软件在系统内的权限高于安全软件,则安全软件对该软件无能无力的尴尬情景。
图2示出了本发明一实施例提供的数据终端中流量控制的方法的流程示意图,如图2所示,本实施例的数据终端中流量控制的方法包括下述步骤。
201、获取数据终端中待传输的数据流;数据流包括上行数据包和下行数据包;
202、对上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
具体来讲,可以是将上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;
若第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。
当然,在其他实施例中,若第一载荷数据流的数据格式为10进制,则直接将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。
在本实施例中,举例来说,第一载荷数据流中的字节拼接方式可为:依次排列的上行数据包的第一字节、下行数据包的第一字节、上行数据包的第N字节和下行数据包第N字节;其中,N为大于1的自然数,且第一载荷数据流的字节数小于等于1000大于等于200。
应说明的是,本步骤中是将步骤201中属于同一会话的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,进而获得第一载荷数据流。
203、通过深度学习模型,根据上行数据包和下行数据包对数据流的协议进行识别,获得对数据流的协议识别结果,深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。
举例来说,步骤203可具体包括:采用深度学习模型对格式转换后的载荷数据流进行协议识别,获得数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的5数据的协议,获得数据的协议识别结果。
本实施例中使用深度学习技术获取深度学习模型,进而实现自动识别协议。同时深度学习模型还能够实现自动学习有用的特征,深度网络中每一层神经元的激活值都是自动学习得到的特征;由此,本实施例的协议识别方法识别数据流的协议准确率高,同时可降低人工工作量,节省了人力和时间。
204、基于协议识别结果以及预设的协议拦截列表,控制数据终端发送数据流或停止发送数据流。
步骤204中预设的协议拦截列表可以是用户预先设置的,该协议拦截列表内包含了用户希望哪些协议对应的数据流被拦截、哪些协议对应的数据流被正常发送的信息,例如,用户在某个时间段如09:00到18:00这一时间段内不希望收到即时通信软件的信息,就可以阻止该即时通讯软件对应的协议,反之则允许该即时通信软件对应的协议,这样,根据步骤203获取的协议识别结果与预设协议拦截列表,就能够控制数据终端发送步骤201中获取的数据流或者停止发送步骤201中获取的数据流。
由此可以看出,由于本发明实施例提供的数据终端中流量控制的方法仅仅需要用户去设置对协议是否拦截即可,无论以后用户安装什么类型的软件,用户设置一次之后即能够准确运行,与现有技术中需要用户针对每一个新安装的软件进行设置相比,操作更为简单,从而解决了现有技术中的流量控制技术存在的操作较为繁琐的技术问题。
并且,由于采用了通过针对数据流所采用的协议来对数据流的发送进行控制的技术方案,避免了通过安全软件控制系统内的软件发送的数据时,若某一软件在系统内的权限高于安全软件,则安全软件对该软件无能无力的尴尬情景。
图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,例如:F1 E3->241 227->0.9451 0.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 NeuralNetwork;中文:深度神经网络)算法和/或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能够较好的识别网络数据流,以及提高了识别准确率,同时提高识别效率,降低成本,所以保证了本发明实施例提供的数据终端中流量控制的装置对流量进行控制时的准确性。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
1、由于本发明实施例提供的数据终端中流量控制的方法仅仅需要用户去设置对协议是否拦截即可,无论以后用户安装什么类型的软件,用户设置一次之后即能够准确运行,与现有技术中需要用户针对每一个新安装的软件进行设置相比,操作更为简单,从而解决了现有技术中的流量控制技术存在的操作较为繁琐的技术问题。
2、由于采用了通过针对数据流所采用的协议来对数据流的发送进行控制的技术方案,避免了通过安全软件控制系统内的软件发送的数据时,若某一软件在系统内的权限高于安全软件,则安全软件对该软件无能无力的尴尬情景。
本发明实施例公开了:
A1、一种数据终端中流量控制的装置,其特征在于,包括:
获取单元,用于获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
识别单元,用于通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
控制单元,用于基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
A2、如A1所述的装置,其特征在于,所述装置还包括拼接单元,所述拼接单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
A3、如A1或2所述的装置,其特征在于,所述装置还包括模型建立单元,所述模型建立单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
A4、如A4所述的装置,其特征在于,所述模型建立单元具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
A5、如A2所述的装置,其特征在于,所述识别单元具体用于采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。
A6、如A1所述的装置,其特征在于,所述协议拦截列表包括允许所述数据终端发送数据的第一类协议与不允许所述数据终端发送数据的第二类协议;所述控制单元具体用于控制所述数据终端发送所述数据流中属于所述第一类协议的数据,以及控制所述数据终端停止发送所述数据流中属于所述第二类协议的数据。
B7、一种数据终端中流量控制的方法,其特征在于,所述方法包括:
获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
B8、如B7所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
B9、如B7或8所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:
采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
B10、如B9所述的方法,其特征在于,所述采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数,具体包括:
对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
B11、如B8所述的方法,其特征在于,所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,具体包括:
采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;
针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。
B12、如B7所述的方法,其特征在于,所述协议拦截列表包括允许所述数据终端发送数据的第一类协议与不允许所述数据终端发送数据的第二类协议;
所述基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流,具体包括:
控制所述数据终端发送所述数据流中属于所述第一类协议的数据,以及控制所述数据终端停止发送所述数据流中属于所述第二类协议的数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种数据终端中流量控制的装置,其特征在于,包括:
获取单元,用于获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
识别单元,用于通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
控制单元,用于基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
2.如权利要求1所述的装置,其特征在于,所述装置还包括拼接单元,所述拼接单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
3.如权利要求1或2所述的装置,其特征在于,所述装置还包括模型建立单元,所述模型建立单元用于在所述识别单元通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
4.如权利要求4所述的装置,其特征在于,所述模型建立单元具体用于对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
5.如权利要求2所述的装置,其特征在于,所述识别单元具体用于采用深度学习模型对所述载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述协议识别结果。
6.如权利要求1所述的装置,其特征在于,所述协议拦截列表包括允许所述数据终端发送数据的第一类协议与不允许所述数据终端发送数据的第二类协议;所述控制单元具体用于控制所述数据终端发送所述数据流中属于所述第一类协议的数据,以及控制所述数据终端停止发送所述数据流中属于所述第二类协议的数据。
7.一种数据终端中流量控制的方法,其特征在于,所述方法包括:
获取数据终端中待传输的数据流;所述数据流包括上行数据包和下行数据包;
通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别,获得对所述数据流的协议识别结果,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型;
基于所述协议识别结果以及预设的协议拦截列表,控制所述数据终端发送所述数据流或停止发送所述数据流。
8.如权利要求7所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流。
9.如权利要求7或8所述的方法,其特征在于,在所述通过深度学习模型,根据所述上行数据包和所述下行数据包对所述数据流的协议进行识别之前,所述方法还包括:
采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。
10.如权利要求9所述的方法,其特征在于,所述采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数,具体包括:
对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;
将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;
采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。
CN201510981994.4A 2015-12-23 2015-12-23 一种数据终端中进行流量控制的装置及方法 Pending CN106912077A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510981994.4A CN106912077A (zh) 2015-12-23 2015-12-23 一种数据终端中进行流量控制的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510981994.4A CN106912077A (zh) 2015-12-23 2015-12-23 一种数据终端中进行流量控制的装置及方法

Publications (1)

Publication Number Publication Date
CN106912077A true CN106912077A (zh) 2017-06-30

Family

ID=59206190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510981994.4A Pending CN106912077A (zh) 2015-12-23 2015-12-23 一种数据终端中进行流量控制的装置及方法

Country Status (1)

Country Link
CN (1) CN106912077A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422365A (zh) * 2022-01-21 2022-04-29 成都飞鱼星科技股份有限公司 一种基于硬件流加速的上网行为管理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111401A (zh) * 2010-12-16 2011-06-29 成都市华为赛门铁克科技有限公司 协议识别方法、协议识别装置及设备
CN103051617A (zh) * 2012-12-18 2013-04-17 北京奇虎科技有限公司 识别程序的网络行为的方法、装置及系统
CN105100091A (zh) * 2015-07-13 2015-11-25 北京奇虎科技有限公司 一种协议识别方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111401A (zh) * 2010-12-16 2011-06-29 成都市华为赛门铁克科技有限公司 协议识别方法、协议识别装置及设备
CN103051617A (zh) * 2012-12-18 2013-04-17 北京奇虎科技有限公司 识别程序的网络行为的方法、装置及系统
CN105100091A (zh) * 2015-07-13 2015-11-25 北京奇虎科技有限公司 一种协议识别方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422365A (zh) * 2022-01-21 2022-04-29 成都飞鱼星科技股份有限公司 一种基于硬件流加速的上网行为管理方法及系统
CN114422365B (zh) * 2022-01-21 2024-03-19 成都飞鱼星科技股份有限公司 一种基于硬件流加速的上网行为管理方法及系统

Similar Documents

Publication Publication Date Title
CN105100091B (zh) 一种协议识别方法及系统
Jensen A brief introduction to coloured petri nets
CN103650630B (zh) 用于分发传感器数据的方法和装置
CN108427939A (zh) 模型生成方法和装置
CN107392842A (zh) 图像风格化处理方法、装置、计算设备及计算机存储介质
CN112949702B (zh) 一种网络恶意加密流量识别方法和系统
CN107463095A (zh) 一种具有时变采样周期的输出反馈控制器设计方法
CN110321761A (zh) 一种行为识别方法、终端设备及计算机可读存储介质
CN107015801A (zh) 一种网页展示方法及应用终端
CN105808454A (zh) 一种多端口访问共享缓存的方法及装置
CN111787624B (zh) 一种基于深度学习的可变维度资源分配方法
CN108280207A (zh) 一种构造完美哈希的方法
CN109697090A (zh) 一种控制终端设备的方法、终端设备及存储介质
CN102685128B (zh) 一种基于状态机的协议构造方法
CN106911527A (zh) 一种流量监测装置及方法
CN106912077A (zh) 一种数据终端中进行流量控制的装置及方法
CN109299487A (zh) 神经网络模型、加速器、建模方法及装置、介质及系统
CN104243246B (zh) 一种基于ZigBee技术的FlexRay总线测试与优化方法及装置
CN106911579A (zh) 一种网络转发设备中进行流量控制的装置及方法
CN107301143A (zh) 一种基于双轨编码四相握手协议的异步仲裁器
CN100566241C (zh) 基于神经网络权值同步的轻量级密钥协商方法
CN106953820A (zh) 基于双Sigmoid复数连续神经网络的信号盲检测方法
Cabessa Interactive Evolving Recurrent Neural Networks Are Super-turing.
CN110221839A (zh) 一种硬件加速器VerilogHDL代码自动生成方法
CN107294705A (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
CB02 Change of applicant information

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant after: Beijing Qihu Technology Co., Ltd.

Applicant after: Qianxin Technology Group Co., Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant before: Beijing Qihu Technology Co., Ltd.

Applicant before: BEIJING QI'ANXIN SCIENCE & TECHNOLOGY CO., LTD.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20170630

RJ01 Rejection of invention patent application after publication