一种互联网旁路监测系统的tcp连接管理方法

文档序号:7665412阅读:386来源:国知局
专利名称:一种互联网旁路监测系统的tcp连接管理方法
技术领域
本发明涉及网络安全技术,尤其涉及一种互联网中旁路式数据监测中的 TCP连接管理方法。
背景技术
数据监测是指通过还原网络中的原始数据,分析网络状态或过滤网络数 据的行为,起到对网络中的协议连接状态进行管理的目的,通过数据监测管 理员可以监控网络资源是否被合法使用。
TCP/IP (Trans control protocol/Internet Protocol)协议找已成为 目前互联网中的实际连接标准。TCP协议是属于TCP/IP协议栈中的传输层,它 向应用层提供一种面向连接,可靠的字节流服务。面向连接意味着两个TCP的 应用,通常是一个客户和一个服务器之间在彼此交换数据之前必须建立一个 TCP连接。当连接建立后,才能在彼此之间交换数据,进行通信。完成通信 后,必须释放连接。通过在IP协议头中获得连接双方的IP地址和端口号,可 以确定唯一的连接。
为维持和保证一个TCP连接,TCP协议对连接的建立,维护和拆除都有相 应的处理规定,并形成标准的TCP状态变迁图(见附图l )及对应状态下的定 时器,反应不同时间和情况下的连接状态,用于保证各种正常或异常条件下 的都能正常工作。
在标准的TCP连接状态监测中,是从客户端和服务器端通信双方的角度来 定义一个TCP连接的状态变迁,而监测系统需要从第三方的角度来管理一个 TCP连接。虽然监测的是相同的数据,但TCP协议栈与监测系统之间在管理TCP连接上还存在一些区别,这也是利用TCP标准状态变迁图进行监测管理所存在 的问题。
从上述对现有标准的TCP连接状态监测中,发明人发现上述现有技术至 少存在以下问题
(1) 操作系统中标准TCP协议栈管理的连接数量远小于监测系统处理机 管理的TCP连接数量,因此用TCP协议栈的方法无法快速有效地定位一个数 据包属于哪一个连接;
(2) 标准的TCP状态变迁图中一次连接的建立是由SYN (建立连接标 志)包开始,而监测系统一个连接可能由其它的数据包建立一个连接,因为 监测系统会在一个TCP连接建立后才捕获到数据,因此监控系统必须能处理 由其它的数据包建立的连接。
(3) 为了保证TCP连接的可靠性,在标准的TCP连接中会维护多个定时 器,在不同的状态下使用不同的定时器,使定时器管理过于复杂。而监测系 统是处于旁观者的角度,对TCP连接的可靠性要求不高,因此没必要维护太多 的定时器。

发明内容
本发明提供了 一种互联网旁路监测系统的TCP连接管理方法。通过收到的 数据包来定位或建立TCP连接,方便的进行多个连接的管理,达到监测各连接 状态进行删除或建立各连接的目的。
本发明的目的是通过以下技术方案实现的
本发明提供一种互联网旁路监测系统的TCP连接管理方法,包括
监测系统初始化完成后接收数据包,根据数据包查找与该数据包对应的 连接结点;
若找到与所述数据包对应的连接结点,则设置该结点的连接状态;若未 找到与所述数据包对应的连接结点则进行应用层数据处理,并根据处理结果找到的数据包所属的应用层协议建立连接结点,将建立的连接结点加入到超
时队列;
设置并检查结点的连接状态,若连接状态变化到结束状态,则删除连接
结点,并更新超时队列;
若结点的连接状态未变化到结束状态,则更新连接结点所维护的定时
器,并根据连接结点所处状态设置定时器的时长;
判断是否需要检查超时队列,若是则进行检查并删除超时的连接结点。 所述方法进一步包括每个连接结点对应维护一个定时器。 所述设置结点的连接状态的步骤还包括以符合监测系统使用的TCP状态
变迁来设置结点的连接状态。
.所述的判断是否需要检查超时队列的步骤还包括 若判断结果为不需要检查,则继续进行接收数据包的操作。 所述进行应用层数据处理的步骤包括监测系统进行应用层数据处理,
对应用层协议进行初始化后接收数据包;取应用层数据并判断是否有数据,
若有则查找数据包对应的连接;若找到该连接则调用应用层协议来处理数
据;
若未找到则查找数据包所属的应用层协议,若找到则进行实例化应用层 协议的操作。
所述的判断是否有数据的步骤还包括若没有数据则继续执行接收数据包。
所述的查找数据包所属的应用层协议的步骤进一步包括若未找到该协 议则继续执行接收数据包。
由上述本发明实施例提供的技术方案可以看出,本发明实施例的连接管 理方法,在标准的TCP连接管理的基础上,针对监测系统的特点,方便的对监 测系统所管理的TCP连接进行定位或建立的处理,且每个TCP连接只维护一个定时器,达到监测系统管理和维护数量庞大的TCP连接的目的,保证监测系统 对应用层协议的分析与处理。


