Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR IDENTIFYING APPLICATION PROTOCOL
Document Type and Number:
WIPO Patent Application WO/2011/143817
Kind Code:
A1
Abstract:
The present invention involves a method and apparatus for identifying an application protocol. In one embodiment, the method for identifying the application protocol includes the following steps: S11. classifying the packets to be detected as separate communication flows; S12. searching the keywords in the payload of said communication flows based on the keyword database of the identifiable application protocols and determining the keyword weight vectors of said communication flows, wherein the weight of one keyword relates to the location of said keyword in the payload of one communication flow; S13. determining the similarity degree between said keyword weight vectors of said communication flows and the characteristic keyword weight vectors of the identifiable application protocols; S14. if the predefined condition is met, determining the application protocols corresponding to the characteristic keyword weight vectors which have the maximum similarity degree with the keyword weight vectors of said communication flows as the application protocols of said communication flows. Using said method and apparatus in the present invention, the accuracy of protocol identification can be improved without significant performance cost compared with the prior art.

Inventors:
LIU FANG (CN)
Application Number:
PCT/CN2010/072923
Publication Date:
November 24, 2011
Filing Date:
May 19, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ALCATEL LUCENT (FR)
LIU FANG (CN)
International Classes:
H04L47/2475
Foreign References:
CN101184089A2008-05-21
CN101488861A2009-07-22
Other References:
SEN, SUBHABRATA ET AL.: "Accurate, Scalable In-Network Identification of P2P Traffic Using Application Signatures", WWW2004, 22 May 2004 (2004-05-22), pages 512 - 517, XP002389082
CHEN, LIANG ET AL.: "A survey of Application-level Protocol Identification Algorithm", COMPUTER SCIENCE, vol. 34, no. 7, 2007, pages 73 - 75, XP008162754
See also references of EP 2573995A4
Attorney, Agent or Firm:
KING & WOOD PRC LAWYERS (CN)
北京市金杜律师事务所 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种识别应用协议的方法, 包括以下步骤:

A. 将待检测数据包归类到单独的通信流;

B. 基于可识别的应用协议的关键字库检索所述通信流的有效载 荷中的关键字, 并确定所述通信流的关键字权重向量; 其中, 一个 关键字的权重与其在一个通信流的有效载荷中的位置有关;

C. 确定所述通信流的关键字权重向量与可识别的应用协议的特 征关键字权重向量之间的相似度;

D. 如果满足预定条件, 将与所述通信流的关键字权重向量之间 具有最高相似度的特征关键字权重向量所对应的应用协议确定为所 述通信流的应用十办议。

2. 根据权利要求 1所述的方法, 其中, 所述步骤 B中, 一个关 键字在一个通信流的有效载荷中首次出现的位置越靠前, 其权重越 大。

3. 根据权利要求 2所述的方法, 其中, 通信流 Λ的关键字权重 向量中的第 i个关键字的权重表示为 ¾ = itpid X idj];

其中, itpid = 示第 i个关键字在通信流/ rf中首次出现时 的位置;

