一种网络协议识别设备和方法

文档序号:7641344阅读:216来源:国知局
专利名称:一种网络协议识别设备和方法
技术领域
本发明涉及网络领域,尤其涉及对点对点(P2P)协议进行识别的协议识别设备和方法。
背景技术
P2P网络技术目前正日益在网络中获得广泛应用,P2P是英文Peer-to-Peer (对等)的简称,其又被称为“点对点”。在P2P网络应用中,所有的节点都是对等的,节点之间通过直接互连来共享信息资源或进行文件交互而无需依赖集中式服务器。因此,利用P2P 技术可以更加方便快捷地共享和得到各类资源。然而随着P2P网络技术的大范围使用,P2P流量逐渐成为了互联网流量的重要组成部分,网络中的大量带宽同时也被P2P流量占用,这样引起了网络的拥塞,并且妨碍了正常的网络业务开展和关键应用,例如,严重影响了用户正常的Web和电子邮件等应用。另外,P2P网络应用穿透了现有的防火墙和安全代理,利用P2P网络应用,用户可以通过并不安全的网络环境获得应用程序并使用,这样会使得病毒和恶意代码得以躲过安全审查入侵到内部网络。因此,为了有效的管理网络和合理的利用网络资源,需要对采用P2P技术的网络通信进行精确识别以便加以控制和/或限制。目前存在有下列几种用于对P2P网络应用所使用的P2P网络协议进行识别的技术
1、端口识别法,端口识别法根据TCP(传输控制协议)数据包或UDP (用户数据报协议) 数据包首部的源端口号或目的端口号来识别P2P流量,然而随着P2P网络技术的发展,越来越多的P2P网络应用采用随机的端口来建立连接,因此,端口识别法漏报P2P网络连接的问题也越来越大;
2、DPI(Deep Packet Inspection,深度包检测)识别法,DPI识别法通过数据包深层扫描而在TCP数据包或UDP数据包负载中查找一个协议区别于其它协议的特征字符串来识别 P2P协议,DPI识别法对于明文传输的P2P数据流具有较高的识别率,但是现在许多P2P协议都采用加密方式进行传输,因此就无法利用DPI识别法来识别采用加密方式传输数据的 P2P协议;以及
3、基于行为特征识别法等几种识别,基于行为特征识别法通过确定在一段时间内,用户保持的TCP或UDP连接中,目的端口在IOM以上的连接数与目的端口在IOM以下的连接数的比值是否大于预定阀值来确定用户是否正在使用P2P网络应用。然而诸如游戏和数据库等应用的流量在这方面的特征和P2P应用的特征有些类似,因此,基于行为特征存在较大的误报风险。因此,目前还不存在一种可以高效地识别网络应用所采用的网络协议,尤其是P2P 网络应用采用的P2P协议的协议识别技术。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的对诸如点对点(P2P)协议之类的网络协议进行识别的协议识别设备和方法。根据本发明的一个方面,提供了对在客户端和服务器之间传输网络数据所采用的网络协议进行识别的网络协议识别方法,包括步骤获取在传输所述网络数据时的同一会话中的多个数据包,并将所述多个数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包;针对所述从客户端发送到服务器的数据包,计算与所述数据包的大小相关的第一指标以及与所述数据包到达服务器的时间间隔相关的第二指标;针对所述从服务器发送到客户端的数据包,计算与所述数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标;构造包括所述第一指标、第二指标、第三指标和第四指标为其分量的特征向量;以及根据所述特征向量来确定传输所述网络数据所采用的网络协议。根据本发明的另一个方面,提供了一种网络协议识别设备,包括数据接收器,配置为接收以待识别网络协议在客户端和服务器之间传输的网络数据;数据分类器,配置为将数据接收器所接收的网络数据根据其所属的会话进行分类;特征向量构造器,配置为接收由所述数据分类器分类后属于同一个会话的多个数据包,并将所述多个数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包;针对所述从客户端发送到服务器的数据包,计算与所述数据包的大小相关的第一指标以及与所述数据包到达服务器的时间间隔相关的第二指标;针对所述从服务器发送到客户端的数据包,计算与所述数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标;以及构造包括所述第一指标、第二指标、第三指标和第四指标为其分量的特征向量;协议识别器,接收所述特征向量构造器所构造的特征向量,并基于该特征向量确定待识别的网络协议。