图1为现有技术提供的TCP连接的状态变迁图2为本发明实施例的监测系统所使用的TCP连接的状态变迁图3为本发明实施例的监测系统的连接管理方法流程图4为本发明实施例的监测系统对应用层数据处理流程图。
具体实施例方式
本发明实施例提供了 一种互联网旁路监测系统的TCP连接管理方法。根据 接收到的数据包进行连接结点的查找或建立,并设置、检查该连接结点的状 态,使监测系统方便的对所监测的数据庞大的TCP连接进行管理,与现有的标 准的TCP协议栈相比,具有管理方便,管理所维护的定时器简单等优点。
为便于理解本发明,下面结合附图对和具体实施例进行说明。
实施例一
本发明实施例是一种互^:网旁路监测系统的TCP连接管理方法,该方法具 体包括下述处理步骤
监测系统初始化完成后接收数据包,根据数据包查找与该数据包对应的 连接结点;
若找到与所述数据包对应的连接结点,则设置该结点的连接状态;若未 找到与所述数据包对应的连接结点则进行应用层数据处理,并根据处理结果 所查找到的数据包所属的应用层协议来建立连接结点,将建立的连接结点加 入到超时队列;
设置并检查结点的连接状态,若连接状态变化到结束状态,则删除连接结点,并更新超时队列;
若连接状态未变化到结束状态,则更新连接结点所维护的定时器,并根
据连接结点所处状态设置定时器的时长;
判断是否需要检查超时队列,若是则进行检查并删除超时的连接结点。 其中,每个连接结点对应维护一个定时器。
其中,所述设置结点的连接状态时以符合监测系统使用的图2所示,TCP 状态变迁图来设置结点的连接状态。
所述的判断是否需要检查超时队列时,若结果为不需要检查,则继续进 行接收数据包的操作。
所述的进行应用层数据处理包括监测系统对应用层协议进行初始化后 接收数据包;取应用层数据并判断是否有数据,若有则查找数据包对应的连 接,若没有数据则继续执行接收数据包;若找到该连接则调用应用层协议来 处理数据;若未找到则查找数据包所属的应用层协议,若找到则进行实例化 应用层协议的操作。
所述的查找数据包所属的应用层协议时,若未找到该协议则继续执行接 收数据包。
如图2所示,给出了本发明中监测系统所使用的TCP连接状态变迁图,下 面给出其中相应的解释
连接状态 对应解释
CLOSED 关闭,新建立一个连接结点时的状态,即初始状态; SYN1-SENT-1 第一个有SYN标志的TCP包发送,正常打开和同时打开连 接共用的状态;
SYN1_SENT_2第二个有SYN标志的TCP包发送,针对TCP连接同时打开的 状态;志5
接;
SYNl—ACK
SYN2—SENT
ESTABLISHED
FIN_WAIT_1
FIN_WAIT_2
CLOSE_WAIT
CLOSING-1
CLOSING-2
TIME—WAIT
RST
一个SYN被响应,同时打开时的状态,SYN为建立连接标
SYN2包发送,正常打开连接时的状态; 数据传输状态;
第一个FIN1发送,正常关闭和同时关闭时共用; 一个FIN被响应,正常关闭时的状态; 第二个FI財皮发送,正常关闭时的状态; 第二个FIN被发送,同时关闭时的状态; 一个FI附皮响应,同时关闭时的状态; 两个FIN被响应,进入2MSL超时等待,此时可以删除连
收到RST包,连接重置,此时可以删除连接,TCP连接异 常中止产生的数据包;RST为重置连接标志 与TCP标准状态的对比变化的状态;
LISTEN 是服务器端口监听时的状态,监测系统不可能获得这种情 况,此状态去掉;
LAST-ACK合并正常的TCP连接关闭中客户端和服务器端的状态变化,此 状态去掉;
合并正常的TCP连接关闭中客户端和服务器端的状态变化,此
针对同时关闭时的情况,去掉这个状态,增加CLOSINGl
CLOSE 状态去掉;
CLOSING 和CL0SING2;
SYN_SENT 对应SYNl-SENT-1,为同时打开的情况啦文变动;
S YN收到 对应S YN2 — SENT增加的状态; SYNl _SENT-2针对同时打开连4妄时增加;CLOSING1 针对同时关闭的情况增加;
CLOSING2 针对同时关闭的情况增加。
新状态变迁图的特点
对于新定义的TCP状态,它不区分服务器与客户端,因此在对应每一个 TCP连接,只需要维护一个状态图。
监测系统使用的数据包类型定义如下 数据包类型 解释
SYN1 只设置SYN标志位的数据包,TCP建立连接标准三步握手中的
第一步;也有可能是同时连接时双方发出的第一个包;
SYN2 包含SYN和ACK的数据包,TCP建立连接三步握手中的第二
步;
ACK(响应)只包含ACK的TCP包,这种类型数据包存在的范围最广泛,
在TCP连接的各个阶—歐都会在;
DATA 包含应用层数据的TCP包,也有可能包含ACK标志;
一般只在ESTABLISHED存在,极少数情况在TCP连接处理于半关闭状态 (有FIN包发出)还有这类数据包;
FIN 包含FIN标志位的TCP包,关闭连接时产生;
RST 包含RST标志位的TCP包,重置连接4吏用,可以在任何时间产
生,表示TCP连接中断;
数据包类型的定义主要是根据TCP协议头中的6个标志位来做判断的,使
用了其中的四个标志位ACK, SYN, FIN, RST。 URG和FSH标志位是对TCP协i义传
输的应用层数据起作用,只有在ESTABLISHED状态才有,在定义状态变迁图时
不予考虑。
图2中,根据TCP连接的现有状态和获得的数据包的类型,变迁到下一个 状态,最上面一行表示连接获得的数据包的类型;最左边的 一列表示TCP连接现在的状态;
中间是表示根据TCP连接现在的状态和数据包的类型,TCP连接将要进入
的下一个状态。
当TCP连接进入TIME-WAIT状态或RST状态则不再变化。
表中的TCP连接的状态变迁除了正常的状态变迁外,还考虑了各种异常情 况时的TCP连接状态变化。
异常情况包括
(1) 在TCP连接发生后得到TCP连接的数据,数据包完整时,TCP连接应该 从CLOSED变化到SYN1_SENT_1,在TCP连接发生后获得数据,则会从CLOSED 变迁到其它状态。这是由监测系统的特点决定的,在系统刚开始运行的时候 的连接都是没有开始的。
(2) 监测系统丟包,TCP协议有重发^)L制,因此标准的TCP状态变迁图不用 考虑这个问题。但在对于监测系统来说,由于采集或其它的原因,造成的系 统丟包问题是不可避免,在这种情况下,TCP连接的状态会跳过正常状态变迁 中的某一步或几步,保证TCP连接能继续工作。
(3) RST包,无论什么时候收到RST包,都直接进入RST状态。 在状态变迁表中,每一个数据包都会引起一次状态变迁的动作,虽不一
定会改变连接的状态,但可能会对连接的定时器进行更新(如在ESTABLISHED 状态下的ACK和DATA包,连接的状态都会改变,但此时需要设置的定时器时长 不同,如果是ACK包,应该参考保活定时器设置,如果是DATA包,应该参考重 发定时器设置,这是针对TCP标准状态变迁图中的问题2)。
在ESTABLISHED状态收到ACK设置定时器时长要注意的问题 TCP连接处理ESTABLISHED时,可能连接的双方都有数据需要响应,如果这时 只有一个方向的ACK,定时器时长应该是按重发定时器设置,如果有两个方向 的ACK,则按保活定时器设置。结合具体的流程图,以分步骤的方式对本发明的连接管理方法进行说明。
如图3所示,它示出了监测系统TCP连接管理方法的流程 其中,步骤31,监测系统初始化状态变化表,状态表需要考虑不完整的 TCP连接。保存在各种总情况下都能正常工作; 步骤32,接收数据包; 步骤33,查找数据包对应的连接;
步骤34,是否找到结点,若找到执行步骤39,若未找到则执行步骤35;
步骤35,查找数据包应用层所属协议;
步骤36,是否找到协议,若是执行37,否则执行32;
步骤37,建立连接结点;
步-骤38,将结点加入到超时队列;
步骤39,设置连接状态;由于监测系统是从旁观者的角度监测TCP连接, 因此不能使用标准的TCP状态变迁图,需要使用以标准状态变迁图为基础得出 的图2的状态变迁步骤310,检查连接状态,若连接变化到结束状态,执行步骤ll;否则执 行步骤12;
步骤311,删除连接结点,删除连接结点不只是在链表中删除,同时还需 更新超时队列;
步骤312,更新结点定时器,定时器的时长根据结点所处的状态设置;
步骤313,是否需要^^查超时队列;是执行步骤14,否返回执行步骤2;
步骤314,检查超时队列,将超时的连接结点删除。
下面结合图4对本发明的应用层数据处理的具体流程进行分步骤说明
其中,步骤41:应用层协-汉初始化;
步骤42:接收数据包;步骤43:取应用层数据;
步骤44:判断是否有数据,若有数据执行45,若没有数据则执行42;
步骤45:查找数据包对应的连接;
步骤46:是否找到,若找到执行410,若未找到执行47
步骤47:查找数据包所属的应用层协议;
步骤48:是否找到,找到执行49,未找到执行42;
步骤49:实例化应用层协议;
步骤410:调用应用层协议处理函数处理数据。
综上所述,本发明实施例中的监测系统对TCP连接的管理方法,利用以标 准的TCP连接状态变迁图得出的适用于监测系统的TCP状态变迁图,通过接收 的数据包定位或建立相应的连接,同时设置并检查该连接的状态,来确定对 该连接的更新或删除,使用该方法使监测系统方便的进行多个TCP连接的管 理,且每个连接只需要维护一下定时器,避免了现有标准的TCP/IP协议栈要 进行复杂的定时器管理的问题。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,.可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1、一种互联网旁路监测系统的TCP连接管理方法,其特征在于,包括监测系统初始化完成后接收数据包,根据数据包查找与该数据包对应的连接结点;若找到与所述数据包对应的连接结点,则设置该结点的连接状态;若未找到与所述数据包对应的连接结点则进行应用层数据处理,并根据处理结果找到的数据包所属的应用层协议建立连接结点,将建立的连接结点加入到超时队列;设置并检查结点的连接状态,若连接状态变化到结束状态,则删除连接结点,并更新超时队列;若结点的连接状态未变化到结束状态,则更新连接结点所维护的定时器,并根据连接结点所处状态设置定时器的时长;判断是否需要检查超时队列,若是则进行检查并删除超时的连接结点。
2、 根据权利要求l所述的方法,其特征在于,所述方法进一步包括每 个连接结点对应维护一个定时器。
3、 根据权利要求l所述的方法,其特征在于,所述设置结点的连接状态 的步骤还包括以符合监测系统使用的TCP状态变迁来设置结点的连接状态。
4、 根据权利要求l所述的方法,其特征在于,所述的判断是否需要检查 超时队列的步骤还包括若判断结果为不需要检查,则继续进行接收数据包的操作。
5、 根据权利要求l所述的方法,其特征在于,所述进行应用层数据处理 的步骤包括监测系统进行应用层数据处理,对应用层协议进行初始化后接 收数据包;取应用层数据并判断是否有数据,若有则查找数据包对应的连接;若找到该连接则调用应用层协议来处理数据;若未找到则查找数据包所属的应用层协议,若找到则进行实例化应用层 协议的操作。
6、 根据权利要求5所述的方法,其特征在于,所述的判断是否有数据的 步骤还包括若没有数据则继续执行-接收数据包。
7、 根据权利要求5所述的方法,其特征在于,所述的查找数据包所属的 应用层协议的步骤进一步包括若未找到该协议则继续执行接收数据包。
全文摘要
本发明公开一种互联网旁路监测系统的TCP连接管理方法。该方法包括监测系统初始化完成后接收数据包,根据数据包查找与该数据包对应的连接;若找到与所述数据包对应的连接结点,则设置该结点的连接状态;若未找到则进行应用层数据处理,并根据处理结果找到的应用层协议建立连接结点,将建立的连接结点加入到超时队列;设置并检查结点的连接状态,若连接状态变化到结束状态,则删除连接结点,并更新超时队列;若连接状态未变化到结束状态,则更新连接结点所维护的定时器,并根据连接结点所处状态设置定时器的时长;判断是否需要检查超时队列,若是则进行检查并删除超时的连接结点。该方法实现方便的对监测系统所监测的TCP连接进行管理。
文档编号H04L12/26GK101447896SQ200710178168
公开日2009年6月3日 申请日期2007年11月27日 优先权日2007年11月27日
发明者王湘煜, 丹 袁 申请人:北京高信达网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1