其中, f = l ; |E|表示通信流的总数目, |{/ : e /表示

包含第 i个关键字^的通信流的数目。

4. 根据权利要求 1至 3中任一项所述的方法, 其中, 在所述步 骤 A之前还包括步骤:

a. 基于可识别的应用协议的关键字库检索多个训练通信流的有 效载荷中的关键字, 并确定所述多个训练通信流的关键字权重向量; b. 根据所述多个训练通信流的关键字权重向量来确定每一个可 识别的应用协议所对应的特征关键字权重向量。

5. 根据权利要求 4所述的方法, 其中, 所述步骤 a中釆用与所 述步骤 B中同样的算法来确定训练通信流的关键字权重向量;

其中, 第 j个通信流的关键字权重向量中的第 i个关键字的权重 其中, ^. = 1/ ; 表示第 i个关键字在第 j个通信流中首次出现 时的位置;

其中, /表示

包含第 i个关键字^的通信流的数目。

6. 根据权利要求 1至 3中任一项所述的方法, 其中, 所述步骤 A 中根据所述待检测数据包的五元组来归类, 所述五元组包括: 源 地址、 目的地址、 源端口号、 目的端口号、 传输协议类型; 所述步 骤 C中的相似度包括余弦相似度。

7. 根据权利要求 1至 3中任一项所述的方法, 其中, 所述预定 条件包括: 所述最高相似度高于一个预定值。

8. 一种识别应用协议的协议识别装置, 包括:

第一装置, 用于将待检测数据包归类到单独的通信流;

第二装置,用于基于可识别的应用协议的关键字库检索所述通信 流的有效载荷中的关键字, 并确定所述通信流的关键字权重向量; 其中, 一个关键字的权重与其在一个通信流的有效载荷中的位置有 关;

第三装置,用于确定所述通信流的关键字权重向量与可识别的应 用协议的特征关键字权重向量之间的相似度;

第四装置, 用于: 如果满足预定条件, 将与所述通信流的关键字 权重向量之间具有最高相似度的特征关键字权重向量所对应的应用 协议确定为所述通信流的应用协议。

9. 根据权利要求 8所述的协议识别装置, 其中, 所述第二装置 中, 一个关键字在一个通信流的有效载荷中首次出现的位置越靠前, 其权重越大。

10. 根据权利要求 9所述的协议识别装置, 其中, 通信流 Λ的关 键字权重向量中的第 i个关键字的权重表示为 = itPid X idf,;

其中, itPid 表示第 i个关键字在通信流 Λ中首次出现时 的位置; 其中, ^ = log ' 1 ; | |表示通信流的总数目, 表示 包含第 i个关键字 的通信流的数目。

11. 根据权利要求 8至 10中任一项所述的协议识别装置, 其中, 所述第二装置还用于:

- 基于可识别的应用协议的关键字库检索多个训练通信流的有 效载荷中的关键字, 并确定所述多个训练通信流的关键字权重向量; - 根据所述多个训练通信流的关键字权重向量来确定每一个可 识别的应用协议所对应的特征关键字权重向量。

12. 根据权利要求 11所述的协议识别装置, 其中, 所述第二装 置采用同样的算法来确定训练通信流以及待检测数据包的通信流的 关键字权重向量;

其中, 第 j个通信流的关键字权重向量中的第 i个关键字的权重 表示为 ωί - itpy X idfi

其中, itpy = !0y.表示第 i个关键字在第 j个通信流中首次出现 时的位置;

其中, id = log ¾; 表示通信流的总数目, 表示

\\f: f\

包含第 i个关键字 fc,的通信流的数目。

13. 根据权利要求 8至 10中任一项所述的协议识别装置, 其中, 所述第一装置根据所述待检测数据包的五元组来归类, 所述五元组 包括: 源地址、 目的地址、 源端口号、 目的端口号、 传输协议类型; 所述第三装置中的相似度包括余弦相似度。

14. 根据权利要求 8至 10中任一项所述的协议识别装置, 其中, 所述预定条件包括: 所述最高相似度高于一个预定值。

15. —种网络设备, 其包括权利要求 8至 14中任一项所述的协 议识别装置。

Description:
应用协议识别方法及装置 技术领域

本发明涉及网络通信技术, 尤其涉及协议识别技术。 背景技术

本发明提出了一种在诸如 TCP/IP网络的数据网络中, 对由接入 网关或其他设备接收到的数据中的应用层协议 类型进行识别和分类 的方法。

应用协议识别用于确定网络中所承载的数据的 协议类型。 这是 一种提供网絡流量的信息特征的非常重要的技 术, 其在多种不同场 合都是必不可少的, 例如有效的网络规划和设计、 诸如合法监控和 网络屏蔽的安全策略、 诸如流量整型和服务区分的服务质量保障、 以及收费策略设计、 等。

当今的通信网络通常遵循分层模型, 如 OSI参考模型或 TCP/IP 参考模型。 大多数数据网络采用 TCP/IP参考模型, 其包括五层: 物 理层、 数据链路层、 网络层、 传输层和应用层。 诸如接入网关的中 继节点通常仅涉及 IP层的传输和中继, 而对于上层 (传输层和应用 层) 承载的内容并不知晓。 然而, 在某些场合, 例如屏蔽某种特定 类型的应用, 中继节点必须找到一个有效的途径来识别和确 定应用 层所承载的协议类型。 发明内容

通常的应用协议识别方案主要包括以下三类:

基于端口的协议识别

通过端口号进行协议分类是最简单、 最传统的方法。 该方法通 过传输层报头所包含的端口号来识别协议或应 用类型。 对于标准协 议, 端口号与协议之间的关系由互联网号码分配机 构( IANA )定义, 例如, HTTP协议通常使用端口 80, SMTP协议使用端口 25。 而对 于私有协议, 端口号通常由协议或应用自身定义。 因为协议和端口 号之间的这种对应关系, 通过应用层协议报头, 例如 TCP报头, 中 的源端口域和目的端口域的端口号, 就可以确定协议类型。

尽管基于端口号的协议识别是高效而易于实施 的, 但其存在几 个明显的缺点。 1 )在某些协议中, 实际使用的端口号是在运行过程 中动态分配的。 2 ) 防火墙的广泛使用使得某些端口比另外一些端 口 更容易穿越防火墙; 因此, 为了保证连接, 无论是直接使用还是封 装于原始协议之中, 为私有协议使用流行的端口呈上升趋势。 3 )— 些协议明确地使用非标准端口以避免被识别, 甚至一些 P2P应用允 许用户改变默认端口, 还有一些采用隧道技术和随机端口选择的组 合以避免被检测。 因此, 仅仅基于端口号的协议识别已经不再可靠。