通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中
图1示意性地示出了根据本发明一个实施方式的网络协议识别方法的流程图; 图2示意性地示出了根据本发明一个实施方式的已知网络协议特征值确定方法的流程图3示意性地示出了根据本发明一个实施方式的网络协议识别设备的框图;以及图4示意性地示出了根据本发明一个实施方式的网络协议识别系统。
具体实施例方式下面结合附图和具体的实施方式对本发明作进一步的描述。图1示意性地示出了根据本发明一个实施方式的网络协议识别方法100的流程图。方法100始于步骤S110,其中获取以待识别的网络协议在客户端和服务器之间传输的网络数据。应当注意的是,在网络传输领域,尤其是基于P2P协议的网络传输中,服务器和客户端属于相对的概念,即参与网络传输的一方在有些传输中扮演服务器的作用,而在另一些传输中扮演客户端的作用,这在网络传输领域是众所周知的。因此,在本申请中,有关客户端和服务器的限定是相对的,将发起请求的一方称为客户端,而将接收请求并应答该请求的一方称为服务器。在步骤SllO中,在获取网络数据时,需要获取属于同一个会话 (session)的多个数据包。在网络传输领域,会话是个公知的概念,其广泛地在有状态的网络连接中使用,并包括多个相关联的数据包。根据本发明的一个实施例,在步骤SllO中,获取属于同一个会话的多个数据包。随后,在步骤S120中,根据所获取数据包的传输方向,将数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包。并且在步骤S130中,对于从客户端发送到服务器的数据包,计算与数据包的大小相关的第一指标以及与数据包到达服务器的时间间隔相关的第二指标。存在有多种第一指标和第二指标,根据本发明的一个实施方式,第一指标包括capsize,即客户端向服务器发送的数据包的平均大小,以及Cs_sd_ psize,即客户端向服务器发送的数据包的大小的标准差。第二指标包括cS_ptime,即客户端向服务器发送的数据包的到达时间的平均间隔,以及CS_Sd_ptime,即客户端向服务器发送的数据包的到达时间的时间间隔的标准。随后,在步骤S140中,对于从服务器发送到客户端的数据包,计算与数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标。类似于第一和第二指标,也包括有多种第三指标和第四指标,根据本发明的一个实施方式,第三指标包括sc_psize,即服务器向客户端发送的数据包的平均大小,以及sc_sd_psize,即服务器向客户端发送的数据包的大小的标准差。第四指标包括SC_ptime,即服务器向客户端发送的数据包的到达时间的平均时间间隔,以及SC_Sd_ptime,即服务器向客户端发送的数据包的到达时间的时间间隔的标准差。应当注意的是,上面针对第一、第二、第三和第四指标给出了多个具体指标值,但是应当理解,上面的具体指标值仅仅是示例性的,所有可以反映数据包大小以及数据包到达目的地的时间间隔的任何指标值都在本发明的保护范围之内。随后,在步骤S150中,构造包括第一指标、第二指标、第三指标和第四指标为其分量的特征向量P。由于第一、第二、第三和第四指标中的每个可以包括不只一个指标值, 因此,在步骤S150构造的特征向量的维度也不仅仅局限为四维。例如,根据本发明的一个实施方式,所构造的特征向量 P = cs_psize, cs_ptime, cs_sd_psize, cs_sd_ptime, sc_ psize, sc_ptime, sc_sd_psize, sc_sd_ptime)。接着,在步骤S160中,根据在步骤S150构造的特征向量ρ来确定该会话,即网络数据传输所采用的网络协议。这可以通过将特征向量P和已知网络协议的相应特征向量 (即特征值)进行比较来进行。例如,根据本发明的一个实施方式,事先已经获悉了多种已知网络协议的协议特征值,如果在步骤S150所构造的特征向量P和某个已知网络协议的协议特征值很接近,则可以确定网络传输采用了该已知网络协议。可选地,每个已知网络协议都具有一个协议特征值以及与该协议特征值相关联的特征范围。将特征向量P到原点的欧几里德距离确定为特征向量P的大小VpjP
22ι2ι222
Vp=sqrt (cs_psize +cs—ptime +cs_sd—psize +cs_sd—ptime +sc_psize +sc_ptime +sc_ Sd_pSize2+SC_Sd_ptime2)。如果特征向量ρ的大小Vp与该协议特征值的大小(即,该协议特征值到原点的距离)之差在与该协议特征值相关联的特征范围之内,则可以确定网络传输采用了该已知网络协议。还可以有其它方式来确定特征向量ρ是否与某个已知网络协议的协议特征值很接近,例如可以计算该特征向量P和已知网络协议的协议特征值之间的欧几里德距离,并根据该距离值是否在预定范围之内来确定与特征向量P相对应的网络传输是否采用了该已知网络协议。在上面参考图1给出的网络协议识别方法100中,在步骤S160中基于特征向量ρ 来确定网络传输所采用的网络协议时,需要事先得知一些已知网络协议的协议特征值,以及可选地,和这些协议特征值相关联的特征范围。图2示意性地示出了根据本发明一个实施方式的已知网络协议特征值确定方法200的流程图。为了进行如图2所示的已知网络协议特征值确定方法200,首先需要构建稳定的学习网络环境,例如与外界网络隔离以便仅仅在客户端和服务器之间存在网络传输的网络环境,这样当利用已知网络协议在客户端和服务器之间进行网络传输时,所获取的、在客户端和服务器之间传输的网络数据都是利用该已知网络协议的数据。方法200始于步骤S210,其中在所构建的学习网络环境中,以某个已知网络协议在客户端和服务器之间进行网络传输。随后在步骤S220中,获取在客户端和服务器之间以该已知网络协议传输的多个会话,以及每个会话所包括的多个数据包。可选地,可以获取每个会话所包括的全部数据包。随后,在步骤S225中选择在步骤S220所获取的多个会话中的一个会话,并针对所选择的会话,利用步骤S230-S260来计算与每个会话相对应的特征向量0。步骤S230-S^0 的处理和上面参考图1所描述的步骤S120-S150中的处理相同,这里就不再进行赘述。随后在步骤S270确定是否还有要处理的会话,如果有,则在步骤S275中新选择要处理的会话, 并且返回到步骤S230以开始对该会话的处理。如果在步骤S270确定对所有会话都进行了处理,此时已经获得了与每个会话都相对应的特征向量Pi (i=l, 2,…,N, N是会话数目)。随后,在步骤S280中,根据所获取的多个特征向量,来计算这些特征向量的特征中心,以作为与该已知网络协议相对应的协议特征值。可以存在有多种方法来根据多个特征向量来获取这些特征向量的特征中心。根据本发明的一个实施方式,可以通过对所述多个特征向量进行平均来获得特征中心的位置和值。另外,根据本发明的另一个实施方式,可以利用K-means聚类算法来从多个特征向量中获取特征中心。k-means聚类算法是聚类算法之一,用于确定多个数据对象的数据中心,具体而言,该算法将η个数据对象划分为预先确定的k个聚类以便使得所获得的聚类满足同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。其中聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算得到的。由于K-means聚类算法是本领域常用的算法之一,对其具体流程就不再进行赘述。在本发明的一个实施方式中,利用K-means聚类算法来计算所获取的多个特征向量的特征中心,并且可选地,还可以将利用K-means聚类算法来计算特征中心时的偏差作为与该网络协议相关联的特征范围,只要在当上述协议识别方法中所确定的协议特征和特征中心的差在该特征范围之内,就可以认为该协议就是已知网络协议。根据本发明的另一个实施方式,在步骤S280中,可以先为每个特征向量pi计算其到原点的欧基里德距离Oi (l<i<N)。随后用K-mean聚类算法算出一个聚类中心值00, 以及与该聚类中心值相关的范围(00-0N,00+0N)。ON的大小与利用聚类算法计算聚类中心时的偏差相关。只要在当上述协议识别方法中所确定的协议特征值的大小在该范围 (00-0N, 00+0N)之内,就可以认为该协议就是已知网络协议。随后,在步骤S290中,确定是否还有要确定其协议特征值的已知网络协议,如果有,则在步骤S295中,利用该已知网络协议在所构建的学习网络环境中的客户端和服务器之间进行网络传输。并且返回到步骤S220来进行对该已知网络协议的处理。如果在步骤S290确定没有更多的已知网络协议要处理,则在步骤S297存储所获取的所有已知网络协议的协议特征值以及可选的特征范围,并结束该方法。 可选地,为了根据准确地进行如图2所示的已知网络协议特征值确定方法200,一般而言,要求在步骤S220中所获取的会话具有一定的代表性,具体而言,需要在步骤S220 所获取的会话包含一定数量的数据包。根据本发明的一个实施方式,当一个会话所包含的数据包数量小于100个时,将放弃该会话,即不再利用该会话进行已知网络协议特征值确定。可选地,当会话中包括超过600个数据包时,在步骤S220中仅仅获取该会话中的600 个数据包来进行后续处理。根据本发明的协议识别方法尤其适于对网络中的各种P2P协议进行识别。根据本发明的协议识别方法仅仅通过对数据流中的包大小、包时间间隔等信息进行统计分析来进行协议识别。而包大小和包时间间隔等信息与连接端口、数据包的具体特征或者客户端连接TCP或UDP的个数无关,所以不会出现因为随机端口而漏报误报的问题。另外,由于根据本发明的协议识别方法不需要对数据包进行开包检测,因此不会因为数据包所承载的数据内容无法读出而导致无法识别的问题,即根据本发明的协议识别方法可以用于对数据包内容加密的协议进行识别。图3示意性地示出了根据本发明一个实施方式的网络协议识别设备300。如图3 所示,网络协议识别设备300包括数据接收器310、数据分类器320、特征向量构造器330和协议识别器340。数据接收器310接收以待识别网络协议在客户端和服务器之间传输的网络数据。 应当注意的是,有关客户端和服务器的限定是相对的,在本发明中,将发起请求的一方称为客户端,而将接收请求并应答该请求的一方称为服务器。数据分类器320将数据接收器310接收的网络数据根据其所属的会话进行分类。 可选地,数据分类器320选出属于同一个会话的多个数据包。随后,特征向量构造器330 接收由数据分类器320所选择的同个会话的多个数据包,并构造与该会话相对应的特征向量。具体而言,特征向量构造器330将多个数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包。随后,针对从客户端发送到服务器的数据包,特征向量构造器330计算与数据包的大小相关的第一指标以及与数据包到达服务器的时间间隔相关的第二指标。针对从服务器发送到客户端的数据包,特征向量构造器330计算与数据包的大小相关的第三指标以及与数据包到达客户端的时间间隔相关的第四指标。最后,特征向量构造器330构造包括第一指标、第二指标、第三指标和第四指标为其分量的特征向量作为与该会话相对应的特征向量。如上所述,存在有多种第一指标、第二指标、第三指标和第四指标。根据本发明的一个实施方式,第一指标包括cs_psize和cs_sd_psize。第二指标包括cs_ptime和cs_ sd_ptime。第三指标包括 sc_psize 禾口 sc_sd_psize。第四指标包括 sc_ptime 禾口 sc_sd_ ptime。特征向量构造器330构造的特征向量为ρ = cs_psize, cs_ptime, cs_sd_psize, cs_ sd_ptime, sc_psize, sc_ptime, sc_sd_psize, sc_sd_ptime)。应当理解的是,上面针对第一、第二、第三和第四指标给出了多个具体指标值,但是应当理解,上面的具体指标值仅仅是示例性的,所有可以反映数据包大小以及数据包到达目的地的时间间隔的任何指标值都在本发明的保护范围之内。协议识别器340接收特征向量构造器330所构造的特征向量p,并基于该特征向量确定与该会话相对应的网络协议。协议识别器340可以通过将特征向量ρ和已知网络协议的相应特征向量(即特征值)进行比较来确定与该会话相对应的网络协议。例如,根据本发明的一个实施方式,如果协议识别器340确定特征向量ρ和某个已知网络协议的协议特征值很接近,则可以确定该会话,即网络传输采用了该已知网络协议。可选地,协议识别器340包括已知网络协议特征值存储器342和比较器344。已知网络协议特征值存储器342中存储了一个或者多个已知网络协议的已知网络协议特征值以及与该已知网络协议相关联的预定阈值范围。比较器344将特征向量ρ的大小与已知网络协议特征值存储器342中存储的一个或者多个已知网络协议特征值进行比较,如果特征向量P与某个已知网络协议相对应的已知协议特征值的大小之差在与该已知网络协议相关联的预定阈值范围之内,则认为待识别的网络协议为该已知网络协议。可选地,每个已知网络协议都具有一个协议特征值以及与该协议特征值相关联的特征范围。将特征向量P到原点的欧几里德距离确定为特征向量P的大小VpjP
Vp=sqrt (cs_psize +cs—ptime +cs_sd—psize +cs_sd—ptime +sc_psize +sc_ptime +sc_ Sd_pSize2+SC_Sd_ptime2)。如果特征向量ρ的大小Vp与该协议特征值的大小(即,该协议特征值到原点的距离)之差在与该协议特征值相关联的特征范围之内,则可以确定网络传输采用了该已知网络协议。还可以有其它方式来确定特征向量ρ是否与某个已知网络协议的协议特征值很接近,例如可以计算该特征向量P和已知网络协议的协议特征值之间的欧几里德距离,并根据该距离值是否在预定范围之内来确定与特征向量P相对应的网络传输是否采用了该已知网络协议。在协议识别器340识别网络协议时,需要事先得知一些已知网络协议的协议特征值,以及可选地,和这些协议特征值相关联的特征范围。为此,还可以将网络协议识别设备 300部署在学习网络环境中,以便通过获取利用已知网络协议传输的网络数据来确定与该已知网络协议相对应的协议特征值。为此,数据接收器310接收以已知网络协议传输的网络数据。特征向量构造器330 为每个学习会话构造相应的学习特征向量。并且网络协议识别设备300还包括已知协议特征值确定装置350,用于从特征向量构造器330获取多个学习会话的学习特征向量,并计算多个学习特征向量的特征中心,并且将特征中心确定为与已知网络协议相对应的已知协议特征值。可选地,如上参考图2的步骤S280所述,可以存在有多种方法来根据多个特征向量来获取这些特征向量的特征中心。根据本发明的一个实施方式,可以通过对多个特征向量进行平均来获得特征中心的位置和值。另外,根据本发明的另一个实施方式,可以利用 K-means聚类算法来从多个特征向量中获取特征中心。并且可选地,还可以将利用K-means 聚类算法来计算特征中心时的偏差作为与该网络协议相关联的特征范围。可以通过将网络协议识别设备300部署在采用不同已知网络协议的学习网络环境中,来获取与各个已知网络协议相对应的特征中心。可选地,为了准确地确定已知网络协议的特征中心,一般而言,要求网络协议识别设备所获取的会话具有一定的代表性,具体而言,需要所获取的会话包含一定数量的数据包。根据本发明的一个实施方式,当一个会话所包含的数据包数量小于100个时,将放弃该会话,即不再利用该会话进行已知网络协议特征值确定。可选地,当会话中包括超过600个数据包时,则仅仅获取该会话中的600个数据包来进行后续处理。根据本发明的网络协议识别设备300特别适于对属于P2P网络协议的各种网络协议进行识别。另外,根据本发明的网络协议识别设备仅仅通过对数据流中的包大小、包时间间隔等信息进行统计分析来进行协议识别。而包大小和包时间间隔等信息与连接端口、数据包的具体特征或者客户端连接TCP或UDP的个数无关,所以不会出现因为随机端口而漏报误报的问题。另外,由于根据本发明的网络协议识别设备不需要对数据包进行开包检测, 因此不会因为数据包所承载的数据内容无法读出而导致无法识别的问题,即根据本发明的协议识别方法可以用于对数据包内容加密的协议进行识别。图4示意性地示出了根据本发明一个实施方式的网络通信系统400。该通信系统包括多个客户端410,用于以各自的网络协议与外部服务器420进行网络通信;以及根据本发明的网络协议识别设备300,用于获取多个客户端410和外部服务器420之间进行通信的网络数据,并判断这些网络数据所采用的网络协议,并基于此来采取进一步的措施来控制客户端410和外部服务器420之间的通信。例如,通信系统400可以限制以P2P网络协议进行网络传输的带宽量,从而确保其他网络应用的正常使用等。可选地,网络协议识别设备300可以部署在网关430处,或者和网关430集成在一起,以便方便地获取客户端410和外部服务器420之间进行通信的网络数据。应当注意的是,在本发明的网络协议设备设备300的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络协议识别设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提 {共。 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种对在客户端和服务器之间传输网络数据所采用的网络协议进行识别的网络协议识别方法,包括步骤获取在传输所述网络数据时的同一会话中的多个数据包,并将所述多个数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包;针对所述从客户端发送到服务器的数据包,计算与所述数据包的大小相关的第一指标以及与所述数据包到达服务器的时间间隔相关的第二指标;针对所述从服务器发送到客户端的数据包,计算与所述数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标;构造包括所述第一指标、第二指标、第三指标和第四指标为其分量的特征向量;以及根据所述特征向量来确定传输所述网络数据所采用的网络协议。
2.如权利要求1所述的网络协议识别方法,其中根据所述特征向量来确定传输所述网络数据所采用的网络协议包括计算所述特征向量的大小;如果所述特征向量的大小和与已知网络协议相对应的已知协议特征值的大小之差在与该已知网络协议相关联的预定范围之内,则认为传输所述网络数据所采用的网络协议为所述已知网络协议。
3.如权利要求1所述的网络协议识别方法,还包括确定与已知网络协议相对应的已知协议特征值的步骤,所述确定与已知网络协议相对应的已知协议特征值的步骤包括以所述已知网络协议在学习客户端和学习服务器之间进行网络传输; 获取所述网络传输的多个学习会话; 针对每个学习会话获取同一个会话中的多个数据包,并且将所述多个数据包划分为从客户端发送到服务器的学习数据包和从服务器发送到客户端的学习数据包;针对所述从客户端发送到服务器的学习数据包,计算与所述学习数据包的大小相关的第五指标以及与所述学习数据包到达服务器的时间间隔相关的第六指标;针对所述从服务器发送到客户端的学习数据包,计算与所述学习数据包的大小相关的第七指标以及与所述学习数据包到达客户端的时间间隔相关的第八指标;以及构造包括所述第五指标、第六指标、第七指标和第八指标为其分量的学习特征向量;以及计算所述多个学习特征向量的特征中心,并且将所述特征中心确定为与所述已知网络协议相对应的已知协议特征值。
4.如权利要求3所述的网络协议识别方法,其中计算所述多个学习特征向量的特征中心包括以聚类算法来计算所述多个学习特征向量的聚类中心作为所述特征中心。
5.如权利要求4所述的网络协议识别方法,其中所述聚类算法为K-means聚类算法,而且与所述已知网络协议相关联的预定范围为所述以K-means聚类算法来计算所述多个学习特征向量的聚类中心时的偏差。
6.如权利要求1-5中任意一个所述的网络协议识别方法,其中所述第一指标和第三指标包括所述数据包的平均大小和所述数据包的大小的标准差。
7.如权利要求1-6中任意一个所述的网络协议识别方法,其中所述第二指标包括所述数据包到达服务器的时间间隔的平均大小和所述数据包到达服务器的时间间隔的标准差, 第四指标包括所述数据包到达客户端的时间间隔的平均大小和所述数据包到达客户端的时间间隔的标准差。
8.如权利要求3-5中任意一个所述的网络协议识别方法,其中所述第五指标和第七指标包括所述学习数据包的平均大小和所述数据包的大小的标准差。
9.如权利要求3-5中的任意一个所述的网络协议识别方法,其中所述第六指标包括所述学习数据包到达服务器的时间间隔的平均大小和所述学习数据包到达服务器的时间间隔的标准差,以及第八指标包括所述学习数据包到达客户端的时间间隔的平均大小和所述学习数据包到达客户端的时间间隔的标准差。
10.如权利要求3-5任意一个所述的网络协议识别方法,其中针对每个学习会话获取同一个会话中的多个数据包包括获取同一个会话中的100到600个数据包。
11.如权利要求3-5任意一个所述的网络协议识别方法,还包括步骤如果学习会话具有少于100个数据包,则不对该学习会话进行处理。
12.如权利要求3-5中的任意一个所述的网络协议识别方法,还包括步骤为多个已知网络协议中的每个已知网络协议确定与每个已知网络协议相对应的已知网络协议特征值。
13.如权利要求1-12中的任意一个所述的网络协议识别方法,其中所述网络协议属于 P2P网络协议。
14.一种网络协议识别设备,包括数据接收器,配置为接收以待识别网络协议在客户端和服务器之间传输的网络数据;数据分类器,配置为将数据接收器所接收的网络数据根据其所属的会话进行分类;特征向量构造器,配置为接收由所述数据分类器分类后属于同一个会话的多个数据包,并将所述多个数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包;针对所述从客户端发送到服务器的数据包,计算与所述数据包的大小相关的第一指标以及与所述数据包到达服务器的时间间隔相关的第二指标;针对所述从服务器发送到客户端的数据包,计算与所述数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标;以及构造包括所述第一指标、第二指标、第三指标和第四指标为其分量的特征向量;协议识别器,接收所述特征向量构造器所构造的特征向量,并基于该特征向量确定待识别的网络协议。
15.如权利要求14所述的网络协议识别设备,其中所述协议识别器包括已知网络协议特征值存储器,其中存储了一个或者多个已知网络协议的已知网络协议特征值以及与该已知网络协议相关联的预定阈值范围;以及比较器,配置为将由所述特征向量构造器所构造的特征向量的大小与所述已知网络协议特征值存储器中存储的一个或者多个已知网络协议特征值进行比较,如果所述特征向量与某个已知网络协议相对应的已知协议特征值的大小之差在与该已知网络协议相关联的预定阈值范围之内,则认为传输所述网络数据所采用的网络协议为所述已知网络协议。
16.如权利要求14所述的网络协议识别设备,其中所述数据接收器还被配置为接收以已知网络协议在学习客户端和学习服务器之间传输的学习网络数据;以及所述特征向量构造器还被配置成为所述学习网络数据中的每个学习会话构造相应的学习特征向量;所述网络协议识别设备还包括已知协议特征值确定装置,用于从所述特征向量构造器获取多个学习会话的学习特征向量,并计算所述多个学习特征向量的特征中心,并且将所述特征中心的大小确定为与所述已知网络协议相对应的已知协议特征值。
17.如权利要求16所述的网络协议识别设备,其中所述已知协议特征值确定装置被配置为以聚类算法来计算所述多个学习特征向量的聚类中心作为所述特征中心。
18.如权利要求17所述的网络协议识别设备,其中所述聚类算法为K-means聚类算法, 而且与所述已知网络协议相关联的预定范围为所述以K-means聚类算法来计算所述多个学习特征向量的聚类中心时的偏差。
19.如权利要求14-18中任意一个所述的网络协议识别设备,其中所述第一指标和第三指标包括所述数据包的平均大小和所述数据包的大小的标准差。
20.如权利要求14-19中的任意一个所述的网络协议识别设备,其中所述第二指标包括所述数据包到达服务器的时间间隔的平均大小和所述数据包到达服务器的时间间隔的标准差,第四指标包括所述数据包到达客户端的时间间隔的平均大小和所述数据包到达客户端的时间间隔的标准差。
21.如权利要求16-20任意一个所述的网络协议识别设备,其中所述特征向量构造器获取同一个会话中的100到600个数据包进行处理。
22.如权利要求16-21任意一个所述的网络协议识别设备,其中所述特征向量构造器不对包括少于100个数据包的会话进行处理。
23.如权利要求14-22中的任意一个所述的网络协议识别设备,其中所述网络协议属于P2P网络协议。
24.—种网络通信系统,包括多个客户端,用于以预定网络协议与外部服务器进行网络通信;以及如权利要求14-23中的任一个所述的网络协议识别设备,用于获取所述多个客户端和外部服务器之间进行通信的网络数据,并判断所述网络数据所采用的预定网络协议。
全文摘要
本发明公开了一种对在客户端和服务器之间传输网络数据所采用的网络协议进行识别的网络协议识别方法,包括步骤获取在传输网络数据时的同一会话中的多个数据包,并将数据包划分为从客户端发送到服务器的数据包和从服务器发送到客户端的数据包;针对从客户端发送到服务器的数据包,计算与数据包的大小相关的第一指标以及与数据包到达服务器的时间间隔相关的第二指标;针对从服务器发送到客户端的数据包,计算与数据包的大小相关的第三指标以及与所述数据包到达客户端的时间间隔相关的第四指标;构造包括第一、第二、第三和第四指标为其分量的特征向量;以及根据该特征向量来确定传输网络数据所采用的网络协议。本发明还涉及与该协议识别方法相对应的协议识别设备以及采用该协议识别设备的网络通信系统。
文档编号H04L29/08GK102164182SQ20111009651
公开日2011年8月24日 申请日期2011年4月18日 优先权日2011年4月18日
发明者程利军 申请人:北京神州绿盟信息安全科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1