CN104683241A - 一种报文检测方法及装置 - Google Patents
一种报文检测方法及装置 Download PDFInfo
- Publication number
- CN104683241A CN104683241A CN201510080943.4A CN201510080943A CN104683241A CN 104683241 A CN104683241 A CN 104683241A CN 201510080943 A CN201510080943 A CN 201510080943A CN 104683241 A CN104683241 A CN 104683241A
- Authority
- CN
- China
- Prior art keywords
- message
- information
- protocol
- match
- stream
- 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
Links
Abstract
本发明实施例公开了一种报文检测方法及装置,其中,所述方法包括如下步骤:将接收到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到;当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。本发明实施例对关联识别表中的匹配信息进行匹配时,由于关联识别表中的匹配信息通过提取用于创建数据通道的控制报文内容得到,并与控制报文经协议识别后得到的协议相对应,因此可以不需要检测报文内容而识别出协议,从而提高了协议识别速度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种报文检测方法及装置。
背景技术
DPI(Deep Packet Inspection,深度包检测)是一种包(报文)检测技术,它除了对IP包中的源IP地址、目的IP地址、源端口、目的端口、会话信息等(IP包层4以下数据)信息进行检测分析外,还对IP包中的荷载Payload(应用层数据)进行深入分析,从而可以更高效地识别出网络上的各种应用。
目前,DPI技术已广泛应用于流量控制、内容计费和网络安全等领域。在DPI技术应用中,报文检测过程中的协议识别是一个关键的技术,后续的分析处理都需要依据协议识别的结果,协议识别的速度、广度和精度在很大程度上决定了DPI设备性能的好坏。
参见图1,为现有DPI技术中进行协议识别的流程示意图,包括如下步骤:
1)对接收的报文进行流表匹配,如果匹配成功,则进行策略执行;如果不成功,则执行步骤2;
现有技术无论对关联协议(控制通道数与数据通道分离的协议)还是非关联协议都进行流表匹配,这里的流表匹配是指对接收到的报文中的匹配信息与流表中存储的匹配信息进行匹配,该匹配信息一般包括:协议域(Type)、源IP地址(SIP)、源端口(SPort)、目的IP地址(DIP)、目的端口(DPort)等信息(以上五个信息简称五元组信息)。流表中的五元组信息确定了报文所在流中的相关信息,流中的相关信息内容并不限定,如可以包括用户ID、策略动作、统计类型、协议ID等信息,但一般都会包括策略动作信息,当流表匹配成功时,就可以通过五元组信息的索引查找得到相关的策略动作,并进行策略执行。
2)对报文进行规则匹配,输出匹配结果;
如果流表匹配不成功,则说明并没有对应的策略,此时,需要进行协议识别、策略管理等步骤来建立五元组信息与策略的对应关系。其中,协议识别首先对报文进行规则匹配,规则匹配是指提取报文中的相关信息与规则库中的规则进行匹配以对报文进行识别,规则匹配时,由于规则库数据庞大以及需要进行匹配算法运算,因此,其处理速度往往较慢。
3)根据匹配结果进行协议验证,识别出相关协议;
协议验证对规则匹配输出后的结果进行验证分析,从而识别出相关协议。
4)根据识别的协议进行策略管理,同时更新流表;
协议识别成功后,可以将报文上送到CPU进行策略管理,并更新流表中的相关信息,包括五元组信息与策略之间的对应关系;通过更新流表,当下一次有报文进入时,便可以根据流表中的五元组信息索引到相关的策略进行策略执行。
发明人在实现本发明的过程中,发现现有技术至少存在如下缺点:
当流表匹配不成功时,需要通过规则匹配、协议验证、策略管理等步骤进行协议识别及流表更新,而规则匹配、协议验证等步骤处理速度往往较慢,因此,使得协议识别速度得不到进一步提升。
发明内容
本发明实施例提供一种报文检测方法及装置,用于提高协议识别速度,所述方法,其中:
一种报文检测方法,包括如下步骤:
接收报文,对所述报文进行流表匹配;
当所述流表匹配不成功时,对所述报文进行关联识别表匹配;所述关联识别匹配包括对所述报文中的三元组信息进行匹配,所述三元组信息包括协议域、源IP、源端口或者所述三元组信息包括协议域、目的IP、目的端口;
当所述关联识别表匹配成功时,输出与所述关联识别表匹配成功的协议信息。
以及,
一种报文检测方法,包括如下步骤:
将接收到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到;
当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
以及,
一种关联协议识别装置,包括:
接收单元,用于接收报文;
关联识别表匹配单元,用于将接收单元接到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到;当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
本发明实施例对关联识别表中的匹配信息进行匹配时,由于关联识别表中的匹配信息通过提取用于创建数据通道的控制报文内容得到,并与控制报文经协议识别后得到的协议相对应,因此可以不需要检测报文内容而识别出协议,从而提高了协议识别速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术进行协议识别示意图;
图2为本发明实施例二方法流程图;
图3为本发明实施例三协议识别示意图;
图4为本发明实施例三方法流程图;
图4A为本发明实施例三流表及关联识别表创建配置流程;
图5A为本发明实施例三通过控制通道创建数据通道示意图;
图5B为本发明实施例三通过控制通道创建数据通道另一示意图;
图6为本发明实施例三删除流表示意图;
图7为本发明实施例三对控制通道进行老化示意图;
图8为本发明实施例三对数据通道进行老化示意图;
图9为本发明实施例四协议识别示意图;
图10为本发明实施例五装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下将通过具体实施例和相关附图,对本发明作进一步详细说明。
实施例一
本发明实施例一提供了一种报文检测方法,包括如下步骤:
接收报文,对所述报文进行流表匹配;
当所述流表匹配不成功时,对所述报文进行关联识别表匹配;所述关联识别匹配包括对所述报文中的三元组信息进行匹配,所述三元组信息包括协议域、源IP、源端口或者所述三元组信息包括协议域、目的IP、目的端口;
当所述关联识别表匹配成功时,输出与所述关联识别表匹配成功的协议信息。
其中,所述关联识别表匹配包括:将所述报文的三元组信息与关联识别表中的三元组信息进行匹配,所述关联识别表中的三元组信息通过提取用于创建数据通道的控制报文内容得到,所述关联识别表中的三元组信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到。
本发明实施例当所述报文进行所述关联识别表匹配不成功时,对所述报文进行协议识别,所述协议识别包括规则匹配和协议验证。
此外,当流表匹配成功时,对匹配成功的报文执行相应的策略。
在本发明实施例中,流表匹配主要对报文中的五元组信息和流表中的五元组信息进行匹配,五元组信息可以包括协议域、源IP、源端口、目的IP和目的端口;五元组信息主要用于确定一条流,通过五元组信息来对流表进行索引查找,如果有其他信息也能完成相应的功能,那么也可以将五元组信息换成其他信息。
本发明实施例中的流表和关联识别表可以为两个不同的表,也可以是同一个表(例如都位于流表当中);当位于两个表时,可以使用完全匹配法分别对流表和关联识别表进行匹配;当位于同一个表时,可以使用最长匹配法来实现对流表和关联识别表的依次匹配。
本发明实施例在流表匹配未成功时,进行关联识别表匹配,可以直接识别出协议,而不需再经过协议识别过程,因此,可以提高协议识别速度。
实施例二
如图2所示,本发明方法实施例二提供了一种报文检测方法,用于提高协议识别速度,包括如下步骤:
S101、将接收到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到;
这里的第一匹配信息包括:协议域、源IP和源端口,或者第一匹配信息包括协议域、目的IP和目的端口;需要说明的是,这里的第一匹配信息来自控制通道和数据通道分离的协议报文(如绝大多数P2P协议),在这些协议的数据传输需要通过控制通道创建数据通道后才能进行,当控制报文创建数据通道时,可以提取第一匹配信息;第一匹配信息又与控制报文经过协议识别后得到的协议信息相对应,此时,如果关联识别表匹配成功,则可以直接识别出协议,不需要再进行规则匹配、协议验证等步骤。
例如,FTP(File Transfer Protocol,文件传输协议)协议(关联协议的一种)传输时,客户端会先与服务器的21号端口建立一个控制连接,来创建一个控制通道;接着,通过所述控制通道发送建立数据通道命令;具体命令根据协议不同而不同,但一般都会在相应的命令中包括有三元组信息,例如,FTP协议建立数据通道时,客户端发送PORT命令中会包含相应的进行数据连接的端口信息。此时,就可以通过提取相关控制报文(如PORT命令)中三元组信息作为第一匹配信息。
在进行关联识别表匹配之前,本发明实施例先对接收到的所述报文进行流表匹配,所述流表匹配包括对所述报文中的第二匹配信息与流表中的第二匹配信息进行匹配,所述第二匹配信息用于查找所述报文对应的流中的相关信息,包括所述报文对应的执行策略;在本发明实施例中,第二匹配信息为协议域、源IP、源端口、目的IP、目的端口;一般通过以上5个信息就可以确定报文所在流的相关信息,包括用户ID、策略动作、统计类型(如流量统计、包大小统计等)、流ID(用于表示对应于哪个用户)、协议ID等信息。
这里需要说明的是,五元组所确定的流中信息并不限定,但一般都会包括策略动作信息,使得当五元组匹配成功后,可以通过五元组查找到所述报文对应的策略动作,执行相应的策略。同时,第二匹配信息也并不局限于协议域、源IP、源端口、目的IP、目的端口等五项,如果流需要增加更多的识别信息才能确定或只需要不到五个信息就可以确定,则第二匹配信息的内容也可以进行相应的增加或减少。
上述流表和关联识别表在本发明实施例中可以采用Hash表(哈希表)或TCAM表(Ternary Content Addressable Memory,三态内容寻址存储器)或其他形式的表来实现。同时,两者可以位于不同的匹配表,即采用两个不同的表来分别存储流表和关联识别表中的数据;两者也可以位于同一匹配表,即采用同一表来存储流表和关联识别表中的数据。当位于不同的匹配表时,采用完全匹配法进行流表匹配和关联识别表匹配;当位于相同的匹配表时,采用最长匹配法进行流表匹配和关联识别表匹配。
本发明实施例中,还根据接收到的所述报文的类型(如一般协议的报文或关联协议的控制报文或关联协议的数据报文)配置所述流表或所述关联识别表,包括更新所述流表中所述第二匹配信息或所述关联识别表中所述第一匹配信息。
S102、当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
输出的协议信息即为匹配成功后的信息,可以通过对协议进行策略管理,并更新流表,这里的策略与协议相对应,如对相关报文执行丢弃、通过、做标记等动作。
如果关联识别表匹配未成功,则对报文进行规则匹配、协议验证等步骤,与现有技术类似,通过这些步骤,可以对协议进行识别,但速度相比关联识别表匹配要慢很多。
本发明实施例中,当流表匹配成功时,直接根据匹配结果进行策略执行。
本发明实施例中,还可以对流表和关联识别表进行老化处理,如果监测到一段时间内数据通道或控制通道没有报文进入,删除所述流表中的相关信息和/或所述关联识别表中的相关信息。
本发明实施例在关联协议的控制报文通过控制通道创建数据通道时,通过提取报文中的第一匹配信息,第一匹配信息又与控制报文经协议识别后得到的协议信息相对应,因此,只要关联识别表匹配成功,即可以完成协议识别,而不再需要经过规则匹配、协议验证等步骤,从而加快了协议识别速度。
实施例三
本发明实施例提供了一种报文检测方法,用于提高协议识别速度,参见图3,为本发明实施例流程示意图,当接收到报文时,先进行流表匹配,如果匹配不成功,则进行策略执行;
当流表匹配不成功,则本发明实施例并不进行规则匹配,而是再进行关联识别表匹配,关联识别表中存放着三元组信息以及三元组信息对应的协议ID,这些三元组信息由关联协议的控制通道创建数据通道时得到,其对应的协议ID由控制报文经过协议识别后得到;如果三元组信息匹配成功,则直接根据得到的协议进行策略管理;如果不成功,则再进行规则匹配、协议验证等步骤进行协议识别。
上述关联协议是指协议的控制通道与数据通道分离的协议,本发明实施例在关联协议的控制通道创建数据通道的过程中提取三元组信息,这些三元组信息与关联协议的控制报文经识别后得到的协议对应;因此,此时只需要匹配三元组,如果匹配成功,则可以识别出协议,从而根据识别出的协议进行策略管理,这样可以节省规则匹配、协议验证等识别的环节,从而可以在很大程度上提升协议识别的速度。
需要说明的是,上述流表匹配是指对报文中的匹配信息与流表中的匹配信息进行匹配,流表中的匹配信息可以确定报文所在流中的相关信息,包括,包括用户ID、策略动作、统计类型、流ID、协议ID等信息。这里还需要说明的是,五元组所确定的流中信息并不限定,但一般都会包括策略动作信息,使得当五元组匹配成功后,可以通过五元组查找到所述报文对应的策略动作,执行相应的策略。
本发明实施例中,以协议域(Type)、源IP、目的IP、源端口和目的端口等五个信息(五元组)作为匹配信息,如果有协议还需要再加上其他信息才能匹配,或者少于五个信息的就能匹配,那么可以根据具体情况对匹配信息进行调整。同理,关联识别表中的匹配信息也不限定。
下面以流表中的匹配信息为五元组信息,关联识别表中的信息为三元组信息为例,来对本发明实施例进行具体描述,参见图4,具体包括如下步骤:
S201、接收报文,获取所述报文的五元组信息,所述五元组信息包括协议域(Type)、源IP(SIP)、源端口(SPort)、目的IP(DIP)和目的端口(DPort);
这里的报文是指需要进行识别的报文,其中包括控制通道和数据通道分离的关联协议报文,关联协议是应用很广的协议,如在P2P(Peer to Peer,点对点)应用领域,很多协议都是关联协议,而P2P在网络流量中占据着重要的比重(晚间高峰时能达到90%以上);同时,常见的FTP、SIP(Session InitiationProtocol,会话起始协议)等协议也是关联协议,因此,如果能对关联协议的识别速度进行提升,那么整个协议识别过程的速度也会因此而得到提升。
对于关联协议报文,无论是控制通道的报文(控制报文)还是数据通道的报文(数据报文)都需要进行接收及进行后续识别;
五元组信息中的协议域(Type)表示此报文是基于TCP(TransmissionControl Protocol,传输控制协议)或UDP(User Datagram Protocol,用户数据报协议)进行传输的;源IP(SIP)和源端口(SPort)分别表示发送此报文用户的IP地址和端口号;目的IP(DIP)和目的端口(DPort)分别表示接收此报文用户的IP地址和端口号。
五元组信息在流表中相当于一条索引信息,可以通过该信息来查找用户ID、策略动作、统计类型、流ID、协议ID等流表中的信息。需要说明的是,上述流表中的信息并不是唯一的,可以根据实际应用情况来增加或删减相应的信息,但上述信息一般都会包括策略动作,当匹配成功时,可以通过五元组信息查找到相应的策略,进行策略执行。
S202、对报文的五元组信息与存储的五元组信息进行匹配,判断是否匹配成功;如果匹配成功,则进行策略执行;如果匹配不成功,执行步骤S203;
对五元组信息进行匹配在流表中进行,流表中存储的信息除了五元组信息外,还可以包括:用户ID、流ID、策略动作(如丢弃、通过、上传CPU等)、统计类型等信息。流表中的五元组信息相当于一个索引信息,可以通过五元组信息索引用户ID、流ID、策略动作等信息。通过匹配五元组信息,如果成功,说明流表中已经存在着该五元组信息对应的策略动作,可以通过五元组信息查找得到策略动作,接着执行该策略;如果没有匹配成功,则说明还没有该五元组信息对应的策略,需要执行后续步骤。
S203、对报文的三元组信息与存储的三元组信息进行匹配,如果成功,则执行步骤S206,对匹配成功的协议进行策略管理;如果匹配失败,执行步骤S204;
三元组信息包括协议域、源IP、源端口三个信息,或者包括协议域、目的IP、目的端口三个信息。由于源节点与目的节点都是相对的(如同样是客户端向服务器发送消息这一动作,既可以将客户端看成源节点,也可以将服务器看成源节点),因此,三元组信息既可以通过协议域、源IP、源端口来表示,也可以通过协议域、目的IP、目的端口来表示。
在本发明实施例中,匹配三元组的信息在关联识别表中进行,关联识别表中记录有三元组信息和控制通道报文经过协议识别后识别出来的协议,在本发明实施例中,使用协议ID来表示这些协议,在另一实施例中,也可以使用其他方式来表示协议。其中,关联识别表中的每个三元组信息都与一个协议对应。如果三元组匹配成功,表示识别出了这些协议,后续执行步骤S206,对这些匹配成功的协议进行策略管理。
在匹配过程中,如果事先知道源节点和目的节点的定义以及存储的三元组信息是协议域、源IP、源端口还是协议域、目的IP、目的端口,那么,可以直接对报文中相应的三元组信息进行匹配;如果事先并不清楚定义及存储的三元组是采用协议域、源IP、源端口还是协议域、目的IP、目的端口,则可以先对报文中的协议域、源IP、源端口(或协议域、目的IP、目的端口)进行关联识别表的三元组匹配,如果不成功,再用协议域、目的IP、目的端口(或协议域、源IP、源端口)进行匹配。
S204、对报文进行规则匹配,输出匹配结果;
当流表匹配不成功时,对协议进行识别,包括规则匹配、协议验证等步骤,其中,规则匹配通过提取接收的报文特征信息与规则库的表达式进行匹配,若匹配成功输出匹配结果。匹配一般通过DPI加速芯片来完成,这样可以加快匹配速度。如果匹配不成功,可提交到CPU,通过软件再来进行协议识别。规则匹配由于将报文中的特征信息与规则库中的表达式进行匹配,而规则库往往很庞大,匹配时又需要经过匹配算法运算,因此,相对比流表或关联识别表中对五元组或三元组进行的简单匹配,规则匹配往往需要花费大量时间。尤其是规则匹配由软件处理来处理时,其处理效率相比于硬件实现会变得更加低下。
S205、根据匹配结果进行协议验证;
对通过规则匹配后输出的结果进行验证分析,根据验证结果判断出是否完成识别,如果是,则输出用以表示协议的协议ID。
S206、根据经规则匹配、协议验证后识别出的协议进行策略管理,并更新流表;
进行协议验证后确定该协议对应的策略,进行策略管理,并将该协议及其对应的策略更新到流表中,通过更新流表,使得下一次有报文如果匹配五元组时,可以直接识别出该报文对应的协议以及与该协议对应的执行策略。
本发明实施例在关联识别表进行三元组匹配过程中,关联识别表中的三元组信息在控制报文创建数据通道时,提取控制报文的内容得到,其中,上述三元组信息与控制报文经过协议识别后识别出来的协议相对应。为使方案更加清楚完整,下面对上述三元组信息的创建过程以及流表和关联识别表的配置作详细阐述,参见图4A,具体可以包括如下步骤:
S2031、接收报文,判断报文类型,如果是控制报文,执行步骤S2032;否则,执行步骤S2033,通过五元组匹配、三元组匹配等流程对协议进行识别。
判断报文类型的步骤在流表匹配之前,由于关联协议控制通道和数据通道是分离的,当关联协议报文过来时,首先需要建立控制通道,控制通道并不传输用户数据,而是用于建立协议的控制链接,后续通过创建数据通道来来传输用户数据。一般创建控制通道时,客户端与服务器的某一端口进行连接,进而创建控制通道。例如,FTP协议控制通道创建时,客户端会与服务器的21号端口进行连接。
对于跟控制通道有关的控制报文,执行步骤S2032,否则,如果判断报文为关联协议的数据报文或非关联协议的报文,则执行步骤S2033,通过流表匹配、关联识别表匹配等过程进行处理,具体可以参见图4所示的流程。
S2032、对控制报文进行协议识别或内容分析,当控制报文用于控制通道创建数据通道时,提取相关的三元组信息并配置流表和/或关联识别表;
关联协议控制通道和数据通道是分离的,其中,控制通道并不传输用户数据,而是用于建立协议的控制连接,后续通过创建数据通道来传输用户数据。一般创建控制通道时,客户端与服务器的某一端口进行连接,进而创建控制通道。例如,FTP协议控制通道创建时,客户端会与服务器的21号端口进行连接。
当判断接收的为控制报文时,先进行流表匹配;如果匹配不成功,则通过规则匹配、协议验证等步骤来进行协议识别(具体请参见步骤S204、S205等步骤);协议识别后对识别出来的协议进行策略管理,并将策略管理后的结果更新至流表,至此,流表中又多了一个表项,该表项记录了五元组信息以及对应的策略动作(还可以有协议ID、流ID等其他信息),当下次再有包含相同的五元组信息的报文进入时,就可以通过匹配流表中的五元组信息查找到相应的策略动作,并执行该策略。
协议的首包由于是第一次接收,所以一般都需要经过规则匹配、协议验证等步骤来进行协议识别。当协议控制报文为非首包时,可以对报文内容进行分析(包括提取五元组信息,后续进行流表匹配等动作),根据报文的内容后续执行相应的步骤,如流表匹配等步骤。
下面以FTP协议为例,来对数据通道的具体创建以及流表、关联识别表的配置过程作详细说明:
FTP协议支持两种连接模式,一种为Standard模式(也称PORT模式,主动模式);另一种是Passive模式(也称PASV模式,被动模式)。Standard模式中,FTP客户端发送PORT命令到FTP服务器,告诉服务器进行数据连接时客户端使用的端口;Passive模式中,FTP客户端发送PASV命令到FTP服务器,服务器根据PASV命令告诉客户端进行数据连接时服务器使用哪个端口,让客户端来连接这个端口。
以下通过PORT模式进行连接为例来对数据通道创建流程作具体说明。参见图5A及图5B,假设客户端的IP为2.2.2.2,服务器的IP为1.1.1.1,包括如下步骤:
1)建立控制通道,配置控制流流表和数据流流表;
参见图5A,首先,客户端使用自己的一个端口(如端口1173)通过TCP协议先和FTP服务器的21端口建立连接以创建控制通道;同时配置控制流流表和数据流流表,这里的控制流流表和数据流流表都是流表的一部分,其中,控制流流表中的表项针对的是控制报文,数据流流表中的表项针对的是数据报文。
此时,控制流流表中的五元组信息如下:
源端口:1173;源IP:2.2.2.2;目的端口:21;目的IP:1.1.1.1;Type:TCP;
数据流流表中的五元组信息如下:
源端口:X;源IP:X;目的端口:X;目的IP:1.1.1.1;Type:TCP;(字母X表示该信息未知,下同);此时的数据流流表是一个包含不完整信息的临时数据流流表;
2)通过客户端发送的PORT命令获取三元组信息,并配置关联识别表;
在控制通道建立完成后,客户端向服务器发送PORT命令用以建立数据连接,创建数据通道,PORT命令中包括了客户端的一个端口(如端口1174),服务器可以根据这个端口来连接客户端。
此时,可以根据PORT命令来配置关联识别表,其中,关联识别表中三元组信息为:
源端口:1174;源IP:2.2.2.2;Type:TCP;
关联识别表中除了三元组信息,还可以包括三元组信息对应的协议ID(用于表示协议),该协议ID可以通过步骤S2032对控制报文进行协议识别后得到(假设此时已对控制报文进行了协议识别,并提取出了与五元组对应的协议ID);这里需要说明的是,此时的源端口和源IP是针对客户端为源节点,服务器为目的节点而来的;如果将服务器看成源节点,客户端看成目的节点,则三元组信息应该是:目的端口1174;目的IP:2.2.2.2;Type:TCP;因此,源端口、源IP以及目的端口、目的IP可以具体情况选择其中一种表述方法即可。
同时,可以更新数据流流表中的五元组信息为:
源端口:1174;源IP:2.2.2.2;目的端口:X;目的IP:1.1.1.1;Type:TCP;此时的数据流流表中的五元组信息仍然是不完整的(缺少目的端口);
3)服务器发送SNY报文,创建数据通道;
参见图5B,服务器收到PORT命令后,主动打开端口20向客户端1174端口发送SYN报文进行TCP协商来完成数据通道的建立,此时,可以确定数据流流表中的五元组信息为源端口:1174;源IP:2.2.2.2;目的端口:20;目的IP:1.1.1.1;Type:TCP。这里需要说明的是,由于在实际网络中,会存在TCP协商成功但实际数据通道并没有建立成功的情况(此时,需要再次进行TCP协商),所以只有实际接收端收到发送过来的数据报文时才说明数据通道已真正建立,因此,此时的SYN报文协商过程中提取的五元组信息还不能放到流表中,但建数据通道过程中的三元组信息是确定的(TCP协商在PORT命令之后,不影响已经提取的三元组信息),可以被保存在关联识别表中。
上述过程为通过Standard模式进行FTP建链的过程,采用Passive模式或其他协议时工作方式与此类似,都是可以通过创建数据通道时的相关命令来提取关联识别表所需的IP、端口和Type信息。
这里还需要说明的是,上述例子仅仅是本发明一个具体实施例,在其他实施中,配置流表及关联识别表可以根据协议的不同以及实际应用情况进行处理,并不局限于上述实施例所列举的情形。
可选地,在配置关联识别表时,还可以设置一个关联标志位,用于标识数据流表是否存在着与之关联的关联识别表,如果存在,则可以设置标志位为1;如果不是,则可以设置为0。通过设置关联标志位,可以方便地查看数据流表是否存在与之关联的关联识别表,使得后续操作(如删除关联识别表)更加简单方便。
本发明实施例中,如果不需要对关联识别协议进行识别时,可以将控制通道进行删除,同时也对相关的流表和关联识别表进行删除,参见图6,具体可以包括如下步骤:
S301、接收删除控制通道消息;
S302、删除控制流流表;
S303、删除数据流流表;
S304、判断数据流流表是否关联着关联识别表,如果是,转到步骤S305;如果否,结束;
这里判断数据流流表是否关联着关联识别表可以采用通过判断上文介绍的关联标志位来进行,该关联标志位在创建关联识别表时创建,如果数据流表存在着与之关联的关联识别表,其值为1;如果不是,其值为0;
S305、删除关联识别表。
至此步骤,完成对关联识别表的删除。
需要说明的是,在进行流表删除时,上述步骤是一个逻辑实现过程,具体操作时,可以先删除掉关联识别表,再删除掉数据流流表,最后删除掉控制流流表;在对控制通道或数据通道进行老化时,也可以采用类似的方法。
本发明实施例中,还可以对流表及关联识别表进行老化处理,其中,包括控制通道的老化和数据通道的老化。
控制通道的老化是指当检测到一段时间内某条控制通道没有报文进入,则将该控制流对应的控制流流表删除,同时删除控制通道对应的数据流流表,如果数据流流表关联着关联识别表,则也将关联识别表删除。
参见图7,控制通道的老化具体可以包括如下步骤:
S401、定时判断控制通道是否需要老化;如果是,转到步骤S402,如果否,继续判断是否需要老化;
每隔一定时间间隔判断控制通道是否需要老化,如果判断得到控制通道在一段时间内某条控制流没有报文进入,则说明需要老化;
S402、删除控制流流表;
S403、删除数据流流表;
S404、判断该数据流流表是否关联着关联识别表;如果是,执行步骤S405,如果否,执行步骤S406;
S405、删除关联识别表;
S406、判断控制流流表对应的数据流流表是否都删除完成;如果是,则结束流程,如果否,转到步骤S403。
至此完成控制通道老化的流程。
参见图8,数据通道的老化具体可以包括如下步骤:
S501、定时判断数据通道是否需要老化;如果是,转到步骤502,如果否,继续判断是否需要老化;
S502、删除控制流流表;
S503、删除数据流流表;
S504、判断该数据流流表是否关联着关联识别表,如果是,执行步骤S505;如果否,结束流程。
S505、删除关联识别表。
至此完成数据通道老化的流程。
这里需要说明的是,控制通道和数据通道老化流程中判断数据流流表是否关联着关联识别表都可以采用判断关联标志位来进行,具体判断方法可参见上文,在此不再赘述。
本发明实施例中,流表和关联识别表的匹配过程(五元组、三元组信息的匹配过程)可以通过NP(Net Processor,网络处理器)、FPGA(Field ProgrammableGate Array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuits,专用集成电路)等专用硬件处理单元来完成,处理速度比较快,采用完全匹配法进行匹配。当有数据报文需要进行关联协议识别时,如果按照现有方法,流表中五元组信息没有匹配成功时,需要进行规则匹配和协议验证这两个步骤,因此,由于规则库的数量及匹配算法运算,降低了处理速度;而采用本发明实施例中的方法时,如果流表中的五元组信息匹配没有成功,则进行关联识别表三元组信息匹配,匹配成功则可以直接进行策略管理,而不需要再经规则匹配和协议验证来对协议进行识别。当有大量数据需要匹配识别时,流表和关联识别表的匹配过程都采用硬件处理,可以大大加快处理速度,提高处理效率。
本发明实施例另一好处在于,如果协议能够通过关联识别表识别出来,则不需要经过规则匹配和协议验证两个模块处理,而规则匹配需要用到很多规则,因此,也需要很多空间存储这些规则,而本发明实施例中由于不需要经过规则匹配,因此,在加速匹配的过程当中还能节省存储规则的空间。
此外,当有内容加密(如IP报文第7层信息)的数据报文进来时(三元组信息还是可以检测到),由于该数据报文中的三元组信息和协议ID在建数据通道时就已经完成,因此,可以根据三元组信息找到对应的协议ID,完成对该协议的识别。而现有技术因为没有关联识别表,只能对整个报文进行协议识别,但因为报文内容经过加密,从而无法完成协议识别任务。
实施例四
本发明实施例三提供了一种关联协议识别方法,用于提高协议识别速度。
参见图9,在本发明实施例中,关联识别表中的信息并不单独存储,而是跟流表一起存储,以一个匹配表的形式进行匹配,此时,匹配时采用最长匹配法进行匹配。
当接收报文时,先在流表中进行五元组信息匹配,如果匹配成功,进行策略执行;
当五元组信息匹配不成功时,再在流表中进行三元组信息匹配,如果匹配成功,则进行策略管理;
如果都未匹配成功,则通过规则匹配、协议验证等步骤进行协议识别。
本发明实施例中,流表包括三元组信息以及与之对应的协议ID,其获取方法及流表的配置方法可参见实施例三中的相关步骤,在此不再赘述。
本发明实施例中,控制通道创建数据流的数据通道过程中创建与协议对应的三元组信息,在匹配过程当中先匹配五元组信息,如果不成功,再匹配三元组信息,当三元组信息匹配成功时进行策略管理,从而不需要进行规则匹配、协议验证等处理,提高了协议识别的处理速度,当流表匹配采用NP、FPGA、ASIC等硬件进行处理,可以更大程度提高处理效率。
本发明实施例另一好处在于,由于三元组匹配成功时不需要进行规则匹配,因此,还能节省存储规则的空间。
此外,由于三元组信息在创建数据通道的过程中建立,不需要检验报文内容部分,这样,即使内容经过加密的报文也能检验得到。
实施例五
本发明实施例提供了一种关联协议识别装置,用于提高协议识别处理速度,参见图10,包括如下单元:
接收单元901,用于接收报文;
关联识别表匹配902,用于将接收单元接到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到;当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
本发明实施例还包括:
流表匹配单元903,用于在所述关联识别表匹配之前,对接收到的所述报文进行流表匹配,所述流表匹配包括对所述报文中的第二匹配信息与流表中的第二匹配信息进行匹配,所述第二匹配信息用于查找所述报文对应的数据流中的相关信息,包括所述报文对应的执行策略。
其中,上述第一匹配信息包括:协议域、源IP和源端口;或者所述第一匹配信息包括:协议域、目的IP和目的端口;上述第二匹配信息包括:协议域、源IP、源端口、目的IP和目的端口。需要说明的是,上述相关信息并不唯一确定,可以根据实际协议匹配需要的信息来对这些信息进行增加或删除。
本发明实施例还包括:
匹配表存储单元904,用于存储所述关联识别表和所述流表;
流表与关联识别表可以位于不同的匹配表,即作为两个独立的表的形式存在;或者所述关联识别表与所述流表位于同一匹配表,这两个表的数据在同一表中一起存在。在实际应用中,匹配表存储单元904可以使用一个物理存储介质(如内存,硬盘及各种存储器)实现,也可以使用多个物理存储介质实现,而流表和关联识别表在这些存储介质上的存储位置也并不限定。同时,在软件实现上,既可以将存储信息定义成一个存储结构(如流表)来存储流表和关联识别表中的数据,也可以分别定义多个存储结构(如流表+关联识别表的形式)进行存储,具体的,流表和关联识别表可用Hash表或TCAM表或其他具有类似功能的表来实现。本发明实施例中,流表存储单元跟关联识别表存储单元并不严格区分,可以是两个单元,也可以将其合并成一个单元(如可看成流表存储单元包括了关联识别表存储单元,即流表存储单元可以实现关联识别表存储单元的功能),具体可以根据实现形式不同而不同。
当所述关联识别表与所述流表位于不同的匹配表时,采用完全匹配法进行所述流表匹配和所述关联识别表匹配;当所述关联识别表与所述流表位于同一匹配表时,采用最长匹配法进行所述流表匹配和所述关联识别表匹配。
本发明实施例还包括:
信息处理单元905,用于所述控制报文创建数据通道时提取所述控制报文中的所述第一匹配信息到所述匹配表存储单元;所述信息处理单元还用于,根据接收到的所述报文的类型配置所述流表或所述关联识别表,包括更新所述流表中所述第二匹配信息或所述关联识别表中所述第一匹配信息。具体的提取及配置过程可以参见上述方法实施例中的相关步骤,在此不再赘述。
本发明实施例还包括:
策略管理单元906,用于当所述关联识别表匹配成功时,根据输出的协议信息进行策略管理,根据策略管理后的结果更新所述流表或所述关联识别表。
策略执行单元907,用于当所述流表匹配成功后,对匹配成功后的报文执行相应的策略。
规则匹配单元908,用于当所述关联识别表匹配不成功时,对所述接收到的报文进行规则匹配;
协议验证单元909,用于对所述规则匹配单元处理后的报文进行协议验证,并将协议验证后的结果送至所述策略管理单元。
老化单元910,用于监测到一段时间内数据通道或控制通道没有报文进入时,删除所述匹配表存储单元中存储的所述流表中的相关信息和/或所述关联识别表中的相关信息。
上述各单元具体处理过程也可参见上述方法实施例中的相关步骤,在此不再赘述。
本发明实施例中,各单元的具体实现可以通过通用处理器来实现,也可以通过专用处理器或具有处理功能的硬件来实现,且每个单元可由同一处理器来实现,或几个处理单元使用同一处理器来实现,具体实现过程并不限定。例如,在本明实施例中,可以采用NP(Net Processor,网络处理器)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuits,专用集成电路)等处理器来实现流表匹配和关联识别表匹配等功能。
在采用NP、FPGA、ASIC等进行匹配时,由于用硬件实现,因此,处理速度快,当数据通道的五元组信息匹配未成功时,再匹配三元组信息,如果成功,则进行策略管理,因此,省去了现有技术中规则匹配和协议验证两个步骤,大大地提升了处理效率。
本发明实施例另一好处在于,如果协议能够通过关联识别表识别出来,则不需要经过规则匹配和协议验证两个模块处理,而规则匹配需要用到很多规则,因此,也需要很多空间存储这些规则,而本发明实施例中由于不需要经过规则匹配,因此,在加速匹配的过程当中还能节省存储规则的空间。
此外,当有内容加密(如IP报文第7层信息)的数据报文进来时(三元组信息还是可以检测到),由于该数据报文中的三元组信息和协议ID在建数据通道时就已经完成,因此,可以根据三元组信息找到对应的协议ID,完成对该协议的识别。而现有技术因为没有关联识别表,只能对整个报文进行协议识别,但因为报文内容经过加密,从而无法完成协议识别任务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
上列较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种报文检测方法,其特征在于,包括如下步骤:
对接收到的所述报文进行流表匹配,所述流表匹配包括对所述报文中的第二匹配信息与流表中的第二匹配信息进行匹配,所述第二匹配信息用于查找所述报文对应的流中的相关信息,包括所述报文对应的执行策略,所述第二匹配信息包括:协议域、源IP、源端口、目的IP和目的端口;
当所述流表匹配不成功时,将接收到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到,所述第一匹配信息为:协议域、源IP和源端口;或者所述第一匹配信息为:协议域、目的IP和目的端口;
当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
2.如权利要求1所述的报文检测方法,其特征在于:
所述关联识别表与所述流表位于不同的匹配表;
或者,所述关联识别表与所述流表位于同一匹配表。
3.如权利要求2所述的报文检测方法,其特征在于:
根据接收到的所述报文的类型配置所述流表或所述关联识别表,包括更新所述流表中所述第二匹配信息或所述关联识别表中所述第一匹配信息。
4.如权利要求1所述的报文检测方法,其特征在于,还包括:
当对所述报文进行所述流表匹配成功时,对匹配成功后的报文执行相应的策略;
当所述关联识别表匹配成功时,根据输出的所述关联识别表匹配成功后的协议信息对所述报文进行策略管理,并根据策略管理后的结果更新所述流表。
5.如权利要求1所述的报文检测方法,其特征在于:
当所述报文进行所述关联识别表匹配不成功时,对所述报文进行协议识别,所述协议识别包括规则匹配和协议验证。
6.如权利要求1所述的报文检测方法,其特征在于:
如果监测到一段时间内数据通道或控制通道没有报文进入,删除所述流表中的相关信息和/或所述关联识别表中的相关信息。
7.一种报文检测装置,其特征在于,包括:
接收单元,用于接收报文;
流表匹配单元,用于对所述接收单元接收到的所述报文进行流表匹配,所述流表匹配包括对所述报文中的第二匹配信息与流表中的第二匹配信息进行匹配,所述第二匹配信息用于查找所述报文对应的流中的相关信息,包括所述报文对应的执行策略,所述第二匹配信息包括:协议域、源IP、源端口、目的IP和目的端口;
关联识别表匹配单元,用于将接收单元接到的报文中的第一匹配信息与关联识别表中的第一匹配信息进行关联识别表匹配;所述关联识别表中的第一匹配信息通过提取用于创建数据通道的控制报文内容得到,所述第一匹配信息与报文协议相对应,所述报文协议由所述控制报文经协议识别后得到,其中,所述第一匹配为:协议域、源IP和源端口;或者所述第一匹配信息为:协议域、目的IP和目的端口;当所述关联识别表匹配成功时,输出所述关联识别表匹配成功后的协议信息。
8.如权利要求7所述的报文检测装置,其特征在于,还包括:
匹配表存储单元,用于存储所述关联识别表和所述流表;
所述关联识别表与所述流表位于不同的匹配表,或者所述关联识别表与所述流表位于同一匹配表。
9.如权利要求8所述的报文检测装置,其特征在于,还包括:
信息处理单元,用于所述控制报文创建数据通道时提取所述控制报文中的所述第一匹配信息到所述匹配表存储单元;
所述信息处理单元还用于,根据接收到的所述报文的类型配置所述流表或所述关联识别表,包括更新所述流表中所述第二匹配信息或所述关联识别表中所述第一匹配信息。
10.如权利要求7所述的报文检测装置,其特征在于,还包括:
策略管理单元,用于当所述关联识别表匹配成功时,根据输出的协议信息 进行策略管理,根据策略管理后的结果更新所述流表或所述关联识别表。
11.如权利要求7所述的报文检测装置,其特征在于,还包括:
策略执行单元,用于当所述流表匹配成功后,对匹配成功后的报文执行相应的策略。
12.如权利要求7所述的报文检测装置,其特征在于,还包括:
规则匹配单元,用于当所述关联识别表匹配不成功时,对所述接收到的报文进行规则匹配;
协议验证单元,用于对所述规则匹配单元处理后的报文进行协议验证,并将协议验证后的结果送至所述策略管理单元。
13.如权利要求8所述的报文检测装置,其特征在于,还包括:
老化单元,用于监测到一段时间内数据通道或控制通道没有报文进入时,删除所述匹配表存储单元中存储的所述流表中的相关信息和/或所述关联识别表中的相关信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510080943.4A CN104683241A (zh) | 2009-11-19 | 2009-11-19 | 一种报文检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510080943.4A CN104683241A (zh) | 2009-11-19 | 2009-11-19 | 一种报文检测方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101098203A Division CN102075404A (zh) | 2009-11-19 | 2009-11-19 | 一种报文检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104683241A true CN104683241A (zh) | 2015-06-03 |
Family
ID=53317860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510080943.4A Pending CN104683241A (zh) | 2009-11-19 | 2009-11-19 | 一种报文检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683241A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939314A (zh) * | 2015-09-21 | 2016-09-14 | 杭州迪普科技有限公司 | 网络防护方法和装置 |
CN106453131A (zh) * | 2016-11-03 | 2017-02-22 | 瑞斯康达科技发展股份有限公司 | 一种匹配器生成的方法和设备 |
CN107204965A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种密码破解行为的拦截方法及系统 |
CN109510821A (zh) * | 2018-11-07 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种报文处理方法及装置 |
-
2009
- 2009-11-19 CN CN201510080943.4A patent/CN104683241A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939314A (zh) * | 2015-09-21 | 2016-09-14 | 杭州迪普科技有限公司 | 网络防护方法和装置 |
CN107204965A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种密码破解行为的拦截方法及系统 |
CN106453131A (zh) * | 2016-11-03 | 2017-02-22 | 瑞斯康达科技发展股份有限公司 | 一种匹配器生成的方法和设备 |
CN106453131B (zh) * | 2016-11-03 | 2019-06-28 | 瑞斯康达科技发展股份有限公司 | 一种匹配器生成的方法和设备 |
CN109510821A (zh) * | 2018-11-07 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种报文处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075404A (zh) | 一种报文检测方法及装置 | |
CN103312565B (zh) | 一种基于自主学习的对等网络流量识别方法 | |
CN101557329B (zh) | 一种基于应用层的数据分割方法及装置 | |
CN110855576B (zh) | 应用识别方法及装置 | |
CN103916294A (zh) | 协议类型的识别方法和装置 | |
US20120182891A1 (en) | Packet analysis system and method using hadoop based parallel computation | |
US20140173094A1 (en) | Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers | |
CN103297270A (zh) | 应用类型识别方法及网络设备 | |
CN104320304A (zh) | 一种易扩展的多方式融合的核心网用户流量应用识别方法 | |
CN108965248B (zh) | 一种基于流量分析的p2p僵尸网络检测系统及方法 | |
CN109450733B (zh) | 一种基于机器学习的网络终端设备识别方法及系统 | |
CN114157502A (zh) | 一种终端识别方法、装置、电子设备及存储介质 | |
WO2015081693A1 (zh) | 一种网络共享用户识别方法及装置 | |
CN108206788B (zh) | 一种流量的业务识别方法及相关设备 | |
CN104683241A (zh) | 一种报文检测方法及装置 | |
CN108667732A (zh) | 一种报文转发方法及装置 | |
CN113825129A (zh) | 一种5g网络环境下工业互联网资产测绘方法 | |
RO132177A2 (ro) | Metode, sistem şi suport informatic pentru testarea dispozitivelor cu echipament de reţea, folosind protocolul fără conexiune | |
CN102164182A (zh) | 一种网络协议识别设备和方法 | |
CN107070851B (zh) | 基于网络流的连接指纹生成和垫脚石追溯的系统和方法 | |
Valdez et al. | How to discover IoT devices when network traffic is encrypted | |
CN113630418B (zh) | 一种网络服务识别方法、装置、设备及介质 | |
CN106506400B (zh) | 一种数据流识别方法及出口设备 | |
US20220174081A1 (en) | Monitoring of abnormal host | |
Shim et al. | SigBox: Automatic Signature Generation Method for Fine-Grained Traffic Identification. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150603 |