基于有效载荷的协议识另 'J

基于有效载荷的分类是通过深度包检测 (DPI )技术来检测承载 于通信数据包中的协议的有效载荷。 该方法包括: 在应用层数据包 中寻找确定的特征字符串, 例如字符串 'http/Γ 对应于 HTTP应用, 字符串 '0xe319010000, 对应于电驴应用。 然而, 单个特征码对于 确定协议类型不够可靠, 例如字符串 'http/Γ 也可以出现在 kazza 协议中。

为了改善匹配精确度, 有人提出了采用正则表达式匹配来识别 协议。 正则表达式提供了灵活、 强大的表达形式, 能够提供高精确 度的协议识别。 在实际应用中通常使用确定有限自动机 (DFA ) 来 实现正则表达式。 然而, 取决于具体的模式, 将一个正则表达式完 全编译到一个确定有限自动机可能导致指数数 量的 DFA状态, 这会 降低性能。

基于行为的协议识别

基于行为的协议识别并不检测通信的内容, 而是根据观察到的 通信的行为或特征, 例如数据包的大小、 连接数量、 等, 来识别协 议。 一种通用的基于行为的协议识别就应用而言是 采用统计特性来 对通信进行识别和分类。 例如一篇文献中提出了采用监督的机器学 习来识别互联网通信流, 分类的基本目标是通信流, 其被表达为给 定主机对之间的一个或多个数据包。 每一个通信流具有若干描述其 行为的特征 (参数) 。 这些参数构成了应用识别的输入鉴别器。 例 如, 流周期、 包到达时间、 有效载荷尺寸、 包到达时间的傅里叶变 换、 等, 均可作为输入鉴别器。 该文献中声称采用贝叶斯机器学习 得到的识别率为 65%; 当引入两个改进, 即核密度估计 (KDE ) 以 及基于快速相关的滤波器 (FCBF ) , 识别率达到 95%。 还有人提出 了一些其他的基于统计特性的识另 'J机制。

尽管基于行为的协议识别相比于基于内容的协 议识别引起较少 的性能开销, 但其存在多方面的限制。 1 )基于行为的协议识别的精 确度通常低于基于内容的协议识别。 由于它主要依赖统计描述, 相 对于基于有效载荷的确定方法, 其识别精确度并不稳定。 2 ) 另外, 观察到的行为总是依赖于外部环境, 诸如网絡类型、 主机处理能力。 例如, 在一个无线局域网 (WLAN ) 中的包到达间隔时间可能不同 于以太网。 3 )恶意用户相对地比较容易通过修改上述的通 流参数, 例如通过补零来改变包的长度、 通过延迟来改变包到达时间, 以此 来规避识别。

为了克服现有技术中的上述缺陷, 本发明提出了基于关键字向 量匹配来实现应用协议识别的方法及装置。

在本发明的一个实施例中, 提供了一种识别应用协议的方法。 该方法包括以下步骤: A. 将待检测数据包归类到单独的通信流; B.基于可识别的应用协议的关键字库检索所述 信流的有效载荷中 的关键字, 并确定所述通信流的关键字权重向量; 其中, 一个关键 字的权重与其在一个通信流的有效载荷中的位 置有关; C. 确定所述 通信流的关键字权重向量与可识别的应用协议 的特征关键字权重向 量之间的相似度; D. 如果满足预定条件, 将与所述通信流的关键字 权重向量之间具有最高相似度的特征关键字权 重向量所对应的应用 协议确定为所述通信流的应用协议。

