一种网络连接跟踪方法及其系统的制作方法

文档序号:7927977阅读:133来源:国知局
专利名称:一种网络连接跟踪方法及其系统的制作方法
技术领域
本发明涉及一种网络连接跟踪方法及其系统。
背景技术
任何网络连接,都离不开协议栈的作用。 一个连接就是至少一个数 据包从发送端到目的端的传送。这中间首先要在连接表中创建便于跟 踪维护的表项,使数据包和连接关联起来,然后通过协议栈的转化。
任何网络管理设备,如果要支持基于连接的控制,就需要维护连 接信息,即对数据包进行连接跟踪,以便把数据包跟所属连接关联起 来,从而在连接的层次对数据包进行控制。
图l示出现有技术连接跟踪结构图。如图1所示,T0表即为单级 连接跟踪表, 一个数据包P传送过来后,首先要在T0表中进行查询,看 是否已经存在该连接C。如果存在,更新该连接C的统计/状态信息;如 果不存在,则需要在TO表中创建新的表项,以标示该数据包所代表的新 连接C。然后,在连接跟踪表中已有的连接经过协议栈后继处理。
协议栈的后继处理包括协议的分析转化(例如IP-〉TCP-〉HTTP)以 及数据包的转换(例如NAT)以及转发(路由或桥接)。其中,协议栈 对数据包的转化,比如IP-〉TCP-〉HTTP-〉MSN:对于接收到的IP数据包, 去掉IP数据头,检测到是一个TCP数据包,就把TCP数据包传到TCP 协议处理层,去掉TCP数据头,检测到是一个HTTP数据包,就把HTTP 数据包传到HTTP协议处理层,经过进一步分析,发现该数据包是MSN 相关的HTTP应用,则继续把数据报提交给MSN相关的处理逻辑。
在数据包进入协议栈之前,也即协议栈对数据包的后继处理之前, 要进行数据包与连接的关联。 一旦有新的数据包传送过来,就会产生新 的连接。随着网络软件发展,尤其是以P2P软件为代表,经常会发出大 量的试探性连接,而这些连接通常只包含l至2个数据包,却占据了全 部连接数量的相当大一部分。对于这样的连接,目前的连接跟踪模块 不加区分的为其分配新的表项,并且与正常连接一样,需要经过较长 时间才会被清除。目前网络连接跟踪存在的主要问题是1.很多无意义连接占据了连接跟踪表;2.由于连接跟踪表的规模变大了,对于正常的数据包,查 找相应连接表项的操作代价增大了 ;3.在总连接数一定的约束下,新连 接找不到可用新表项的概率增大了。. 因此,需要一种新的网络连接跟踪机制,即在数据包入协议栈之前, 减少无意义或无效的连接,并减小连接跟踪表的规模,在总连接数一定 的条件下,增大新连接可用概率。发明内容有鉴于此,本发明把原有的单级连接跟踪表分成两级,提供了一种 全新的基于两级连接跟踪逻辑的网络连接跟踪方法及其系统。根据本发明的第一方面,提供了一种包括连接跟踪逻辑的网络连 接跟踪方法,其中所述连接跟踪逻辑包括处理未确认连接的表和处理 已确认连接的表,所述方法包括以下步骤步骤l:对于未确认连接,判断是否满足确认条件;步骤2:满足确认条件的话,迁移到处理已确认连接的表中;步骤3:把处理已确认连接的表中的连接依次进行协议栈后继处理。优选地,对数据包,先在处理已确认连接的表T2中进行查找与该 数据包相关的连接,如果该连接已在处理已确认连接的表T2中,则直接 执行步骤3。优选地,对不属于已确认连接的数据包,在处理未确认连接的表 Tl中进行查找与该数据包相关的连接,如果没有相关表项,确认其属于 新建连接,则在处理未确认连接的表Tl创建对应的连接表项。优选地,所述确认条件包括以下一种或多种网络层的协议状态和统计信息、传输层的协议状态和统计信息以 及应用层的协议状态和统计信息。根据本发明的第二方面,提供了一种网络连接跟踪系统,包括 处理未确认连接的表(T1)和处理已确认连接的表(T2),以及 连接迁移模块(402),判断处理未确认连接的表(T1)中的未确认连接是否满足确认条件(CC),在未确认连接满足确认条件(CC)时,将未确认连接迁移到处理已确认连接的表(T2)中;和后继处理模块(410),把处理已确认连接的表(T2)中的连接依次 进行协议栈后继处理。优选地,所述处理未确认连接的表Tl周期性清理其中不活跃时间 超过时间阈值的未确认连接。优选地,所述周期性清理操作的周期由处理未确认连接的表T1的 若干次更新操作确定,或者用定时器触发控制。本发明在数据包入协议栈之前,把单级连接跟踪表改进为两级连 接跟踪表,减少每一级连接跟踪表的规模,并使无效连接或无意义连 接占用有限的网络资源降到最低,同时提前对数据包加以区别以便跟 踪其连接状态。


