一种网络流量的识别方法及装置的制造方法_2

文档序号:9600726阅读:来源:国知局
发明实施例不仅提取端口,而且提取IP地址,利用两者进行判断,识别结果更加全面。识别过程参见下述步骤S104及步骤S105。
[0052]步骤S104:在预设流表中查找所述IP地址及端口。
[0053]本实施例中,预先设置有流表,流表中存储有会话信息-网络协议及应用的对应关系,即每一个会话信息对应一个网络协议及应用,且不同的会话信息对应不同的网络协议及应用。其中,网络协议为应用层协议,如HTTP协议、FTP协议或者TELNET协议等;应用指的是具体的应用程序,例如,百度、新浪、迅雷、乐视等。
[0054]流表可以是通过对大量的数据包进行监测生成的,监测过程中记录数据包使用的应用以及每一个应用使用的应用层层协议,将应用及应用层协议结合起来,并记录应用及应用层协议对应的会话信息。会话信息指的是IP地址及端口。其中,地址及端口可以是源IP地址、源端口、目标IP地址及目标端口。需要说明的是,流表中记录的对应关系并非完全依照国际规定,是从实际的通信数据包中监测到的,因此能真实反映数据包实际使用的应用层协议及应用类型。
[0055]需要说明的是,流表中的会话信息中包括IP地址,IP地址与应用之间可能存在唯一的对应关系,例如,新浪网站的IP地址为218.30.13.36。因此,流表中需要记录IP地址,进而在待识别数据包中需要提取IP地址。
[0056]步骤S105:当查找到时,将查找到的所述IP地址及端口对应的网络协议及应用确定为所述待识别数据包的应用层使用的网络协议及应用。
[0057]其中,若在流表中能查找到待识别数据包的IP地址及端口,将查找到的该IP地址及端口对应的数据确定为待识别数据包的应用层所使用的网络协议及应用。综合来看,步骤S101可以确定出待识别数据包传输层及其以下各层的网络协议,步骤S105可以确定出待识别数据包应用层使用的网络协议以及应用层具体使用到的应用类型。
[0058]步骤S106:当未查找到时,将所述待识别数据包中的负载数据与预设特征库中的特征关键词进行匹配;当匹配成功时,将匹配成功的特征关键词对应的网络协议及应用确定为所述待识别数据包的应用层使用的网络协议及应用。
[0059]本实施例中,预先设置有特征库,该特征库中预先存储有特征关键词-网络协议及应用的对应关系,即每组特征关键词与每一个网络协议及应用对应,且不同组的特征关键词与不同的网络协议及应用对应。
[0060]需要说明的是,一组特征关键词中可以包括一个或多个特征词。例如,特征关键词包括“GET、URL、sina、HTTP/1.1”,该组特征关键词对应的网络协议为HTTP,对应的应用为新浪。将待识别数据包中的负载数据与每组关键词进行匹配,当与某组特征关键词匹配成功时,则将该组特征关键词对应的网络协议及应用确定为应用层的网络协议及应用层使用的应用类型。
[0061]可选地,为了提高比对效率,并一定将全部的负载数据与特征库中的特征关键词进行比对,可以是负载数据的第一行数据。因为,负载数据中的第一行往往记录的是协议、域名、IP地址等。
[0062]现有技术中,识别应用层的协议时,仅仅使用源端口或者目标端口,即按照国际规定,将端口对应的协议识别为待识别数据包应用层使用的协议。例如,端口使用的是80端口,则认为应用层使用的HTTP协议,若使用的是20或21端口,则认为应用层使用的是FTP协议。
[0063]然而,在当今的网络通信过程中,一部分数据包并不符合上述国际规定。如,为了绕过防火墙,大量的非HTTP协议的数据包会使用80端口 ;又如,为了在同一台服务器上架设多个不同的网站,也会使用8000端口或8080端口发送HTTP协议的数据包;再如,基于P2P协议的各种应用,会随机使用不同的端口。面对这些并未按照国际规定使用端口的情况,利用现有技术中的识别方法识别应用层协议,识别结果不准确。
[0064]并且,现有技术中的识别方法只能确定出应用层使用的网络协议,并不能更具体地确定出使用的哪一种应用,识别结果不全面。
[0065]本发明实施例提供的网络流量的识别方法,对获取到的待识别数据包的头部进行识别,可以确定出待识别数据包的传输层及其以下各层分别使用的网络协议,并且,在待识别数据包的头部中提取IP地址及端口,并在预设流表中查找该IP地址及端口,当查找到时,将该IP地址及端口对应的网络协议确定为待识别数据包应用层使用的网络协议,并且将该IP地址及端口对应的应用确定为待识别数据包应用层使用的应用类型,与现有技术相比,一方面,本实施例中预先设置有流表及特征库,是检测大量的数据包生成的,可以真实反映数据包的应用层协议使用的端口,因此利用流表及特征库可以准确识别应用层协议,另一方面,流表及特征库中记录有与应用的对应关系,因此能够确定出待识别数据包使用的应用类型,识别结果更加全面。
[0066]另外,上述流表可以包括两个,分别为TCP流表及UDP流表,分别存储传输层为TCP协议或UDP协议各自对应的数据,数据即会话信息-网络协议及应用的对应关系。
[0067]在实际的网络流量的识别过程中,可能由于流表记录的数据量的限制,在流表中无法查找到待识别数据包的IP地址及端口,面对这种情况,本发明另一实施例提供了网络流量的识别方法,具体地,如图2所示,该识别方法在上述实施例的基础上,还包括:
[0068]步骤S107:将IP地址及端口添加至预设流表中。
[0069]其中,当待识别数据包中的负载数据与特征库中的特征关键词比对成功时,还可以将IP地址及端口添加至预设流表中,这样,当后续的数据包利用流表进行识别时,识别成功率更高,从而提高了后续数据包的识别效率。
[0070]在上述实施例中,将待识别数据包中的负载数据与每组关键词进行匹配,当未与某组特征关键词匹配成功时,说明匹配失败,输出失败信息。
[0071]可选地,上述各个实施例中的步骤S102对所述待识别数据包的头部进行识别,以确定所述待识别数据包的传输层及其以下各层分别使用的网络协议的具体实现方式可以是:
[0072]利用预设协议树对所述待识别数据包的头部进行识别,以确定所述待识别数据包的传输层及其以下各层分别使用的网络协议。
[0073]需要说明的是,预设协议树可以是现有技术中的任意一种协议树,该协议树包括一个根节点及与该根节点具有一定层次关系的其他节点,每个节点表示一个协议,从根节点到其他节点的推导路径上分别包含若干个匹配条件,将待识别数据包与协议树中确定的匹配条件进行匹配,根据匹配结果分层查找对应的网络协议。更详细的识别过程可以参照现有技术中的协议树识别方法。
[0074]可选地,上述的步骤S103在所述待识别数据包的头部中提取IP地址及端口的具体实现方式可以是下述三种方式中的任意一种,即:
[0075]在所述待识别数据包的头部中提取同一端的IP地址及端口 ;其中,所述同一端为发送端或接收端;或,在所述待识别数据包的头部中提取两端的IP地址及任意一端的端口 ;或,在所述待识别数据包的头部中提取两端的IP地址及两端的端口。
[0076]其中,发送端也就是源端,接收端也就是目的端。流表中记录的会话信息中包括的是源端IP地址、源端端口、目的端IP地址及目的端端口。因此,可以在待识别数据包中提取四个参数中的两个、三个或四个进行识别。当然,为了提高识别准确度,在提取两个参数时,提取的是同一端的IP地址及端口,在提取三个参数时,提取的是发送端的IP地址、接收端的IP地址及任意一端的端口。
[0077]下面对本发明实施例提供的网络流量的识别装置进行介绍,需要说明的是,有关下文的网络流量的识别装置的说明可参照上文的网络流量的识别方法,以下并不做赘述。
[0078]参照图3,其示出了本发明实施例提供的网络流量的识别装置的结构,具体包括:数据包获取单元100、网络协议确定单元200、IP地址端口获取单元300、IP地址端口查找单元400、第一协议及应用确定单元500、负载数据匹配单元600及第二协议及应用确定单元700。其中:
[0079]数据包获取单元100,用于获取待识别数据包;
[0080]网络协议确定单元200,用于对所述待识别数据包的头部进行识别,以确定所述待识别数据包的传输层及其以下各层分别使用的网络协议;
[0081]IP地址端口获取单元300,用于在所述待识别数据包的头部中提取IP地址及端P
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1