在本发明的另一个实施例中,识别应用协议的 方法在所述步骤 A 之前还包括步骤: a. 基于可识别的应用协议的关键字库检索多个训 练通信流的有效载荷中的关键字, 并确定所述多个训练通信流的关 键字权重向量; b. 根据所述多个训练通信流的关键字权重向量来 确 定每一个可识别的应用协议所对应的特征关键 字权重向量。

在本发明的一个实施例中, 提供了一种识别应用协议的协议识 别装置。 该协议识别装置包括: 第一装置, 用于将待检测数据包归 类到单独的通信流; 第二装置, 用于基于可识别的应用协议的关键 字库检索所述通信流的有效载荷中的关键字, 并确定所述通信流的 关键字权重向量; 其中, 一个关键字的权重与其在一个通信流的有 效载荷中的位置有关; 第三装置, 用于确定所述通信流的关键字权 重向量与可识别的应用协议的特征关键字权重 向量之间的相似度; 第四装置, 用于: 如果满足预定条件, 将与所述通信流的关键字权 重向量之间具有最高相似度的特征关键字权重 向量所对应的应用协 议确定为所述通信流的应用协议。

在本发明的一个实施例中, 提供了一种网络设备, 其包括本发 明上述的协议识别装置。

采用本发明中的方法及其装置, 可以改善协议识别的精确性, 同时相比于现有机制不引入显著的额外性能开 销。 附图说明

参考下面的图和说明, 将更好地理解该系统。 图中的元件不一 定按比例绘制, 而是重点用于说明典型模型的原理。 在图中, 贯穿 不同的示图, 类似的参考标号表示对应的特征。

图 1 示出了 ^据本发明的一个实施例的识别应用协议的方 流 程图;

图 2 示出了才艮据本发明的一个实施例的识别应用 协议的方法中 确定特征关键字权重向量的流程图;

图 3示出了根据本发明的一个实施例的协议识别 置的结构图。 具体实施方式

不失一般性地, 本发明中的以下实施例均是应用于数据通信网 络, 例如 Internet网络, 之中。

在本发明中, 对于每一个需要识别的协议, 将选择一组可能出 现在该协议中的关键字。 例如但不限于, 超文本传输协议的关键字 包括 " http/" , 文件传输协议的关键字包括 " ftp/" , 等。 接收到的 数据包被根据五元组归类为单独的通信流, 五元组包括: 源地址、 目的地址、 源端口号、 目的端口号、 传输协议类型。 对于每一个单 独的通信流, 检测其有效载荷中的关键字可以得到一个关键 字权重 向量, 将该关键字权重向量和可识别协议的特征关键 字权重向量进 行匹配就可以实现对这一单独的通信流的协议 的识另 lj。

图 1 示出了根据本发明的一个实施例的识别应用协 议的方法流 程图。 该方法通常应用于数据通信网络的网络设备之 中。 如图 1 所 示, 在该实施例中, 识别应用协议的方法包括四个步骤 Sl l、 S12、 S13、 S14。

在步骤 Sl l 中, 将待检测数据包归类到单独的通信流。

在步骤 S12 中, 基于可识别的应用协议的关键字库检索所述通 信流的有效载荷中的关键字, 并确定所述通信流的关键字权重向量; 其中, 一个关键字的权重与其在一个通信流的有效载 荷中的位置有 关。

具体地, 例如但不限于, 在可识别的应用协议的关键字库中共 有 M个不同的关键字, 对于每一可识别协议, 均有若干可能出现在 该协议中的关键字 , e {l,...,M}。 例如但不限于, 超文本传输协议 的关键字包括 " http/" , 文件传输协议的关键字包括 " ftp/" , 等。 例如, 一个通信流 Λ , 其关键字权重向量可以表示为 v d

在步骤 S13 中, 确定所述通信流的关键字权重向量与可识别的 应用协议的特征关键字权重向量之间的相似度 。

具体地, 例如但不限于, 可识别的协议共有 N个, 每一可识别 协议的特征关键字权重向量可以表示为 V n e {l,〜,N}。

