专利名称:一种报文处理方法及装置的制作方法
技术领域:
本发明涉及报文处理技术,尤其涉及一种报文处理方法及装置。
背景技术:
报文镜像技术是指网络上设备在接收到报文后,判断所述报文是否符合某种预设 规则,将符合该预设规则的报文复制一份后,再从指定物理端口将所述报文转发的技术,目 前交换机,路由器等网络设备都具备此功能。交换机支持基于端口的报文镜像,路由器支持 基于访问控制列表(ACL)进行报文镜像。如图1所示,给出了一种流量监控设备(DPI)设 备进行报文镜像处理的过程,当DPI设备接收到报文后,如果报文符合某种规则,比如报文 属于超文件传输协定(HTTP)协议,则报文将被复制一份,复制后再将该报文转发给需要的 设备,如Route B。报文转向技术是指网络中设备在接收到报文后,判断所述报文是否符合某种预设 规则,将符合预设规则的报文直接从指定的物理端口转发的技术。如图2所示,给出了一种 DPI设备进行报文转向处理的过程当DPI设备接收到报文后,如果报文符合某种规则,例 如报文属于超文本传输协议(HTTP,Hypertext Transfer Protocol)报文,则将该报文进行 转向,转发该报文到预设的第三方设备。当第三方设备对该报文完成处理后,可以再将报文 转发给网络中其他需要的设备,图2中是转发到Route B中。目前镜像或转向技术已经成为网络解决方案中的常用技术,在网络安全、应用加 速、网络数据分析等多个领域有广泛的应用,尤其是通过DPI设备基于应用协议的镜像或 转向,已经成为DPI设备的基本功能。目前DPI设备判断是否对业务数据流进行转向或镜像处理时,由DPI设备根据业 务数据流对应的端口进行应用层协议的识别,进而根据应用层协议判断是否进行转向或镜 像处理,而在进行应用层协议的识别之前,DPI设备将缓存接收到的三次握手报文,直到判 断对数据流进行转向或镜像处理时,将三次握手报文发送给对应的第三方设备。但是,发明人发现现有技术中DPI设备需要对所有的三次握手报文进行缓存,从 而消耗了大量的系统资源。
发明内容
有鉴于此,本发明要解决的技术问题是,提供一种报文处理方法及装置,能够降低 DPI设备的资源消耗。为此,本发明实施例采用如下技术方案本发明实施例提供一种报文处理方法,包括接收数据流的TCP三次握手报文,进行协商处理;接收所述数据流的数据报文,根据所述数据报文,对所述数据流进行应用层协议 识别,以判断出所述数据流对应的应用层协议;根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理;
当所述数据流不需要进行镜像或转向处理时,不在预设的第三方设备上建立TCP 有效会话表项;当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜像或转向处理。本发明实施例还提供一种报文处理装置,包括第一处理单元,用于接收数据流的TCP三次握手报文,进行协商处理;识别单元,用于接收所述数据流的数据报文,根据所述数据报文,对所述数据流进 行应用层协议识别,以判断出所述数据流对应的应用层协议;判断单元,用于根据所述应用层协议,判断所述数据流是否需要进行镜像或转向 处理;第二处理单元,用于当所述数据流不需要进行镜像或转向处理时,不在预设的第 三方设备上建立TCP有效会话表项;转发单元,用于当所述数据流需要进行镜像或转向处理时,开始对所述数据流进 行镜像或转向处理。对于上述技术方案的技术效果分析如下接收数据流的TCP三次握手报文,进行协商处理;接收所述数据流的数据报文;根 据所述数据报文,对所述数据流进行应用层协议识别,以判断出所述数据流对应的应用层 协议;根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理;当所述数据 流需要进行镜像或转向处理时,与预设的第三方设备进行协商处理;开始对所述数据流进 行镜像或转向处理;从而,不再由DPI设备进行三次握手报文的缓存,减少了 DPI设备的缓 存数据量,降低了 DPI设备的资源消耗。
图1为现有技术DPI设备进行报文镜像处理的过程;图2为现有技术DPI设备进行报文转发处理的过程;图3为本发明实施例一种报文处理方法流程示意图;图4为本发明实施例另一种报文处理方法流程示意图;图5为本发明实施例又一种报文处理方法流程示意图;图6为本发明实施例一种报文处理装置结构示意图。
具体实施例方式以下,结合附图详细说明本发明实施例报文处理方法及装置的实现。另外,在以下 的实施例的方法及装置适用于需要进行镜像或转发处理的任意镜像或转发设备,如DPI设 备、路由器、交换机等,以下实施例中仅以DPI设备作为一示例进行说明。图3为本发明实施例一种报文处理方法流程示意图,如图3所示,包括步骤301 接收数据流的TCP三次握手报文,进行协商处理;步骤302 接收所述数据流的数据报文,根据所述数据报文,对所述数据流进行应 用层协议识别,以判断出所述数据流对应的应用层协议;步骤303 根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理,当所述数据流不需要进行镜像或转向处理时,不在预设的第三方设备上建立TCP有效会话 表项;当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜像或转向处理。所述有效会话表项是指需要镜像或转发处理的数据流对应的表项。图3所示的本发明实施例报文处理方法中,接收数据流的TCP三次握手报文,直接 进行协商处理,不再由DPI设备进行三次握手报文的缓存,而是减少了 DPI设备的缓存数据 量,降低了 DPI设备的资源消耗。图4为本发明实施例另一种报文处理方法流程示意图,如图4所示,包括步骤401 =DPI设备接收业务数据流中的传输控制协议(TCP)三次握手报文,将所 述TCP三次握手报文转发给预设的第三方设备,由第三方设备根据所述TCP三次握手报文 建立所述握手报文对应的TCP会话。所述TCP会话用于第三方设备进行所述业务数据流的处理。步骤402 =DPI设备继续接收业务数据流中的业务内容报文,从业务内容报文中获 取预设的协议识别信息。这里的协议识别信息用于指示所属业务数据流对应的应用层协议。所述协议识别 信息可以为自主设置的协议标识等。步骤403 根据所述协议识别信息确定业务数据流对应的应用层协议。步骤404 根据业务数据流对应的应用层协议判断是否需要进行所述业务数据流 的镜像或转向处理,如果是,执行步骤405 ;否则,执行步骤406。其中,一般预先设置每一应用层协议是否进行镜像或转向处理,因此,在本步骤中 只要查询应用层协议对应的预先设置信息即可实现本步骤中的所述判断。步骤405 将所述业务内容报文转发给所述第三方设备;当前处理流程结束。步骤406 向第三方设备发送重置(RST)报文,指示第三方设备删除为所述业务数 据流建立的TCP会话;当前处理流程结束。现有技术中,当DPI设备与第三方设备之间通过TCP三次握手报文建立TCP会话 之后,才能在DPI设备与第三方设备之间传输业务数据流中的业务内容报文等数据,而DPI 设备在接收到业务数据流中的TCP三次握手报文时,并未接收到业务数据流中的内容报文 信息,因此,也无法获知业务数据流所对应的应用层协议,进而更无法判断是否需要将TCP 三次握手报文转发给第三方设备。图4所示的报文处理方法中DPI设备接收到业务数据流中的TCP三次握手报文 后,直接将握手报文转发给对应的第三方设备,由第三方设备建立对应的TCP会话,当后续 接收到业务内容报文后,确定不需要将业务数据流转发给第三方设备时,再通过RST报文 通知第三方设备删除所述TCP会话。从而进一步解决了现有技术中DPI设备无法在接收到 TCP三次握手报文时确定是否进行镜像或转向处理的问题,防止DPI设备缓存无用的会话 表项,完善了 DPI设备对于报文的处理过程。图5为本发明实施例另一种DPI设备的报文处理方法流程示意图,如图5所示,包 括步骤501 =DPI设备接收业务数据流中的TCP三次握手报文,记录TCP三次握手报 文中的关键字段信息。所述关键字段信息主要可以包括最大传输大小(MSS)、域代码(SEQ)以及确认信息(ACK)信息。步骤502 =DPI设备继续接收业务数据流中业务内容报文,从业务内容报文中获取 预设的协议识别信息。步骤503 根据业务内容报文中的协议识别信息判断业务数据流对应的应用层协 议。步骤504 根据业务数据流对应的应用层协议判断是否需要进行所述业务数据流 的镜像或转向处理,如果是,执行步骤505 ;否则,执行步骤507。步骤505 查找到所述业务内容报文对应的TCP三次握手报文的关键字段信息,根 据所述关键字段信息重新构造TCP三次握手报文,将该握手报文发送给第三方设备,以便 第三方设备建立所述握手报文对应的TCP会话,所述TCP会话用于第三方设备进行所述业 务内容报文的处理;执行步骤506。步骤506 将业务数据流中的业务内容报文发送给第三方设备;当前处理流程结
束ο步骤507 按照正常的业务数据流处理流程将业务数据发送给目标设备;当前处 理流程结束。图5所示的报文处理方法中DPI设备接收到业务数据流中的TCP三次握手报文 后,保存握手报文中的关键字段信息,之后,当接收到后续的业务内容报文,确定需要进行 业务数据流的镜像或转向处理时,再根据保存的所述关键字段信息重构TCP三次握手报 文,转发给第三方设备,从而完成业务数据流到第三方设备的转发,从而也解决了现有技术 中DPI设备无法在接收到TCP三次握手报文时确定是否进行镜像或转向处理的问题,完善 了 DPI设备对于报文的处理过程。与以上的报文处理方法相对应的,本发明实施例还提供报文处理装置,如图6所 示,为本发明实施例一种报文处理装置结构示意图,该装置可以设置于DPI设备、路由器、 交换机等镜像或转发设备中,包括以下结构第一处理单元610,用于接收数据流中的TCP三次握手报文,进行协商处理;识别单元620,用于接收所述数据流的数据报文,根据所述数据报文,对所述数据 流进行应用层协议识别,以判断出所述数据流对应的应用层协议;判断单元630,用于根据所述应用层协议,判断所述数据流是否需要进行镜像或转 向处理;第二处理单元640,用于当所述数据流不需要进行镜像或转向处理时,不在预设的 第三方设备上建立TCP有效会话表项;转发单元650,用于当所述数据流需要进行镜像或转向处理时,开始对所述数据流 进行镜像或转向处理。图6所示的本发明实施例报文处理装置中,接收数据流的TCP三次握手报文,直接 进行协商处理,不再由DPI设备进行三次握手报文的缓存,从而减少了 DPI设备的缓存数据 量,降低了 DPI设备的资源消耗。优选地,所述第一处理单元具体可以用于接收业务数据流中的TCP三次握手报文,转发所述TCP三次握手报文给所述预设 的第三方设备,以使得所述预设的第三方设备建立TCP会话表项。相应的,第二处理单元640具体可以用于当所述数据流不需要进行镜像或转向处理时,向所述预设的第三方设 备发送复位标志报文,以使得所述预设的第三方设备清除TCP会话表项;或者,所述第一处理单元具体可以用于接收数据流中的TCP三次握手报文,提取所述 TCP三次握手报文的关键字段信息;相应的,所述转发单元650,用于根据所述TCP三次握手 报文的所述关键字段信息的信息,构造TCP三次握手报文发送给所述预设的第三方设备, 以使得所述预设的第三方设备建立TCP会话表项;开始对与所述TCP会话表项对应的数据 流进行镜像或/转向处理。其中,所述转发单元可以包括发送子单元,用于根据所述TCP三次握手报文的所述关键字段信息的信息,构造 TCP三次握手报文发送给所述预设的第三方设备,以使得所述预设的第三方设备建立TCP 会话表项;转发子单元,用于开始对与所述TCP会话表项对应的数据流进行镜像或/转向处理。优选地,所述关键字段信息包括MSS、SEQ以及ACK信息。优选地,所述识别单元具体可以用于接收所述数据流的数据报文,从所述数据 报文中获取预设的协议识别信息,根据所述协议识别信息确定所述数据流对应的应用层协 议。所述识别单元中通过在数据报文中预设协议识别信息,来进行应用层协议的识 别,从而根据报文内容进行应用层协议识别,提高了 DPI设备对于应用层协议的识别准确率。在本发明实施例的报文处理装置中,接收单元接收到业务数据流中的TCP三次握 手报文后,直接将握手报文转发到第三方设备,当接收到后续的业务内容报文,确定需要进 行业务数据流的镜像或转向处理时,直接进行数据流的镜像或转向处理;或者,接收单元接 收到业务数据流中的TCP三次握手报文后,保存握手报文中的关键字段信息,之后,当接收 到后续的业务内容报文,确定需要进行业务数据流的镜像或转向处理时,根据保存的所述 关键字段信息重构TCP三次握手报文,转发给第三方设备,从而支持DPI设备等镜像或转发 设备完成业务数据流到第三方设备的转发,也解决了现有技术中DPI设备等镜像或转发设 备无法在接收到TCP三次握手报文时确定是否进行镜像或转向处理的问题,防止DPI设备 缓存无用的会话表项,,完善了镜像或转发设备对于报文的处理过程。本领域普通技术人员可以理解,实现上述实施例报文处理方法的过程可以通过程 序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执 行上述方法中的对应步骤。所述的存储介质可以如R0M或RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
8
权利要求
1.一种报文处理方法,其特征在于,包括 接收数据流的TCP三次握手报文,进行协商处理;接收所述数据流的数据报文,根据所述数据报文,对所述数据流进行应用层协议识别, 以判断出所述数据流对应的应用层协议;根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理; 当所述数据流不需要进行镜像或转向处理时,不在预设的第三方设备上建立TCP有效 会话表项;当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜像或转向处理。
2.根据权利要求1所述的方法,其特征在于,所述进行协商处理,包括转发所述TCP三次握手报文给所述预设的第三方设备,以使得所述预设的第三方设备 建立TCP会话表项;其中,当所述数据流不需要进行镜像或转向处理时,不在预设的第三方设备上建立TCP 有效会话表项,包括向所述预设的第三方设备发送复位标志报文,以使得所述预设的第三 方设备清除TCP会话表项。
3.根据权利要求1所述的方法,其特征在于,所述进行协商处理,包括 提取所述TCP三次握手报文的关键字段信息;其中,当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜像或/转 向处理,包括根据所述TCP三次握手报文的所述关键字段信息的信息,构造TCP三次握手 报文发送给所述预设的第三方设备,以使得所述预设的第三方设备建立TCP会话表项;开 始对与所述TCP会话表项对应的数据流进行镜像或转向处理。
4.根据权利要求3所述的方法,其特征在于,所述关键字段信息包括MSS、SEQ以及 ACK信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述数据报文,对所 述数据流进行应用层协议识别包括从所述数据报文中获取预设的协议识别信息,根据所述协议识别信息确定所述数据流 对应的应用层协议。
6.一种报文处理装置,其特征在于,包括第一处理单元,用于接收数据流的TCP三次握手报文,进行协商处理; 识别单元,用于接收所述数据流的数据报文,根据所述数据报文,对所述数据流进行应 用层协议识别,以判断出所述数据流对应的应用层协议;判断单元,用于根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理;第二处理单元,用于当所述数据流不需要进行镜像或转向处理时,不在预设的第三方 设备上建立TCP有效会话表项;转发单元,用于当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜 像或转向处理。
7.根据权利要求6所述的装置,其特征在于,所述第一处理单元具体用于接收数据流中的TCP三次握手报文,转发所述TCP三次握手报文给所述预设的第三方 设备,以使得所述预设的第三方设备建立TCP会话表项;相应的,所述第二处理单元具体用于当所述数据流不需要进行镜像或转向处理时,向 所述预设的第三方设备发送复位标志报文,以使得所述预设的第三方设备清除TCP会话表 项。
8.根据权利要求6所述的装置,其特征在于,所述第一处理单元具体用于接收数据流中的TCP三次握手报文,提取所述TCP三次握手报文的关键字段信息;相应的,所述转发单元具体用于当所述数据流需要进行镜像或转向处理时,根据所述 TCP三次握手报文的所述关键字段信息的信息,构造TCP三次握手报文发送给所述预设的 第三方设备,以使得所述预设的第三方设备建立TCP会话表项;开始对与所述TCP会话表项 对应的数据流进行镜像或转向处理。
9.根据权利要求8所述的装置,其特征在于,所述关键字段信息包括MSS、SEQ以及 ACK信息。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述识别单元具体用于接 收所述数据流的数据报文,从所述数据报文中获取预设的协议识别信息,根据所述协议识 别信息确定所述数据流对应的应用层协议。
全文摘要
本发明实施例公开了一种报文处理方法及装置,该方法包括接收数据流的TCP三次握手报文,进行协商处理;接收所述数据流的数据报文,根据所述数据报文,对所述数据流进行应用层协议识别,以判断出所述数据流对应的应用层协议;根据所述应用层协议,判断所述数据流是否需要进行镜像或转向处理,当所述数据流不需要进行镜像或转向处理时,不在预设的第三方设备上建立TCP有效会话表项;当所述数据流需要进行镜像或转向处理时,开始对所述数据流进行镜像或转向处理。所述方法和装置能够降低DPI设备的资源消耗。
文档编号H04L29/08GK102065017SQ201010619808
公开日2011年5月18日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张杨, 都林 申请人:成都市华为赛门铁克科技有限公司