下面将参照附图对本发明的具体实施方案进行更详细的说明,其中图1是现有技术连接跟踪结构图; 图2是本发明的连接跟踪结构图;图3是本发明一个实施例的连接跟踪实施流程图;以及 图4是本发明一个实施例的模块关系图。
具体实施方式
为了使无效连接或无意义连接占用有限的网络资源降到最低,本 发明提供了一种网络连接跟踪方法及其系统。接下来将具体说明该网 络连接跟踪方法及其系统,其中,数据包(Packet)表示为P,其所对 应的连接(connection)表示为C,其迁移的确认条件(Confirm Condition)表示为CC。图2示出本发明的连接跟踪结构图。如图2所示,用两级连接跟 踪表Tl和T2替换如图1所示的单级连接跟踪表T0。新连接C的数据 包P传送过来后,首先在处理未确认连接的表Tl进行状态的维护,在C 满足迁移确认条件时,把C从处理未确认连接的表Tl迁移到处理己确 认连接的表T2中。然后在处理已确认连接的表T2中依照类似于表T0的逻辑进行连 接C在数据包P上的后继处理。经过处理未确认连接的表Tl对新连接C进行缓冲后,只有满足确7认条件CC的连接才会进入处理已确认连接的表T2中。这样的缓冲处 理,确保了 T2表中不会含有无用的探测连接,即T2中表项数目会比 T0少很多;并且,对于正常流量上的数据包,基于T2的查找比基于 T0的查找要快;同时,Tl表的大小可以根据用户对新建连接速率的需 求进行配置。图3示出本发明一个实施例的连接跟踪实施流程图。如图3所示, 在步骤302开始,在步骤304中接收数据包P,按数据包的源地址IP 和端口 Port信息在T2表中查找对应表项。紧接着,在步骤306中判断能否在T2表中查找到P所对应的C。 如果能,则跳转到步骤326,按照一定逻辑对T2表中的P进行后继处 理。如果步骤306判断为不能,则进入步骤308中,P属于未确认连接, 并在T1中进行查找,在步骤310如果在T1表中查找失败,则P属于 新建连接,在步骤312中尝试在T1中为其分配新的表项。需要补充说明的是,未确认连接包括未确认已有连接和新建连接, 其中未确认已有连接已经在处理未确认连接表Tl中,而新建连接是要 在处理未确认连接表T1中待建立的连接。在步骤310中,如果找到相应的连接,则直接跳转到步骤320,针对 P更新该连接C的统计/状态信息。在步骤314中,对分配结果进行判断,看是否分配失败。如果是, 说明T1表中表项已满,则进入步骤316,可以按照一定的策略替换一 条较早的连接表项,然后再进入步骤318;如果不是,直接进入步骤 318,记录连接生成时间以及连接之间的先后顺序。在步骤320中,针对P更新连接C的统计/状态信息,接着在步骤 322中,判断P所对应的C是否满足确认条件CC。如果否,则跳转到 步骤320中,重新执行等待并不断更新该连接C的统计/状态信息。在步骤322的判断中,如果是,则进入步骤324中,把P所对应 的连接C从T1表中迁移到T2表中。然后再在步骤326中,按照一定 的逻辑对T2中的C及所对应的P进行协议栈的后继处理。在步骤328中,每隔一定周期,清理T1表中不活跃时间超过时间 阈值的连接。在对数据包以及相应连接工作均处理后,进入步骤330 中,结束整个工作流程。在一个实施例中,所述处理未确认连接的表T1按周期性清理其中 不活跃时间超过时间阈值的未确认连接。清理周期可以由若干次处理未确认连接的表T1的更新操作确定,或者用定时器触发控制。另外一种方式是用定时器进行周期性触发。当清理周期时间到了,对表T1进行一次遍历,找出其中不活跃时间超过时间阈值的连接表项。需补充说明的是,连接表中的不活跃时间的判定可以是通过该表 项的最后一次更新/统计信息的操作获取。不活跃时间是当前时间与最 后 一 次更新/统计信息的操作时间的差值。在本发明中,所述确认条件(CC)包括以下一种或多种网络层的 协议状态和统计信息、传输层的协议状态和统计信息以及应用层的协 议状态和统计信息。在网络层的协议状态和统计信息方面,比如连接的两个方向均至 少有一个数据包,或者,连接双方至少交换了一定规模的字节。至于传输层的协议状态和统计信息,例如TCP已完成三次握手。关于应用层的协议状态和统计信息,比如FTP应用中用户名和密码 正确已经成功登录;HTTP应用中发送完整的请求;Email使用中成功 登录邮箱。需要注意的是,不同层次的实现方式有不同的时间复杂度, 影响数据包P的处理延迟以及连接C在Tl中的滞留时间。在本发明中,需补充说明的是,关于步骤320中针对P更新连接C 的统计/状态信息,所述统计/状态信息与确认条件采取的策略有关。不 同的确认条件(CC)导致不同的统计/状态信息,连接的统计/状态信息 因确认条件的策略变化而变化。在所有的实施中连接表中任一表项状态的维护也与确认条件采取 的策略有关。其表项的状态比如包括该表项对应的连接传输了多少字 节,传输到什么状态,该连接所处应用是否满足等。在一个实施例中,Tl和T2都采用Hash表组织,以尽量縮小查询 P所在连接的开销。对于正常连接的数据包P,需要在T2里查一次, 这次查找在TO里也是需要的,但由于T2的规模比T0小,因此平均查 找时间要少。对于未确认连接迁移之前的数据包,增加了T1的查找部 分,由于T1本身比T0或T2要小(未确认连接数要小于并发连接数) 且未迁移部分一般只涉及连接初始的少数几个数据包,因此不会显著 增大开销。在一个实施例中,针对连接C的迁移的具体过程是把C从T1表 中相应的Hash链中删除,移动到T2表中相应的Hash链。图4是本发明一个实施例的模块关系图。如图4所示,该网络连接跟踪系统包括处理未确认连接的表T1和处理已确认连接的表T2以及 连接迁移模块402和后继处理模块410。连接迁移模块402,判断处理未确认连接的表T1中的未确认连接 是否满足确认条件(CC),在未确认连接满足确认条件(CC)时,将未确认 连接迁移到处理已确认连接的表T2中。后继处理模块410,把处理已确认连接的表T2中的连接依次进行 协议栈后继处理。其中,连接迁移模块402相关的是迁移策略(确认条件CC)的确定 当Tl中的连接更新后,执行CC判断,满足条件的连接被认定为正常 连接,并实施从Tl到T2的迁移。CC可以参考不同层次的统计信息, 下面从各层举例说明令网络层方面双方至少互相交换了X个数据包,例如至少交换了2个;或者双方至少交换了 Y字节的数据,例如1000字节。 令传输层方面对TCP而言,双方至少完成了 TCP的握手过程;或 者进一步的,在握手之后的X个包里至少有Y个有效负载非0 的数据包,例如在握手后的前4个包中至少有2个非纯ACK的 包;对UDP,也可以用类似的条件,例如前5个包中至少有3 个有效载包。令应用层方面可以结合应用协议识别的内部状态机,例如,对FTP/SMTP/P0P3等含有登录概念的应用,可以把CC定义为针对 本协议的正常登录被服务器验证通过;进一步的,如果系统关 注于产生数据传输的连接,可以把CC扩展为真正传输行为的开 始(如FTP上传/下载、邮件的发送/接收等)。 在一个实施例中,还包括周期清理模块408。与周期清理模块408 相关的是不活跃时间阈值和清理周期。每隔一个周期,便对表Tl进行 遍历,清理其不活跃时间超过时间阈值的连接。其中,不活跃时间阈值可如下设定,例如一条连接在T1表中的存在 时间超过Pl后即可判定为不活跃/非正常连接,在下一个清理周期中 便可以被释放。例如对TCP连接1 5秒,对UDP连接1 3秒。清理周期可如下设定,例如两次对Tl执行不活跃检查的间隔,可 以有两种定义方式a.每隔一定时间,例如1 5分钟;b.每隔若干次 对Tl表的更新操作,例如500 2000次。在一个实施例中,还包括连接查找模块400。该模块的作用是对于 一个不知道属于新建连接还是已有的确认连接或未确认连接的数据包,10在T2和Tl中进行查找,已确定最优的关联。对于这个数据包P,先在T2表中进行查找,如果找到相应的连接C, 则直接交给后继处理模块410进行后继的处理。如果在T2表中没有找 到相应的连接C,则继续在Tl表中进行查找,如果找到Tl表中相应的连 接C,则要在Tl表中维护状态,等待连接迁移模块402的确认和迁移; 如果在Tl表中没有找到相应的连接C,则可以确认其属于新建连接C, 需要在Tl表中创建相应的表项。在一个实施例中,还包括连接创建模块406。该模块可以对不属于 T2表和Tl表的连接的数据包,在Tl表中创建新的表项,也即其对应的 连接。其中,新建连接数C需要进行一定的限制。新建连接数C决定了 Tl 表的规模,即T1表中维护的最大连接数,例如1000~10000。具体的数 值又和用户期望的新建连接速率(C1)和正常连接的平均确认时间(C2) 有关,例如Cl二5000/秒,C2二0. 5秒,则C可以设为C1*C2=2500。在一个实施例中,还包括连接替换模块404。该模块依据替换策略 对T1表中的连接进行替换。需要进一步说明的是其替换策略。当T1 的连接数达到C限制阈值时,如何选取一条不活跃连接并释放,以满 足后继新建连接的需求。最简单的方案是选择最不活跃的连接。可以参考Cache的替换策略 比如LRU/LFU/FIFO等。也可以与用户信息相结合,不是全局的替换最 不活跃的连接,而是从特定用户的连接中替换最不活跃的;其中特定 用户的选取又可以分为多种情况1) 最不活跃的用户;2) 存活时间最长的用户;3) 不活跃连接最多的用户;4) 连接数最多的用户(连接数越多越有可能在用P2P)等。本发明的网络连接跟踪系统可工作在数据包入协议栈前的网络环 节,比如路由、网卡以及网络计算机设备中。以上对本发明的具体描述旨在说明具体实施方案的实现方式,不 能理解为是对本发明的限制。本领域普通技术人员在本发明的教导下, 可以在详述的实施方案的基础上做出各种变体,这些变体均应包含在 本发明的构思之内。本发明所要求保护的范围仅由所述的权利要求书 进行限制。
权利要求
1.一种包括连接跟踪逻辑的网络连接跟踪方法,其中所述连接跟踪逻辑包括处理未确认连接的表(T1)和处理已确认连接的表(T2),所述方法包括以下步骤步骤1对于未确认连接(C),判断是否满足确认条件(CC);步骤2满足确认条件(CC)的话,迁移到处理已确认连接的表(T2)中;步骤3把处理已确认连接的表(T2)中的连接依次进行协议栈后继处理。
2. 如权利要求1所述的网络连接跟踪方法,在步骤1之前还包括 以下步骤对数据包,先在处理已确认连接的表(T2)中进行查找与该数据包 相关的连接,如果该连接已在处理已确认连接的表(T2)中,则直接执行 步骤3。
3. 如权利要求2所述的网络连接跟踪方法,在所述附加步骤之后、 步骤1之前还包括以下步骤对不属于已确认连接的数据包,在处理未确认连接的表(T1)中进 行查找与该数据包相关的连接,如果没有相关表项,确认其属于新建连 接,则在处理未确认连接的表(T1)创建对应的连接表项。
4. 如权利要求1所述的网络连接跟踪方法,所述确认条件(CC)包括 以下一种或多种网络层的协议状态和统计信息、传输层的协议状态和统计信息与 应用层的协议状态和统计信息。
5. 如权利要求1所述的网络连接跟踪方法,所述处理未确认连接的 表(Tl)和处理已确认连接的表(T2)均为Hash表。
6. 如权利要求5所述的网络连接跟踪方法,所述未确认连接从处理 未确认连接的表(Tl)到处理已确认连接的表(T2)的迁移为从处理未确 认连接的表(Tl)中相应的Hash链中删除,移动到处理已确认连接的表 (T2)中相应的Hash链。
7. 如权利要求4所述的网络连接跟踪方法,所述网络层的协议和统 计信息为以下一种或两种连接的两个方向均至少有一个数据包;连接双方至少交换了一定规模的字节。
8. 如权利要求4所述的网络连接跟踪方法,所述网络层的协议和统计信息为TCP完成三次握手。
9. 如权利要求4所述的网络连接跟踪方法,所述应用层的协议和统 计信息为FTP成功登陆。
10. 如权利要求1至9任一项所述的网络连接跟踪方法,还包括以 下步骤周期性清理处理未确认连接的表(T1)中不活跃时间超过时间阈值 的未确认连接。
11. 如权利要求io所述的网络连接跟踪方法,所述周期性清理每隔一个周期进行,周期由可釆用定时器触发确定,或者由若干次处理未确 认连接的表(Tl)更新操作确定。
12. 如权利要求ll所述的网络连接跟踪方法,所述连接用IP和 PORT表示,并且/或者,在表查询操作中以IP和PORT信息为关键字。
13. —种网络连接跟踪系统,包括处理未确认连接的表(T1)和处理已确认连接的表(T2),以及 连接迁移模块(402),判断处理未确认连接的表(T1)中的未确认连接是否满足确认条件(CC),在未确认连接满足确认条件(CC)时,将未确认连接迁移到处理已确认连接的表(T2)中;禾口后继处理模块(410),把处理已确认连接的表(T2)中的连接进行 协议栈后继处理。
14. 如权利要求13所述的网络连接跟踪系统,还包括连接创建模块 (406),对于属于新建连接的数据包,在处理未确认连接的表(T1)中创建相应的表项。
15. 如权利要求13所述的网络连接跟踪系统,还包括连接替换模块 (404),在新建连接数超过限制阈值时,新建连接依照替换策略替换已有的连接。
16. 如权利要求13所述的网络连接跟踪系统,还包括周期清理模 块(408),周期性清理处理未确认连接的表(T1)中不活跃时间超过时 间阈值的未确认连接。
17. 如权利要求16所述的网络连接系统,所述周期性清理每隔一 个周期进行,周期由若干次处理未确认连接的表(T1)更新操作确定。
18. 如权利要求13至17任一项所述的网络连接跟踪系统,所述确 认条件(CC)包括以下一种或多种网络层的协议状态和统计信息、传输层的协议状态和统计信息以 及应用层的协议状态和统计信息。
19. 如权利要求18所述的网络连接跟踪系统,所述网络层的协议和 统计信息为以下一种或两种连接的两个方向均至少有一个数据包; 连接双方至少交换了一定规模的字节。
20. 如权利要求18所述的网络连接跟踪系统,所述网络层的协议和 统计信息为TCP已完成三次握手。
21. 如权利要求18所述的网络连接跟踪系统,所述应用层的协议和 统计信息为FTP已成功登陆。
22. 如权利要求18所述的网络连接跟踪系统,还包括连接查询模 块(400),对处理未确认连接的表(T1)和/或处理已确认连接的表(T2) 进行查询操作中以IP和PORT信息为关键字。
全文摘要
本发明披露了一种网络连接跟踪方法及系统,所述方法包括连接跟踪逻辑,其中所述连接跟踪逻辑包括处理未确认连接的表和处理已确认连接的表,所述方法包括以下步骤对于未确认连接,判断是否满足确认条件;满足确认条件的话,迁移到处理已确认连接的表中;把处理已确认连接的表中的连接依次进行协议栈后继处理。本发明利用两级连接跟踪表结构使无效连接或无意义连接占用有限的网络资源降到最低,同时提前对数据包加以区别以便跟踪其连接状态。
文档编号H04L12/24GK101635639SQ20081022698
公开日2010年1月27日 申请日期2008年11月28日 优先权日2008年11月28日
发明者林 刘, 周知远, 梁志勇, 嘉 米, 鑫 陈, 涛 陶 申请人:北京网康科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1