在步骤 S14 中, 如果满足预定条件, 将与所述通信流的关键字 权重向量之间具有最高相似度的特征关键字权 重向量所对应的应用 协议确定为所述通信流的应用协议。

本领域技术人员应能理解, 不同的可识别协议可以具有相同的 关键字, 也可以具有互不重叠的关键字; N和 M的取值没有必然的 大小关系。 优选地, 每一可识别应用协议具有至少一个独有的关键 字, 则 M > N, 这样可以提高不同协议之间的区分度。

在本发明的一个实施例中, 具体地, 在步骤 S11 中, 待检测数 据包将被根据五元组来归类, 所述五元组包括: 源地址、 目的地址、 源端口号、 目的端口号、 传输协议类型。 需要理解的是, 用于承载 同一个应用程序在源 (节点)和目的 (节点)之间的数据的数据包, 其源地址、 目的地址、 源端口号、 目的端口号、 传输协议类型应是 相同的。 通常, 不同的应用程序的数据包之间源端口号和目的 端口 号不同; 不同的源 (节点) 和目的 (节点) 之间的数据包之间的源 地址和目的地址不同。 因此, 具有相同五元组内容的不同数据包应 该属于一对源和目的之间的同一应用程序, 将被归类到同一个单独 的通信流。

在本发明的一个实施例中, 具体地, 步骤 S13 中的相似度包括 余弦相似度。例如, 通信流 Λ的关键字权重向量 v d 与任一可识别协议 的特征关键字权重向量之间的余弦相似度将被 分别计算, 可以用公 式表示为:

cos(v d ,V n ) 。

在本发明的一个实施例中, 具体地, 在步骤 S14 中, 所述预定 条件包括: 所述最高相似度高于一个预定值。 例如, 通信流/ rf 的关 键字权重向量 v d 与特征关键字权重向量 V 2 的之间的余弦相似度最高, 则当该最高相似度高于一个预定值时, V 2 所代表的应用协议将被确定 为通信流 的应用协议; 当最高相似度低于所述预定值时, 则通信 流 将被识别为未知协议, 也就是通信流 被确定为不属于任一可 识别协议。

在本发明的一个实施例中, 具体地, 步骤 S12 中, 一个关键字 在一个通信流的有效载荷中首次出现的位置越 靠前, 其权重越大。

通常, 识别过程包括上述步骤 Sl l、 S12、 S13、 S14, 每一可识 别协议的特征关键字权重向量应在识别过程之 前的训练过程中确 定。 图 2 示出了根据本发明的一个实施例的识别应用协 议的方法中 确定特征关键字权重向量, 也就是训练过程, 的流程图。 如图所示, 该训练过程包括两个步驟 S21、 S22。

在步驟 S21 中, 将基于可识别的应用协议的关键字库检索多个 训练通信流的有效载荷中的关键字, 并确定所述多个训练通信流的 关键字权重向量。

在步骤 S22 中, 将根据所述多个训练通信流的关键字权重向量 来确定每一个可识别的应用协议所对应的特征 关键字权重向量。 具 体地, 因为每一训练通信流的应用协议都是预知的, 可以对同属于 一个应用协议的所有训练通信流的关键字权重 向量取平均值, 以确 定该应用协议所对应的特征关键字权重向量。

在本发明的一个实施例中, 具体地, 步骤 S21 中, 一个关键字 在一个通信流的有效载荷中首次出现的位置越 靠前, 其权重越大。

更具体地, 在本发明的一个实施例的步骤 S21 中, 关键字的权 重采用如下的 itp-idf (反向文本位置-反向文件频率) 算法来检测, 第 i个关键字对于第 j个训练通信流的权重表示如下:

( 1 ) 其中, 是反向文本位置的度量, /#,是反向文件频率的度量。 其中, 表示第 i个关键字 在第 j个训练通信流中首次出现时的位 置, 该位置可以是比特位置或字节位置, 表示 的倒数; 如果在 第 j个训练通信流中没有 i个关键字 , 则 取值为零;

其中, |F|表示训练通信流的总数目, 表示包含第 i个关键字 的训练通信流的数目; 则第 j个训练通信流的关键字权重向量可以 表示为: 其中, M表示关键字库中关键字的总数量。

在步驟 S22 中, 将根据所述多个训练通信流的关键字权重向量 来确定每一个可识别的应用协议所对应的特征 关键字权重向量。 对 于某一个可识别的应用协议 p ,从给定的训练通信流中可以计算出一 个特征关键字权重向量, 或者可以称为质心向量, 表示如下: 其中, E p 表示属于协议 p的训练通信流的集合, |E P |表示属于协议 p 的训练通信流的数量, V」表示集合 中的一个通信流的关键字权重向 量。 通过平均集合 中的各训练通信流的关键字权重向量中出现的 各关键字的权重, 就可以得到 V p

在该实施例的步骤 和 S22中,基于上述的公式( 1 )至(5 ) , 可以很容易地基于训练通信流计算出每一可识 别的应用协议的特征 关键字权重向量。

本领域技术人员应能理解, 训练通信流也是将大量训练数据包 根据五元组归类而成的; 在训练通信流中, 应包括每一可识别应用 程序的若干通信流。

本领域技术人员应能理解, 上述训练过程, 也就是步骤 S21 和 步骤 S22, 可以定期地或不定期地重复执行,每次执行时 针对更新的 训练通信流, 以更新可识别应用协议的特征关键字权重向量 。 在某 一次更新的训练过程中, 可以引入新的可识别应用协议; 则相应地, 关键字库中的关键字数量可能会增加, 更新的训练通信流还应包括 新引入的可识别应用协议的若干通信流, 更新结果还包括新引入的 可识别应用协议的特征关键字权重向量。

本领域技术人员应能理解, 在识别过程中的步骤 S12 中, 将采 用与训练过程中的步骤 S21 中同样的算法来确定通信流的关键字权 重向量。

在本发明的一个实施例中, 具体地, 在步骤 S12中, 通信流 的 关键字权重向量 将采用如下的 itp-idf算法来检测,第 i个关键字对 于通信流 的权重表示如下: = ^ χ ^。 其中, itp id o id 其中, 表示第 i个关键字 在通信流 Λ中首次出现时的位置, 该位置可以 是比特位置或字节位置, ¾^表示 的倒数; 如果在通信流 中没有 出现第 i个关键字 ^, 则 Ζ · 中,

其中, | |表示训练通信流的总数目, 表示包含第 i个关键字 的训练通信流的数目。 则通信流 的关键字权重向量可以表示为:

^ = ,ω 2 , ,-,ω Μά ) , 其中, Μ表示关键字库中关键字的总数量。

对于一个通信流而言, 通常, 对于识别该通信流的协议具有重 要作用的关键字位于其有效载荷的头部。 在本发明的一个实施例中, 具体地, 在步骤 S12或步骤 S21 中, 一个通信流或训练通信流的关 键字权重向量将基于其有效载荷头部预定长度 的内容来确定, 关键 字的检索和权重计算仅在该有效载荷头部预定 长度的内容中进行即 可。 例如但不限于, 该预定长度为 128字节、 或 256字节。 本领域 技术人员应能理解, 该有效载荷头部预定长度的内容可以容纳在一 个或多个数据包中。

图 3示出了根据本发明的一个实施例的协议识别 置的结构图。 如图所示, 该实施例中的协议识别装置 10包括: 第一装置 11、 第二 装置 12、 第三装置 13、 第四装置 14。 该协议识别装置 10通常设置 于数据通信网络中的网络设备之中。

第一装置 11 , 用于将待检测数据包归类到单独的通信流。

第二装置 12, 用于基于可识别的应用协议的关键字库检索所 述 通信流的有效载荷中的关键字, 并确定所述通信流的关键字权重向 量; 其中, 一个关键字的权重与其在一个通信流的有效载 荷中的位 置有关。

具体地, 例如但不限于, 在可识别的应用协议的关键字库中共 有 Μ个不同的关键字, 对于每一可识别协议, 均有若干可能出现在 该协议中的关键字 , e {l,... ,M}。 例如但不限于, 超文本传输协议 的关键字包括 " http/" , 文件传输协议的关键字包括 " ftp/" , 等。 例如, 一个通信流 其关键字权重向量可以表示为 v d

第三装置 13 , 用于确定所述通信流的关键字权重向量与可识 别 的应用协议的特征关键字权重向量之间的相似 度。

具体地, 例如但不限于, 可识别的协议共有 N个, 每一可识别 协议的特征关键字权重向量可以表示为 V n , M e {l,... , N}。

第四装置 14, 用于: 如果满足预定条件, 将与所述通信流的关 键字权重向量之间具有最高相似度的特征关键 字权重向量所对应的 应用协议确定为所述通信流的应用协议。 本领域技术人员应能理解, 不同的可识别协议可以具有相同的 关键字, 也可以具有互不重叠的关键字; N和 M的取值没有必然的 大小关系。 优选地, 每一可识别应用协议具有至少一个独有的关键 字, 则 1^ >:^, 这样可以提高不同协议之间的区分度。

在本发明的一个实施例中, 具体地, 第一装置 11根据五元组将 待检测数据包归类为单独的通信流, 所述五元组包括: 源地址、 目 的地址、 源端口号、 目的端口号、 传输协议类型。 需要理解的是, 用于承载同一个应用协议在源 (节点) 和目的 (节点) 之间的数据 的数据包, 其源地址、 目的地址、 源端口号、 目的端口号、 传输协 议类型应是相同的。 通常, 不同的应用协议的数据包之间源端口号 和目的端口号不同; 不同的源 (节点) 和目的 (节点) 之间的数据 包的源地址和目的地址不同。 因此, 具有相同五元组内容的不同数 据包应该属于一对源和目的之间的同一应用协 议, 将被归类到同一 个单独的通信流。

在本发明的一个实施例中, 具体地, 第三装置 13确定的相似度 包括余弦相似度。例如, 通信流 的关键字权重向量 v d 与任一可识别 协议的特征关键字权重向量之间的余弦相似度 将被分别计算, 可以 用公式表示为:

cos(v d , V n ) = 。

INI x ll v J

在本发明的一个实施例中, 具体地, 第四装置 14中的所述预定 条件包括: 所述最高相似度高于一个预定值。 例如, 通信流 Λ的关 键字权重向量 v d 与特征关键字权重向量 V 2 的之间的余弦相似度最高, 则当该最高相似度高于一个预定值时, v 2 所代表的应用协议将被确定 为通信流 Λ的应用协议; 当最高相似度也低于所述预定值时, 则通 信流 Λ将被识别为未知协议, 也就是通信流 Λ被第四装置 14确定为 不属于任一可识别协议。

在本发明的一个实施例中, 具体地, 第二装置 12中, 一个关键 字在一个通信流的有效载荷中首次出现的位置 越靠前, 其权重越大。

通常, 识别过程包括上述第一装置 11、 第二装置 12、 第三装置 13、 第四装置 14所分别执行的操作, 每一可识别协议的特征关键字 权重向量应在识别过程之前的训练过程中预先 确定。

该训练过程由第二装置 12执行, 包括两个子操作 21、 22 (图中 未示出) 。

在子操作 21 中, 第二装置 12将基于可识别的应用协议的关键 字库检索多个训练通信流的有效载荷中的关键 字, 并确定所述多个 训练通信流的关键字权重向量。

在子操作 22 中, 第二装置 12将根据所述多个训练通信流的关 键字权重向量来确定每一个可识别的应用协议 所对应的特征关键字 权重向量。 具体地, 因为每一训练通信流的应用协议都是预知的, 可以对同属于一个应用协议的所有训练通信流 的关键字权重向量取 平均值, 以确定该应用协议所对应的特征关键字权重向 量。

在本发明的一个实施例中, 具体地, 第二装置 12所执行的子操 作 21 中, 一个关键字在一个通信流的有效载荷中首次出 现的位置越 靠前, 其权重越大。

更具体地, 在本发明的一个实施例中, 第二装置 12所执行的子 操作 21 中, 关键字的权重采用如下的 itp-idf (反向文本位置-反向文 件频率)算法来检测, 第 i个关键字对于第 j个训练通信流的权重表 示:^下:

(Oy = itpij x idf i ( 1 ) 其中, 是反向文本位置的度量, ^是反向文件频率的度量。

itPij = ν ( 2 ) 其中, 表示第 i个关键字 ^在第 j个训练通信流中首次出现时的位 置, 该位置可以是比特位置或字节位置, 表示。 y 的倒数; 如果在 第 j个训练通信流中没有出现第 i个关键字^, 则^ ^取值为零;

{ :

其中, |F|表示训练通信流的总数目, 表示包含第 i个关键字 的训练通信流的数目; 则第 j个训练通信流的关键字权重向量可以 表示为:

V , = ω ω 2 ( 4 ) 其中, M表示关键字库中关键字的总数量 在子操作 22 中, 第二装置 12将根据所述多个训练通信流的关 键字权重向量来确定每一个可识别的应用协议 所对应的特征关键字 权重向量。 对于某一个可识别的应用协议 p, 从给定的训练通信流中 可以计算出一个特征关键字权重向量, 或者可以称为质心向量, 表 示如下:

其中, F p 表示属于协议 p的训练通信流的集合, 表示属于协议 p 的训练通信流的数量, Vj 表示集合 中的一个通信流的关键字权重向 量。 通过平均集合 中的各训练通信流的关键字权重向量中出现的 各关键字的权重, 就可以得到 v p

在该实施例中, 第二装置 12所执行的子操作 21和 22中, 基于 上述的公式 ( 1 ) 至 (5 ) , 可以很容易地基于训练通信流计算出每 一可识别的应用协议的特征关键字权重向量。

本领域技术人员应能理解, 训练通信流也是将大量训练数据包 根据五元组归类而成的; 在训练通信流中, 应包括每一可识别应用 程序的若干通信流。

本领域技术人员应能理解, 上述训练过程, 也就是第二装置 12 所执行的子操作 21和子操作 22, 可以定期地或不定期地重复执行, 每次执行时针对更新的训练通信流, 以更新可识别应用协议的特征 关键字权重向量。 在某一次更新的训练过程中, 可以引入新的可识 别应用协议; 则相应地, 关键字库中的关键字数量可能会增加, 更 新的训练通信流还应包括新引入的可识别应用 协议的若干通信流, 更新结果还包括新引入的可识别应用协议的特 征关键字权重向量。

本领域技术人员应能理解, 在识别过程中, 第二装置 12将采用 与训练过程中的子操作 21中同样的算法来确定通信流的关键字权重 向量。

在本发明的一个实施例中, 具体地, 识别过程中, 第二装置 I 2 将采用如下的 itp-idf算法来通信流 ^的关键字权重向量 v d ,第 i个关 键字对于通信流 Λ的权重表示如下: ω Μ

其中, 表示第 i个关键字 ,在通信流 Λ中首次出现时的位置, 该位 置可以是比特位置或字节位置, ¾^表示 的倒数; 如果在通信流^ 中没有出现第 i个关键字 , 则 φ 取值为零。 其中,

其中, |E|表示训练通信流的总数目, 表示包含第 i个关键字 的训练通信流的数目。 则通信流 的关键字权重向量可以表示为:

^ - ,ω 2 ,,-,ω Μί1 ) , 其中, M表示关键字库中关键字的总数量。

对于一个通信流而言, 通常, 对于识别该通信流的协议具有重 要作用的关键字位于其有效载荷的头部。 在本发明的一个实施例中, 具体地, 第二装置 11在识别过程中的关键字权重向量的确认操作 训练过程中的子操作 21中, 一个通信流或训练通信流的关键字权重 向量将基于其有效载荷头部预定长度的内容来 确定。 第二装置 12仅 在该有效载荷头部预定长度的内容中进行关键 字的检索和权重计算 即可。 例如但不限于, 该预定长度为 128字节、 或 256字节。 本领 域技术人员应能理解, 该有效载荷头部预定长度的内容可以容纳在 一个或多个数据包中。

在本发明的一个实施例中, 提供了设置有上述协议识别装置 10 的网络设备。 该网络设备例如但不限于: 交换机、 路由器、 网关、 终端机。

本领域技术人员应能理解, 本发明中所称的装置, 可以包括: 软件功能模块、 硬件模块、 或两者的结合。

本领域技术人员应能理解, 上述实施例均是示例性而非限制性 效果。 本领域技术人员在研究附图、 说明书及权利要求书的基础上, 应能理解并实现所揭示的实施例的其他变化的 实施例。 在权利要求 书中, 术语 "包括" 并不排除其他装置或步驟; 不定冠词 "一个" 不排除多个; 术语 "第一" 、 "第二,, 用于标示名称而非用于表示 任何特定的顺序。 权利要求中的任何附图标记均不应被理解为对 保 护范围的限制。 权利要求中出现的多个部分的功能可以由一个 单独 的硬件或软件模块来实现。 某些技术特征出现在不同的从属权利要 求中并不意味着不能将这些技术特征进行组合 以取得有益效果。