CN100550889C - 分组流过滤方法和过滤器、状态监视方法及数字计算设备 - Google Patents

分组流过滤方法和过滤器、状态监视方法及数字计算设备 Download PDF

Info

Publication number
CN100550889C
CN100550889C CNB028095057A CN02809505A CN100550889C CN 100550889 C CN100550889 C CN 100550889C CN B028095057 A CNB028095057 A CN B028095057A CN 02809505 A CN02809505 A CN 02809505A CN 100550889 C CN100550889 C CN 100550889C
Authority
CN
China
Prior art keywords
session
socket
grouping
conversation database
hash
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.)
Expired - Fee Related
Application number
CNB028095057A
Other languages
English (en)
Other versions
CN1518823A (zh
Inventor
罗内·歌德伯格
加蒂·丹内利
莫什·泽扎克
卓利·肖哈特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telecom Italia SpA
Original Assignee
Telecom Italia SpA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telecom Italia SpA filed Critical Telecom Italia SpA
Publication of CN1518823A publication Critical patent/CN1518823A/zh
Application granted granted Critical
Publication of CN100550889C publication Critical patent/CN100550889C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Abstract

本发明公开了一种新颖和有益的动态分组过滤器,它可以引入一个基于硬件并且适合在便携计算设备中使用的防火墙之中,其中所述便携计算设备是诸如蜂窝电话和无线连接的PDA这类适于连接到因特网的设备。本发明对经由输入分组流接收的分组进行动态分组过滤。动态过滤器使用从接收分组中提取的信息来检查动态协议行为。会话将被创建并且保存在一个会话数据库中,以便追踪源和目的地之间的通信状态。并且使用散列表来快速确定会话数据库中的相应会话记录,以便加速会话识别。会话相关数据则是从会话数据库中读取的,并且依照一组规则来对接收分组进行检查,以便确定是否允许或拒绝分组。

Description

分组流过滤方法和过滤器、状态监视方法及数字计算设备
技术领域
本发明一般地涉及数据通信系统,尤其涉及一种使用会话追踪来判定是否允许或拒绝一个分组的动态分组过滤器。
背景技术
近年来,全世界都见证了因特网的爆炸性增长。在用户数似乎正在无止境增长的同时,每年都会有更多的主机加入。因特网能够使用不同的技术来进行通信,其中包括远程计算机登录、文件传输、万维网(WWW)浏览、电子邮件等等。此外还设计了不同的协议并把这些协议用于因特网,以便处理不同类型的通信,例如,用于文件传送的文件传送协议(FTP),用于万维网业务的超文本标记语言(HTML)等等。通常,涉及因特网通信的协议是在传输控制协议/网际协议(TCP/IP)这个协议集的保护下进行划分的,所述协议集包含了处于OSI通信栈的不同层的协议。
因特网的一个关键特征在于:它是一个几乎任何配备了计算机、电话线和因特网服务提供商(ISP)帐号的个人都可以访问的公共网络。对这种大规模的公众可访问性而言,其不利之处在于:它使得黑客及有意对因特网上一台或多台主机进行恶意活动的其他人能够很容易地进行访问。黑客可以设法侵占远程网络的计算机并且继续监听(tap)通信数据,由此诸如恶意用户窃取秘密信息或者删除重要文件这类非法行为都是有可能发生的。而因特网架构委员会(IAB)则是通过在允许经由因特网进行安全事务的IPv6中包含诸如加密和验证等安全特性来解决安全方面的需要的。
为了对抗黑客的威胁并且确保专用通信网的安全,现今,较为普遍的做法是在公司或单位的专用通信网入口安装一个防火墙。防火墙使用了某种形式的分组过滤器,其功能是执行用户定义的安全策略。防火墙则是一个位于单位的本地网络与全球因特网之间边界上的系统。它对所有数据通信进行过滤,以免将信息泄漏到外部网络,并且防止外界对内部网络进行非授权访问。而拒绝/允许决定则是为防火墙接收的各个分组做出的。
同时,整个世界都在目睹着无线服务(即蜂窝电话、双向寻呼机、无绳设备等等)与膝上计算机、PDA等个人计算设备方面的日益增长的需求。许多个人计算设备都结合了无线通信电路,由此能够经由无线网络(例如蜂窝或其他宽带方案)而与因特网这类WAN网络进行通信。因此,越来越多的PDA和蜂窝电话正在连接到因特网上,由此将这些设备暴露给了危险分子。优选地,这些设备使用某种防火墙来防止对其进行的非授权访问。然而,现今大多数防火墙都是以软件方式实施的,它们需要一台完整的台式计算机的计算资源,而这使得它们在蜂窝电话或PDA这类便携计算设备中的应用变得不切实际。
因此,需要一种易于在小型设备中实现的防火墙或分组过滤器,所述防火墙或分组过滤器适于引入小型便携计算设备之中,例如蜂窝电话和无线连接的PDA。
发明内容
本发明提供了一种新颖和有益的动态分组过滤器,它可以在硬件、软件或者硬件与软件的组合中实现。本发明可以引入一个基于硬件并且适合在便携计算设备中使用的防火墙之中,所述便携计算设备是诸如蜂窝电话和无线连接的PDA这类适于连接到因特网的设备。
本发明对经由输入分组流接收的分组执行动态分组过滤。优选地,本发明位于WAN(即因特网)与本地LAN之间。在这种情况下,动态分组过滤器可以进行操作,以便过滤从WAN到LAN的入站分组以及从LAN到WAN的出站分组。需要注意的是,动态过滤对检查动态协议行为有效,而不是协议的静态规则。本发明通过创建会话来追踪源与目的地之间的通信状态,由此实现了这个目的。
新的会话将被检测、创建,与之相关的数据则保存在一个会话数据库中。此外还尝试识别各个接收分组并将这些接收分组与先前打开的会话相关联。会话识别则是通过使用散列表来快速确定会话数据库中的相应会话记录才得以加快的。并且可以使用完整或部分套接字信息来计算所述散列。完整套接字信息包括104个比特的源和目的地IP地址、源和目的地端口号以及协议。名为漏洞(hole)的部分套接字信息则遗漏了一个或多个信息项。漏洞数据库被用于保存当前开启的漏洞。一旦识别出漏洞会话(hole session),则使用缺少的参数来填充所述漏洞。
如果没有发现漏洞,则创建一个新的会话。如果发现一个现有漏洞,则从会话数据库中读取会话相关数据并且根据一组规则来检查接收分组。所述规则描述为状态转移图,它指定了由特定协议所允许的状态和转移。
如果一个分组符合所述协议的合法性为,则允许所述分组,否则将会拒绝这个分组。然后,使用新的状态信息和相关参数来更新会话数据,并且把会话数据回写到会话数据库中。
尽管本发明意图是以硬件方式实现,但是也可以通过软件方式来实施本发明。在一个实施例中,包含处理器、存储器等设备的计算机进行操作,以便执行一个适于执行本发明的动态分组过滤方法的软件。
因此,根据本发明,提供了一种过滤一个输入分组流的方法,所述方法包括以下步骤:建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应,一旦接收到一个先前并未保存在会话数据库中的套接字,则打开一个新的会话,根据接收分组的相关套接字来识别一个与之相关的会话,根据多个预定规则来处理对应于接收分组的会话数据,以便产生处理结果,并且根据处理结果来判定是否允许或拒绝所述接收分组。
根据本发明,提供了一种过滤输入分组流的方法,所述方法包括以下步骤:建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应;根据接收分组的相关套接字来识别一个与之相关的会话;如果没有识别出会话,则执行静态过滤器检查、如果所述静态过滤器检查的结果允许所述接收分组,则检查所述接收分组是否是会话开启者、并且如果所述接收分组是会话开启者,则打开新会话;根据多个预定规则来处理对应于所述接收分组的会话数据,以便产生处理结果;以及根据处理结果来判定是否允许或拒绝所述接收分组。
根据本发明,还提供了一种监视通信会话状态的方法,所述方法包括以下步骤:建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应,根据对关联于接收分组的套接字所进行的第一散列计算来识别一个会话,根据对关联于接收分组的部分套接字所进行的第二散列计算来识别一个漏洞会话,从会话数据库中读取会话数据,其中会话数据与所识别的会话或所识别的漏洞会话中的一个相关联,追踪会话的连接状态并且依照多个规则来检查所述状态,由此确定是否允许或拒绝所述接收分组,并且把经过更新的会话数据回写到会话数据库中。
根据本发明,还提供了一种用于过滤输入分组流的动态过滤器,其中包括:一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应,一个会话识别模块,它适于在会话数据库中搜索一个相关套接字与接收分组套接字相匹配的会话,一个适于维护会话数据库的会话管理模块,所述维护包括了添加、删除和修改会话数据库中的会话,以及一个主过滤模块,所述模块可以进行操作,以便追踪一个对应于接收分组的会话连接状态,并且依照多个规则来检查连接状态,由此确定是否允许或拒绝所述接收分组。
根据本发明,还提供了一种数字计算设备,其中包括:适于将设备连接到广域网(WAN)的通信装置,由易失和非易失存储器组成的存储装置,其中非易失存储器适于保存一个或多个应用程序,一个耦合到存储装置和通信装置以便执行一个或多个应用程序的处理器,以及一个对输入分组流进行过滤的动态过滤器,其中包括:一个适于为多个会话保存会话相关数据的会话数据库,每个会话都与一个套接字相对应,一个会话识别模块,它适于在会话数据库中搜索相关套接字与接收分组套接字相匹配的会话,一个适于维护会话数据库的会话管理模块,所述维护包括了添加、删除和修改会话数据库中的会话,以及一个主过滤模块,所述模块进行操作以便追踪一个与接收分组相对应的会话的连接状态,并且依照多个规则来检查连接状态,由此确定是否允许或拒绝所述接收分组。
根据本发明,进一步提供了一种在其上嵌入了包含计算机程序的计算机可读介质,当在恰当编程的系统上执行这个程序的时候,所述程序通过执行以下操作而使该系统搜索多个字符串:建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应,一旦接收到一个先前并未保存在会话数据库中的套接字,则打开一个新的会话,根据接收分组的相关套接字来识别一个与之相关联的会话,根据多个预定规则来处理对应于接收分组的会话数据,由此产生处理结果,并且根据处理结果来判定是否允许或拒绝所述接收分组。
附图说明
在这里参考附图来对仅仅作为实例的本发明进行描述,其中:
图1是对WAN或因特网环境中的本发明的动态分组过滤器的若干实例应用进行描述的框图;
图2是更为详细描述本发明的动态分组过滤器的框图;
图3是描述本发明的主过滤器处理器方法的流程图;
图4是对发现匹配时的本发明的主过滤器处理器方法进行描述的状态转移图;
图5是对没有发现匹配时的本发明的主过滤器处理器方法进行描述的状态转移图;
图6是一个描述了对关联于输入分组的会话进行判定的散列技术的图示;
图7是对本发明的会话识别处理的散列方法进行描述的流程图;
图8是对本发明的会话识别处理的漏洞搜索(hole search)方法进行描述的流程图;
图9是对TCP会话的分组流进行描述的图示。
图10是对开启TCP会话时的三次握手进行描述的状态转移图;
图11A和11B是对关闭TCP会话时的四次握手进行描述的状态转移图;
图12是一个描述ARP会话分组流的图示;
图13是一个描述ICMP回声会话分组流的图示;
图14是一个描述ICMP消息/差错会话分组流的图示;
图15是对主过滤处理器在规则检查中执行的序列号窗口追踪进行描述的图示;
图16是对主过滤处理器在规则检查中执行的应答序列号窗口追踪进行描述的图示;
图17是对用于追踪会话陈旧的最近最少使用链表结构进行描述的图示;
图18是一个对在识别到与输入分组相关联的会话时的更新LRU链表的方法进行描述的流程图;
图19是描述本发明的会话管理模块处理的流程图;
图20是描述本发明的会话管理模块所执行的打开会话处理的流程图;
图21是描述本发明的会话管理模块所执行的关闭会话处理的流程图;
图22是对用于会话的族指针(family pointer)进行描述的图示;
图23是对多个会话之间的实例性族关系进行描述的图示;以及
图24是对一个实例性计算机处理系统进行描述的框图,所述系统充当一个适于执行结合了本发明的会话追踪方法的动态分组过滤的平台。
具体实施方式
自始至终使用的符号
以下符号在整个文档中被使用。
本发明提供了一种新颖和有益的动态分组过滤器,它可以在硬件、软件或者硬件与软件的组合中实现。本发明可以引入到一个基于硬件并且适于在便携计算设备中使用的防火墙之中,所述便携计算设备是诸如蜂窝电话和无线连接的PDA这类适于连接到因特网的设备。
本发明对经由输入分组流接收的分组执行动态分组过滤。优选地,本发明位于WAN(即因特网)与本地LAN之间。在这种情况下,动态分组过滤器可以进行操作,以便过滤从WAN到LAN的入站分组以及从LAN到WAN的出站分组。需要注意的是,动态过滤对检查动态协议行为有效,而不是协议的静态规则。本发明通过创建会话来追踪源与目的地之间的通信状态,由此实现了这个目的。
需要注意的是,输入流可以根据特定应用而包含任何类型的输入数据,例如帧、分组、字节、PDU等等。在这里仅仅是出于说明目的而把输入数据流当作是分组序列。
应该指出的是,所描述的动态分组过滤器仅仅是作为实例给出的,它并不意欲对本发明的范围加以限制。电子领域的技术人员可以通过硬件、软件或者两者结合的方式来构造其他的动态分组过滤器,由此在不脱离本发明范围的情况下,使用这里描述的发明原理来执行动态分组过滤。
本发明的动态过滤器可以进行操作来维护一个名为会话数据库的链表,以便监视通信会话的状态。如果新会话通过了一个静态安全策略规则,那么这个新会话将会添加到会话数据库中。一旦创建了会话,则根据关联于分组的特定协议的会话状态来检查对应于这个会话的后续分组。只有在分组符合特定协议规范的情况下,所述分组才是允许的。
本发明的动态过滤器在许多不同类型的系统都具有广泛的应用。图1显示的是对本发明的动态分组过滤器在WAN或因特网环境中的若干实例应用进行描述的框图。如这里显示的三个实例中的每一个实例所示,动态过滤器通常是作为防火墙的一部分来构造的,所述防火墙则用于防止对受到保护的网络进行非授权访问。
在第一实例中,动态过滤器16是防火墙14中的一个组件,所述防火墙是以某种个人计算设备12的形式来实施的,该设备与WAN或因特网这类网络10进行有线或无线通信。个人计算设备可以包括任何设备,例如手持Palm这类个人数字助理(PDA)、蜂窝电话、无线手机等等。在这个实例中,动态过滤器/防火墙的功能是对因特网与设备之间的分组进行双向过滤。
在第二个实例中,动态过滤器22是防火墙20的一个组件,所述防火墙是在一个与WAN或因特网10进行有线或无线通信的电缆插头适配器18中实现的。设备18位于因特网与宽带调制解调器24之间,其功能是将LAN 26连接到因特网。电缆插头转接器中的动态过滤器的功能是过滤那些从因特网发送到LAN的分组,反之亦然。宽带调制解调器适于对宽带信号进行调制和解调,所述宽带信号可以是诸如ADSL、HDSL、VDSL等等的xDSL,卫星,陆基RF、微波等等。
在第三实例中,动态过滤器30是防火墙28的一个组件,所述防火墙是在个人计算机(PC)这种与WAN或因特网进行有线或无线通信的独立计算机31上实现的。包含防火墙的计算机位于因特网与所保护的LAN 32之间。防火墙中的动态过滤器的功能是过滤那些从因特网发送到LAN的分组,反之亦然。
现在将对动态过滤器进行更为详细的描述。图2显示的是一个对本发明的动态分组过滤器进行更详细描述的框图。通常标注为40的动态过滤器包括总线接口48、缓存器/寄存器50、会话识别模块52、主过滤处理模块54、会话管理模块56、散列表60、漏洞表62以及会话数据库64。动态过滤器经由总线接口并且通过总线47而与主机设备/CPU 42、报头解码器46、静态过滤51以及内容搜索单元53进行通信。
需要指出的是,在整篇文档中假设动态过滤器位于WAN与LAN之间并且所述动态过滤器进行操作来过滤两个方向上的分组。入站分组涉及那些来源于WAN朝向LAN的分组,而出站分组则涉及那些来源于从LAN朝向WAN的分组。因此,输入分组流可以包括入站分组和出站分组。
输入分组流44来源于CPU,其内容转发到报头解码器,所述解码器的功能是对分组报头部分进行解码(或解析)。报头解码器执行操作来提取那些由动态过滤器使用的受关注字段。报头解码器提取的数据经由总线转发到动态过滤器。所述数据包括一个散列值(如果由CPU计算),104个比特套接字数据,其中包括32比特的源和目的地IP地址、16比特的源和目的地端口以及8比特的协议,指示第4层分组类型的动态功能值,对于TCP协议而言,其中包括了例如ICMP、ARP、TCP、UDP等等,此外,该数据还包括32比特的序列号,32比特的应答,11比特的有效负载长度以及16比特的窗口长度。应该指出的是,根据执行过程,报头解码器既可作为外部模件构造,也可以与动态过滤器相整合。
第四层分组的各种类型是由不同的动态功能值来表示的。这个值由动态过滤器使用,以便在处理接收分组的时候选用恰当的硬件设备来追踪会话状态并验证其合法性。报头解码器对有效负载长度进行计算并将其转发到动态过滤器。所述长度是通过从IP分组的总长度字段中减去IP报头与TCP报头长度之和来计算的。
主过滤器处理器包括CPU接口58并且充当动态过滤器的主要处理部件。它打开新的会话,处理现有会话并且追踪会话状态,同时根据特定协议来验证合法的状态改变,也就是允许的状态改变。会话识别模块的功能是接收套接字并且在会话数据库中搜索匹配于所述套接字的开启会话。会话管理模块的功能是维护一个散列链表和一个最近最少使用(LRU)链表,由此向列表中添加会话或是从中删除会话。会话数据库的功能是保存套接字以及包括会话状态和当前状态在内的其他会话相关数据,以供动态过滤器的不同处理模块使用。散列和漏洞表则用于加速会话识别。下文将会更为详细地描述这些组件。
主过滤器处理
现在将对主过滤器处理进行更详细的描述。图3显示的是对本发明的主过滤器处理器方法进行描述的流程图。在这里将动态过滤器构造成了采用三个阶段的方式来处理分组数据,其中,与分组相关联的会话数据是在一个阶段中从会话数据库中读取的,然后在第二阶段对数据进行处理,并且在第三阶段将处理结果回写到会话数据库中。在处理阶段中,会话状态是按照预定规则来追踪的,并且对于是否允许或拒绝分组做出了判定。
首先执行的是会话识别(步骤70),由此对会话数据库进行搜索,以便寻找一个与接收分组套接字相匹配的套接字。识别结果则返回给主过滤器处理器(步骤72)。如果并未发现匹配(步骤74),则使用一个静态过滤器来执行静态规则检查(步骤76)。静态过滤器既可以是动态过滤器的一部分,也可以不是动态过滤器的一部分,其功能是根据与不同协议相对应的一组静态规则来对接收分组进行静态检查。在通信领域中,分组静态规则检查是众所周知的,因此在这里不再进行详细说明。
如果静态规则检查的结果是拒绝分组,也就是说,分组违反了一条或多条协议规则(步骤78),则滤除所述分组(步骤96)。如果静态规则检查的结果是允许分组,则检查所述分组是否是一个会话开启者(步骤80)。如果它是一个可以在逻辑上打开会话的分组,那么该分组即为会话开启者。举例来说,应答分组无法打开会话,而TCP分组则必须是SYN分组才能打开会话等等。如果分组不是会话开启者,则滤除所述分组(步骤96)。
如果分组是一个有效的会话开启者,则创建一个新会话(步骤82)。将会话相关数据和参数保存在会话数据库中(步骤84)。然后,对指向新会话的散列指针进行计算,并将其保存在散列表中(步骤86)。在识别阶段,所述散列指针被用于快速寻找所述会话。
如果发现了一个套接字匹配于接收分组套接字的会话(步骤74),则从会话数据库中读取会话数据(步骤88),然后对会话数据进行处理(步骤90)。此外还检查与特定分组协议相关联的动态规则并且判定是否允许或拒绝所述分组。对会话状态进行追踪并且依照关于特定协议的允许行为来对其进行检查。根据本发明,动态规则检查是在硬件而不是软件中执行的。作为选择,也可以借助软件装置来检查动态规则。
如果拒绝分组(步骤92),则分组将被滤除(步骤96)。如果允许分组,则会把具有更新会话追踪状态的更新会话数据回写到会话数据库中(步骤94)。
在会话开启者、滤除分组或允许分组中的任何一个之后,一个或多个状态寄存器将被写入,并且将会产生一个中断,以便使用信号来向CPU或其它主机设备告知主过滤器处理结束(步骤98)。
图4显示的是对发现匹配时的本发明的主过滤器处理器方法进行描述的状态转移图。通常标注为290的状态转移图包括多个转移和状态,在发现匹配时,这些转移和状态执行主过滤处理逻辑。所述处理始于匹配状态292并且移至取指针和状态这个状态294。在这种状态中将会取得与会话相关联的指针和状态数据。
如果会话是一个TCP会话,则从会话数据库中获取TCP相关数据(状态297)。然后,所述处理移至TCP处理状态298。所执行的处理包括追踪TCP会话状态和检查会话行为是否合法,下文将会对此进行更为详细的描述。分组可以被滤除(状态302)也可以得到允许,其中所述处理将会继续等待静态过滤检查的结束(状态304)。静态过滤是使用任何公知的静态过滤技术而在动态过滤器外部执行的。静态过滤器检查可以滤除分组(状态302),也可以允许分组,由此所述处理将会等待内容设备结束在有效负载中搜索有效字符串并且等待校验和验证的结束(状态306)。如果通过了校验和验证并且发现一个有效字符串,则更新TCP参数并将其保存在会话数据库中(状态310)。然后将会更新会话指针(状态312)并且允许所述分组(状态314)。如果校验和的验证返回一个校验和错误,或者内容设备发现了一个无效字符串,则滤除所述分组(状态302)。无效字符串包括那些由内容设备发现的字符串,这些字符串因为一个或多个原因而没有得到允许,例如它们指示存在一种病毒以及FTPDELETE命令这种没有得到许可的命令等等。有效字符串包括允许的字符串或是不匹配的字符串。在2001年2月21日提交、序列号为X并且名为“Apparatus for and Method of Multiple Parallel StringSearching”的美国申请中更详细地描述了一种适于结合本发明使用的内容设备,该申请在此引入作为参考。
相似的处理是为不同于TCP的协议执行的。如果所述协议是一个非TCP会话(例如UDP、ARP、ICMP等等)那么将会进入其他协议处理状态296。然后,如下文中更为详细描述的那样,所执行的处理包括追踪连接状态以及检查关于特定协议的会话行为是否合法。所述分组可以滤除(状态302),也可以得到许可,其中所述处理将会继续等待静态过滤检查结束(状态300)。静态过滤器检查可以滤除分组(状态302),也可以允许分组,由此所述处理将会等待内容设备结束有效负载的搜索,并且等待校验和验证的结束(状态306)。如果通过了校验和验证并且发现了一个有效字符串,则更新特定协议参数并将其保存在会话数据库中(状态308)。然后更新会话指针(状态312)并且允许分组(状态314)。如果校验和验证返回一个校验和错误或者内容设备发现了一个无效字符串,则滤除所述分组(状态302)。
图5显示的是对没有发现匹配时的本发明主过滤器处理器方法进行描述的状态转移图。通常标注为320的状态转移图包括多个转移和状态,在并未发现匹配的时候,这些转移和状态执行主过滤处理逻辑。所述处理在并未发现匹配的状态322中开始,如果所述会话是一个会话开启者,则所述处理移至等待静态过滤器判定的状态326。如果所述会话不是一个会话开启者,则滤除所述分组(状态324)。
如果静态过滤器允许分组,那么所述处理将会等待内容设备并且等待校验和验证器结束检查(状态328),否则将会滤除所述分组(状态324)。如果内容设备检查发现了一个无效字符串或者校验和验证显示出一个校验和错误,则滤除所述分组(状态324)。如果在没有出现错误的情况下完成了校验和验证以及内容设备搜索,则打开一个会话并将套接字数据保存在会话数据库中(状态330)。此外,状态、时戳以及连接状态也保存在会话数据库中(状态332)。如果会话是一个非TCP会话,则允许所述分组(状态336)。在TCP会话的情况下,TCP会话将被打开(状态334),然后则允许所述分组(状态336)。
根据本发明,动态过滤器适于在那些适合为所支持的所有协议并行执行会话追踪处理的硬件中实施。如果套接字匹配,那么,在取得会话数据的过程中,预先得到的数据是并行处理的。一旦取得数据,则不同协议的所有会话检查都是在单个时钟周期执行的。因此,本发明的硬件执行过程极大加快了分组过滤处理。
会话识别
现在对会话识别处理进行更为详细的描述。图6显示的是一个描述了对关联于输入分组的会话进行判定的散列技术的图示。每个会话都对应于一个唯一的套接字。会话是通过对接收分组套接字以及会话数据库中保存的关联于先前打开会话的套接字进行比较来识别的。为了加速会话识别,在这里使用了一个散列表,其中保存了指向会话数据库中会话记录的散列指针,并且散列表允许快速查找对应于接收套接字的会话。
新的会话保存在会话数据库中,并且由动态过滤器或CPU来计算套接字上的一个散列。散列指针则保存在散列表60(图2)中由散列结果指示的一个位置。如果将一个以上的会话保存在这个位置,则将所述会话添加到一个链表之中。应该指出的是,散列表中的每个条目最初都会初始化为NULL。
一旦接收到分组,则将套接字100输入散列计算器102,该计算器的功能是产生和输出一个散列结果104。散列结果被用作散列表106的索引,其中散列表106包含多个条目108,每个条目都包含一个散列指针。散列指针指向会话数据库中会话110的一个链表。会话数据库中的每个会话都包含了先前指针114以及下一个指针112,由此实现了一个双向链表。如果偶然发现出现了套接字,那么必须检查链表中的各个会话是否匹配于接收分组的套接字。
优选地,散列函数将被选择,以便产生一个尽可能横跨散列表的散列结果。散列函数可以是任何适当的函数,例如XOR函数或CRC。在一个实施例中,根据以下等式而在计算散列结果的过程中使用了一个随机矢量,由此可以借助一个简单的XOR散列函数来改善性能。
SOCK 1 SOCK 2 SOCK 3 . . . SOCK N 1 × N ⊗ RV 1 RV 2 RV 3 . . . RV N RV 2 RV 3 RV 4 . . . RV N - 1 RV 3 RV 4 RV 5 . . . RV N - 2 . . . . . . . . . . . . . . . RV R RV R + 1 RV R + 2 . . . RV R + N - 1 N × R = OUT 1 OUT 2 OUT 3 . . . OUT R 1 × R - - - ( 1 )
其中操作符
Figure C0280950500232
是如下定义的:
OUT i = ( RV i 1 AND SOCK 1 ) ⊕ ( RV i 2 AND SOCK 2 ) ⊕ . . . ⊕ ( RV iN AND SOCK N ) - - - ( 2 )
并且
OUTi表示输出矩阵的第i个字节;
SOCKk表示输入矩阵的第k个字节;
RVik表示随机矢量矩阵的第i,k字节;
Figure C0280950500234
表示XOR函数;
由此通过使用随机矢量以及输入套接字数据来产生输入套接字数据。
图7显示的是对本发明的会话识别处理的散列方法进行描述的流程图。第一个步骤是使用上述方式来从接收分组的套接字中计算一个散列值(步骤120)。R字节的散列结果用作进入散列表的索引,以便检索对应于所述套接字的散列指针(步骤122)。如果散列指针指向NULL(步骤124),则不存在会话,并且将会把“未发现会话”返回给主过滤器处理(步骤126)。
如果散列指针不是NULL,则从会话数据库中读取会话套接字(步骤128),并且将其与接收分组中的套接字进行比较(步骤130)。如果套接字匹配(步骤132),则发现一个会话匹配(步骤134)并将其报告给主过滤器处理。如果套接字不匹配(步骤132),则从链表中读取下一个散列指针(步骤136),并且本方法将会从步骤124开始重复进行,直到最后一个散列指针指向NULL或是发现一个匹配。
应该注意的是,即使链表中只保存了一个会话,也总是对套接字执行完整比较。并且还应该注意的是,本发明的范围并不局限于由动态过滤器或CPU中的哪一个实体来更新和维护链接表。散列表的深度可以是任何理想值。然而,所述深度通常是根据同时追踪的会话数目来设定的。优选地,散列条目的数目是会话数目的二或四倍,这是因为,由于进行完整套接字比较的费时特性,因此,具有很多副本将会变得不甚理想。
根据本发明,会话识别模块包含了使用部分套接字数据来搜索会话的能力。名为“漏洞”的部分套接字数据包含了缺少一个或多个信息项的任何套接字,也就是构成一个套接字的五个成分(源和目的地IP地址、源和目的地端口以及协议)中的一个或多个成分的任何组合。漏洞则是指在防火墙/动态过滤器中产生而允许后续分组穿过的一个开口,即使那些后续分组并未通过静态过滤器规则库。与一个漏洞相关联的分组可以具有其关联套接字中遗漏的零个或更多参数。具有一个或多个遗漏参数的套接字放置在一个漏洞表中,并且将会执行一个漏洞搜索。
漏洞搜索方法是一种辅助搜索方法,所述方法是在响应于使用结合图7所述的完整套接字匹配方法并未发现会话匹配的情况下,由会话识别模块来执行的。这些漏洞并不合乎需要,一旦建立了漏洞,那么,在接收到一个产生部分套接字匹配的第一分组时,CPU和动态过滤器将会尝试对其进行“填充”。
漏洞表62(图2)用于保存那些通常由处理层5和更高层软件提供的漏洞信息。在套接字包含5个数据项的情况下,漏洞表包含32个记录(0到31)。举例来说,在处理FTP分组、IP电话相关分组及其他分组的过程中,一开始,来自套接字的一个或多个参数并不是已知的。在这些情况下,CPU将会打开一个漏洞,在漏洞表中,所述漏洞处于一个与遗漏参数相对应的位置。
应该注意的是,由于漏洞表中的条目31(也就是全1)并未描述遗漏参数,因此未曾使用这个条目。漏洞表中的各个条目都具有表1列举的下列字段。
表1:漏洞表的字段
Figure C0280950500251
在这里所提供的实施例中,将漏洞类型定义成了与五种可能的遗漏参数相对应的五个比特:比特4-协议;比特3-远程端口;比特2-本地端口;比特1-远程IP;比特0-本地IP。因此,漏洞类型‘11011’对应于缺少本地端口参数。
为了产生散列值,上述散列法需要完整的套接字信息。如果接收分组是一个应该‘填充’漏洞的分组,那么,使用散列法(图7)的会话识别将会导致未曾发现匹配并且无法填充漏洞。无法发现‘漏洞’是因为散列都是基于接收分组的完整套接字来计算的,而散列表中指向漏洞会话的条目则是基于部分预知的套接字来计算的。
漏洞表是通过保存那些由CPU写入并由动态过滤器读取的漏洞信息来解决这个问题的。漏洞是一个由外部处理打开的会话,所述处理在应用层上执行动态过滤。应该注意的是,由于CPU是最先检测漏洞存在的实体,因此,CPU适于在一开始对部分散列值进行计算,并且将其保存在散列表中。由于可以从所述接收分组中确定遗漏参数,因此,部分套接字与数据库的套接字相匹配的第一分组将会关闭漏洞。漏洞表包含32个条目,每一个条目都与一个或多个遗漏参数的唯一组合相对应,其中,每个‘比特’都代表了构成套接字的五个参数中的一个参数。
每个条目都保存了一个指示特定类型的漏洞数目的字段以及指向其他条目的下一个或先前指针。因此,下一个指针和先前指针构成了漏洞的一个链表。第一有效条目(first_valid_entry)寄存器中保存了一个指向列表中的第一条目的指针。在这个寄存器中,NULL表示的是会话数据库中并未保存漏洞。最后一个条目保存的是一个用于表示列表末端的NULL指针。
图8显示的是对本发明的会话识别处理的漏洞搜索方法进行描述的流程图。第一个步骤是使用第一有效条目寄存器的内容来读取第一漏洞条目(步骤140)。如果寄存器中的漏洞指针指向NULL(步骤142),则没有发现漏洞并且将会报告这个结果(步骤144),而本方法则会返回。
如果寄存器中的漏洞指针并未指向NULL(步骤142),则根据漏洞码来计算一个散列值(步骤146)。漏洞码是漏洞表中由漏洞指针指向的条目所指示的遗漏参数的五比特表示。而所述遗漏参数不是在散列计算中未曾使用,就是由0或1中的某个值所取代。
然后,如上所述使用生成的散列结果,以便将散列结果用作索引而从散列表60(图2)中检索散列指针(步骤148)。如果散列指针指向NULL(步骤150),则从漏洞链表中读取下一个漏洞指针(步骤164),本方法则继续进行步骤142。如果散列指针并未指向NULL(步骤150),则从会话数据库中与所述散列指针相对应的条目中读取部分套接字信息(步骤152)。
从会话数据库条目中读取的部分套接字与分组中接收的部分套接字进行比较(步骤154)。如果部分套接字匹配(步骤156),则宣告发现了一个会话匹配(步骤158)。如果部分套接字不匹配,则从链表中读取下一个散列指针(步骤160),如果散列指针并未指向NULL(步骤162),则本发明继续进行步骤152,并且检查下一个会话中的部分套接字。否则,如果下一个散列指针指向NULL(步骤162),则从漏洞链表中读取下一个漏洞指针(步骤164),本方法则继续进行步骤142。
一旦使用漏洞搜索方法识别了一个会话,则像完整套接字搜索那样来进行分组和会话数据处理。因此,根据本发明,可以使用完整或部分套接字信息来进行会话识别。由于信息是从后续接收的分组中提取的,因此将会填充任何打开的漏洞。
会话数据库
现在对会话数据库64(图2)进行更为详细的描述。如上文所述,会话数据库的功能是为多个会话保存会话相关数据。会话数据库的大小可以根据执行过程以及系统需求而变化。以下在表2中列举了构成数据库各个记录的字段。
表2:会话数据库的记录字段
Figure C0280950500281
第一组字段1-5表示的是用于识别会话的套接字。编号为4和5的字段适于保存依赖于协议的不同数据。举例来说,本地和远程端口数据是为TCP和UDP分组保存的,ICMP序列号、类型和代码数据则是为ICMP回声会话相关分组保存的。
字段6和7保存的是上述散列链表内部的下一个和先前散列指针。散列链表在分组的会话识别过程中得到使用。字段8和9保存的是LRU链表中按照陈旧程度来对会话进行排序的下一个和先前LRU指针。下文将对LRU链表操作进行更详细的描述。字段10保存的是子女数目。这个字段是在与会话相关联的应用需要开启附加会话的情况中使用的。打开的各个会话(也就是子女会话)都会递增所述子女数目。
动态过滤器还包括一个用于传送往返于CPU的状态相关信息的会话状态寄存器。所述会话状态包括表3所示的多个比特。
表3:会话状态比特
Figure C0280950500301
需要注意的是,以下标志由CPU设置并由动态过滤器使用:UCM、FRE、HLD、PSV、NOC、SBP、CSH。
字段12到22被用于网络地址转换。字段23到28以及31到32都是TCP相关字段,它们在处理和追踪TCP分组的过程中得到使用。字段29保存的是所有协议类型的连接状态。连接状态参数是一个代表了当前连接状态的数值。不同的值被用于不同的协议。作为说明性实例,以下在表4中列举了用于若干协议的连接状态。
表4:连接状态
Figure C0280950500311
字段30保存的是用于老化会话的时戳。根据特定协议,时间是在16个比特中加以表示的,并且作为时间差或增量(delta)而被保存。CPU周期性地指示会话管理模块对会话进行老化,由此关闭那些已经极度老化的会话。
字段33-36被用于保存那些指向与该会话相关联的会话的指针。不同的族信息保存在数据库中,其中包括兄弟、子女和双亲信息。
会话追踪实例:打开/关闭TCP会话
如上文所述,主过滤器处理是这样一种实体,一旦识别出会话并从会话数据库中读取了关联于接收分组的会话数据,那么它就会执行规则检查。根据本发明的一种硬件实施,为所要检查的各个协议动态提供了一个独立电路,其中TCP是最复杂的。软件实施则使用应用码来执行动态规则检查。
举例来说,对于打开和关闭TCP会话的处理而言,需要使用硬件电路而为TCP协议执行的处理是以状态转移图的形式来描述的。应该指出,电子领域的技术人员可以使用这里公开的状态转移图来构造一个电路,以便执行所述状态转移图中显示的相同功能。
图9显示的是一个描述TCP会话的分组流的图示。这里描述的分组流在通信领域是众所周知的,它是作为理解以下关于3次和4次握手的状态转移图的辅助手段来显示的。在两台主机A和B之间,通过借助于包含SYN标记的分组来请求同步序列号,由此打开TCP会话。一旦打开,则如ACK分组所示,数据是在两个主机之间流动的。而TCP会话是通过双方发送包含有FIN标记的分组来关闭的,所述标记指示的是发送者不再具有要进行发送的数据。FIN分组的确认将会关闭会话。
应该注意的是,在握手过程中,从接收分组中提取的应答数目是相对于会话数据库中保存的预期应答数目来验证的。在打开会话追踪的过程中,如下文所述,将会对所述序列和应答号处于窗口内部加以验证。如果RST分组(就是在TCP报头中声明了RESET标记的分组)到达,则关闭所述会话。
图10显示的是对打开TCP会话时的3次握手进行描述的状态转移图。可能的输入分组包括RX/TX SYN、RX/TX SYN ACK或RX/TX ACK分组。通常标注为170的状态转移图包含了多个有效(也就是合法)状态和相关转移。应该注意的是,TX指示的是从LAN到WAN的方向,而RX指示的则是从WAN到LAN的方向。
一旦检测到打开了一个TCP会话,则进  NULL状态172。在这个状态中,将会在会话数据库中打开一个新会话,并且将会产生以下字段以及将所述字段保存在会话记录中:接收序列号、时戳、指示NULL状态的连接状态、最大窗口尺度、最大序列号和预期应答号。下一个状态则取决于接收分组的是LAN或WAN中的哪一方。如果接收到RX SYN分组,则下一个状态包括WAN Requested TCPConnection状态176。否则将会进LAN Requested TCPConnection状态184。在这个状态中,如在所有其他状态中执行的那样,从接收分组中得到的与所识别会话相对应的数据也是从会话数据库中读取的。此外还会为一个或多个字段检查合法性,更新一个或多个字段,以及将会话数据回写到会话数据库中。
状态176中执行的主要检查包括检查应答号是否与预期应答号相互关联。对于最后一部分握手而言,连接状态、LAN初始序列号、LAN最大序列号、LAN窗口尺度以及预期LAN应答都会更新。RX SYN和TX SYN的接收都是合法的,这种接收不会导致状态改变。
TX SYN ACK的接收将把会话移入LAN Accepted TCPConnection状态178,同时RX SYN ACK的接收把会话移入WANacceDts TCP Connection状态186。RX SYN、TX SYN、RX SYNACK以及TX SYN是合法的,它们不会导致状态改变。在这两种状态中将会执行相似的会话参数检查。一旦结束了检查和更新,则把那些经过更新的参数回写到会话数据库中。
处于状态178时的RX ACK接收或者处于状态186时的TXACK接收将把会话移入Open TCP Connection状态180。RX SYNACK、TX SYN、RX ACK或TX ACK的接收是合法的,它们不会引起状态上的改变。这代表了打开的TCP会话状态,由此会检查为这个会话接收的各个后续TCP分组的合法性,例如对序列号和应答进行追踪。对LAN或WAN而言,最大序列号字段同样会根据分组方向而被更新。
由此将会追踪用于打开TCP会话的三次握手的各个步骤,并且将会删除那些尝试进行非法转移的分组。这样一来,只有那些完全符合TCP协议的分组才会允许通过。
图11A和11B显示的是对关闭TCP会话时发生的4次握手进行描述的状态转移图。在这个图示中,通常标注为190的可能输入包括RX/TX ACK、RX/TX FIN ACK、RX/TX FIN ACK(FIN)或RX/TX ACK(FIN)。应该注意的是,TX/RX ACK描述的是常规应答分组,而ACK(FIN)描述的是FIN分组的应答。
在这个图示中,开始状态是Open Connection状态192。RXACK或TX ACK分组的接收不会引起状态方面的改变。TX FINACK的接收将会导致会话移至LAN Sent FIN状态194,而RX FINACK的接收则会导致会话移至WAN Sent FIN状态204。在处于状态194时进行的RX FIN ACK接收或是处于状态204时TX FINACK的接收都会导致会话移至WAN Sent FIN/LAN Sent FIN状态202。而RX/TX FIN或RX/TX ACK分组的接收不会导致状态改变。
在处于状态194时,RX ACK(FIN)分组的接收会使会话移至WAN ACKed LAN FIN状态196。而RX/TX ACK、RX ACK(FIN)或TX FIN ACK分组的接收不会导致状态改变。在处于状态204时,TX ACK(FIN)分组的接收会使会话移至LAN ACKedLAN FIN状态206。而RX/TX ACK、TX ACK(FIN)或RX FINACK分组的接收不会导致状态改变。
在处于状态196时,RX FIN ACK或RX FIN ACK(FIN)分组的接收会使会话移至WAN ACKed LAN FIN/WAN Sent FIN状态198。而RX/TX ACK、RX ACK(FIN)、RX FIN ACK(FIN)以及RX/TX FIN分组不会导致状态改变。在处于状态206时,TX FINACK或TX FIN ACK(FIN)分组的接收会使会话移至WANACKed LAN FIN/WAN Sent FIN状态210。RX/TX ACK、TX ACK(FIN)、TX FIN ACK(FIN)以及RX/TX FIN分组不会导致状态改变。
在处于状态194时,RX FIN ACK(FIN)分组的接收会使会话直接移动到WAN ACKed LAN FIN/WAN Sent FIN状态198。在处于状态204时,TX FIN ACK(FIN)分组的接收会使会话直接移动到LAN ACKed WAN FIN/LAN Sent FIN状态210。
在处于状态198时,TX ACK(FIN)或TX FIN ACK(FIN)分组的接收以及在处于状态210时RX ACK(FIN)或RX FIN ACK(FIN)分组的接收会使会话移至Close TCP By FIN状态200。而RX/TX FIN、RX/TX ACK、TX FIN以及RX/TX ACK(FIN)分组不会导致状态方面的改变。
因此,对用于关闭TCP会话的4次握手的各个步骤都进行动态追踪,并且滤除那些尝试进行非法转移的分组。这样,只有那些完全符合TCP协议的分组才会允许通过。
本发明还包含了用于其他协议的会话追踪。图12显示的是描述ARP会话分组流的图示。在这里假设存在两个主机A和B,并且ARP会话追踪包括在接收到ARP请求分组的时候打开一个会话。具有相同套接字的后续ARP请求/应答分组是允许的(其中包括重传)。由于打开的ARP会话不应该在一段延长的持续时间中保持打开,因此最好在ARP应答之后指定短的增量超时。ARP应答将会关闭所述会话。
图13显示的是一个描述ICMP回声会话分组流的图示。假定存在两个主机A和B,并且ICMP回声请求打开了一个ICMP回声会话。一旦打开会话,则只有一个具有相同套接字的ICMP回声应答是允许的。由于回声重传使用了不同的序列ID号,也就是不同的套接字,因此不允许进行重传。而ICMP回声应答将会关闭所述会话。
图14显示的是一个描述ICMP消息/差错会话分组流的图示。ICMP消息/差错分组包括IP报头字段、ICMP报头、IP报头以及64比特的TCP报头。除了64比特的TCP报头之外,ICMP消息/差错还封装了初始分组的IP报头。ICMP消息/差错分组必须得到安全策略规则数据库(也就是外部静态过滤器)的许可,否则它会由主过滤器处理自动滤除。动态过滤器仅仅处理那些经过封装的部分分组(也就是根据封装套接字来识别的会话)。如果静态过滤器允许并且在会话识别过程中发现了会话,那么(1)ICMP消息分组将会得到许可并且仅仅修改会话的时戳字段,(2)ICMP错误分组将会得到许可并且连接状态将会变成‘由LAN/WAN ICMP ERROR来关闭’,属于这个会话的后续分组将会因为这个错误而被滤除。外部配置(例如经由CPU)确定将哪种ICMP(ICMP TYPE/CODE)当作消息以及将哪种ICMP当作是错误。具有安全问题的ICMP分组应该根据安全策略规则数据库而被预先滤除。
序列/应答号追踪
根据本发明,主过滤器处理适于追踪TCP/IP会话序列号。图15显示的是对主过滤器处理器在规则检查中执行的序列号窗口追踪进行描述的图示。在处于Open TCP Connection状态180时,序列号追踪是由主过滤器处理使用TCP报头中的缓存器大小字段来执行的。假定X轴代表LAN序列号,如垂直虚线所示,以字节为单位的最大WAN窗口尺度240将被减去,并且添加到最大LAN序列号中。在X轴的左端指示了初始LAN序列号。并且指示了所允许的序列范围242。
对各个分组而言,其下限是通过初始LAN序列号或最大LAN序列中较高的一个减去最大WAN窗口尺度来计算的。上限则是最大LAN序列号与最大WAN窗口尺度之和。如果发送分组序列号落在下限和上限之间,则允许所述分组。否则将会滤除所述分组。那些序列号处于许可序列范围之外的分组将被滤除。应该注意的是,接收分组序列号是结合了作为以上描述中的LAN与WAN实体对换的差别而以相同方式来追踪的。
图16显示的是对主过滤器处理器在规则检查中执行的应答序列号窗口追踪进行描述的图示。在Open TCP Connection状态180中,应答号追踪是由主过滤器处理使用TCP报头中的缓存器大小字段来执行的。假定X轴代表WAN序列号,如垂直虚线所示,以字节为单位的最大LAN窗口尺度250将被减去,并且添加到最大WAN序列号中。在X轴的左端指示了初始LAN序列号。并且指示了所允许的序列范围252。为应答号进行的规则检查类似于序列号规则检查,其中所述序列号规则检查依赖于分组是由WAN还是LAN来进行发送或接收而得到描述的。
需要注意的是,根据本发明,主过滤器处理模块进行操作来动态检查那些与其它协议相关联的规则,其中包括而不局限于UDP、包含回声请求/应答的ICMP、控制与差错消息、ARP、ICMP分段以及IP。
会话管理模块
根据本发明,会话管理模块进行操作来维护链表,以便以最近最少使用的顺序来保存会话。会话管理模块执行了若干个涉及会话数据库维护与控制的功能。会话管理模块的功能是在从CPU接收到命令的时候检查会话数据库中所保存的会话的时戳有效性(也就是老化)。在接收到执行老化的命令的时候,对会话数据库中各个记录的时戳字段进行检查,并且关闭那些时限已经到期的记录。老化在会话上执行,以便冲洗那些变得陈旧以及因为某种原因而没有正常关闭的会话。举例来说,如果会话对应于一个违反规则的分组,那么该会话有可能已经极度老化。
会话管理模块的功能是基于请求来向CPU或主过滤器处理54(图2)提供一个并未使用的(也就是空的和可用的)会话。在操作中,CPU/主过滤器处理请求一个新会话,会话管理模块搜索一个会话,并且将索引分别返回给CPU/主过滤器处理。同样,会话管理模块还在需要的时候适度断连一个正在使用的会话,其中所述需要的时候即为老化、CPU发出请求、主过滤器处理发出请求等等的时候。会话管理模块还打开新的会话,其中将会更新散列表中的LRU指针、散列指针以及会话数据库。
图17显示的是用于对会话应用进行追踪的最近最少使用的(LRU)链表结构。在每次识别出会话(例如被访问)以及主过滤器处理允许相应分组的时候,所述会话都位于LRU链表尾部。通常标注为220的双向链表包括多个会话226,其中每个会话226都具有下一个指针222以及先前指针224。tail_LRU_index_reg寄存器228的内容针对的是处于LRU链表尾部的会话。这个寄存器所针对的会话代表了最近最多使用的会话。head_LRU_index_reg寄存器227的内容针对的则是处于LRU链表开头的会话。
如下文更为详细描述的那样,会话管理模块还在结束会话的时候更新和维护族关系。
如果已经填满了会话数据库,则使用LRU链表来确定添加新会话时删除了哪个会话。在这种情况下将会关闭最近最少使用的会话,所述记录则被用于保存新的会话。
图18显示的是一个对基于关联于输入分组的会话识别的LRU链表更新方法进行描述的流程图。所述更新方法是在每次访问一个匹配会话并且允许相应分组的时候执行的。特别地,参考图17,对标记了先前会话、匹配会话以及下一个会话的会话而言,匹配会话从它在列表中的位置移动到尾部,以便成为最近最多使用的会话。匹配会话是通过以下操作来删除的(1)将先前会话的下一个LRU指针设定为匹配会话的下一个LRU指针,以及(2)将下一个会话的先前LRU指针设定为匹配会话的先前LRU指针(步骤230)。
然后通过以下操作来进行匹配会话:(1)将匹配会话的下一个LRU指针设定为NULL,(2)将匹配会话的先前LRU指针设定为tail_LRU_index_reg寄存器的内容,以及(3)将tail_LRU_index_reg寄存器设定为匹配会话的索引(步骤232)。
图19显示的是对本发明的会话管理模块处理进行描述的流程图。会话管理处理是在空闲步骤342中开始的,它根据事件移动到下一个步骤。在从CPU或主过滤器处理器中获取了“ get unused”指令的情况下,将会取得最近最少使用的会话状态(步骤344)。如果正在使用会话(步骤350),则关闭所述会话(步骤348)。如果并未使用会话,则将head_LRU_index_reg设定为最近最少使用会话的下一个LRU指针,并且将下一个(先前LRU指针)指针设定为NULL(步骤352)。然后,将所删除的会话的下一个和先前LRU指针设定为NULL,由此从LRU链表中删除最近最少使用的会话(步骤354)。变量unused_ses将被设定给正好断连的会话,由此将一个向CPU或主过滤器处理发出通知的标记设定为‘1’(步骤356)。然后所述处理返回到空闲(步骤358)。
来自CPU的‘检查超时’命令使得会话管理器开始检查会话超时。索引计数器将会递增(步骤362)并会取出会话状态(也就是索引计数器)(步骤364)。如果当前正在使用会话(步骤366),则取出会话时戳(步骤372)。如果时戳大于实际时间(也就是说,会话已经极度老化)(步骤374),则关闭所述会话(步骤376)。
如果并未使用会话或者会话并未老化,则检查索引计数器是否小于上一个索引(步骤368)。如果小于,则递增所述索引计数器(步骤370)并且所述方法继续进行步骤364。如果并不小于,则完成所述超时检查,并且通知主过滤器处理(步骤360),所述方法则返回到空闲(步骤358)。
图21显示的是对本发明的会话管理模块所执行的打开会话处理进行描述的流程图。在打开一个会话时,所述会话将会位于LRU链表尾部(步骤380)。并且所述会话还置于散列链表中的恰当位置(步骤382)。然后,该方法将会返回到空闲状态(步骤384)。
图21显示的是对本发明的会话管理模块所执行的关闭会话处理进行描述的流程图。如果如HLD标记所指示的那样,所述会话可以关闭(步骤390),则会在不修改LRU指针的情况下清除所述会话(步骤392)。然后,所述方法将会返回到空闲状态(步骤404)。
如果无法关闭会话(步骤390),并且所述关闭请求是由于超时检查(步骤394),则不关闭所述会话(步骤396)并且所述方法返回到空闲状态(步骤404)。如果关闭请求并不起因于超时检查,则读取最近最少使用的会话所指示的下一个会话(步骤398)。如果无法关闭这个会话(步骤400),则所述方法继续进行步骤398,并且所述处理将会重复进行,直到发现一个可以关闭的会话。如果发现一个可以关闭的会话(步骤400),则将所述会话配置为LRU(步骤401)。然后,除了LRU指针之外,所述会话将被清除(步骤402),而所述方法则返回到空闲状态(步骤404)。
如上所述,会话管理模块还在会话数据库中保持了四个族关系指针,其中会话数据库定义了会话的族关系。一旦关闭了会话,则更新族关系指针。图22显示的是对用于一个会话的族指针进行描述的图示。每个会话都可以具有一个指向双亲会话的双亲指针,一个从其双亲指向其第一个子女的第一子女指针,以及在具有相同双亲的会话之间执行双向链表的下一个/先前兄弟指针。
会话数据库中的字段33-36被用于保存族关系指针信息。族关系自身是由CPU来确定的。如果会话管理器关闭一个会话(也就是说,由于超时检查或者为新会话让出空间),那么会话管理器将会执行操作来更新族指针。
根据本发明,族指针被用于在属于相同应用的会话之间进行逻辑上的连接。举例来说,FTP服务打开两个不同的TCP/IP会话:端口21的控制会话以及端口20的数据会话。FTP控制是双亲会话,而FTP数据则是子会话。通常,在结合子女字段(10)的数目来使用4个族指针的情况下,任何族关系都是可行的,也就是说,任何嵌套的双亲/子女应用都是得到支持的。在借助LRU/超时机制来关闭双亲会话的时候,会话管理器使用族指针来关闭那些归属于所述族的所有后续创建的会话。
有时,并未所有连接都是同时使用的。举例来说,在一段时间,所述应用有可能仅仅使用子会话来进行连接。为了避免LRU/超时机制关闭双亲控制会话,CPU会在双亲会话中设定HLD比特。会话管理器不会关闭一个具有打开的子会话(也就是说,子会话数目>0)并且已经声明了HLD比特的会话。在关闭其中一个会话的时候,会话管理器将会进行操作来保持所有族指针,也就是说,关闭所有子女会话(如果存在的话),更新族兄弟会话双向链表(如果存在的话),递减双亲会话的子会话数(如果存在的话),以及更新双亲/第一子女双向链表。
图23显示的是对多个会话之间的实例性族关系进行描述的图示。在这个实例中,双亲会话涉及一个子女会话,所述子女会话转而涉及两个兄弟会话。第一子女会话也是一个具有子女会话的双亲会话,所述子女会话是上级双亲会话的第三代(grandchild)。
计算机实施例
在另一个实施例中,一台计算机进行操作来执行那些适于实施本发明的动态分组过滤器方法的软件。图24显示的是一个对实例性计算机处理系统进行描述的框图,所述系统适于作为执行结合了本发明的会话追踪方法的动态分组过滤的平台。所述系统可以引入到通信设备内部,例如PDA、蜂窝电话、电缆调制解调器、宽带调制解调器、膝上计算机、PC、网络传输或交换器材、网络设备或任何其它有线或无线通信设备。该设备可以使用硬件和/或软件的任何组合来构造。
通常标记为260的计算机系统包括一个处理器264,它可以作为微型控制器、微处理器、微型计算机、ASIC核心、FPGA核心、中央处理器(CPU)或数字信号处理器(DSP)来实现。该系统还包括静态只读存储器(ROM)266和动态主存储器(例如RAM)270,所有这些设备都与处理器进行通信。此外,处理器还经由总线262而与多个外围设备进行通信,这些设备也包含在计算机系统中。
所述设备经由WAN接口272而与因特网这类WAN 280相连。所述接口包括连接到一个或多个WAN通信信道的有线和/或无线接口。通信I/O处理272在WAN接口与处理器之间传递数据。根据执行过程,计算机系统还经由网络接口卡(NIC)271而与LAN 273相连。  在操作中,计算机系统进行操作,以便如上所述对从WAN到LAN的入站分组以及从LAN到WAN的出站分组进行动态过滤。
可选用户接口276对用户输入做出响应,并且提供反馈和其他状态信息。主机接口278把主机计算设备282连接到所述系统。该主机适于配置、控制和维护系统操作。系统还包含了用于保存应用程序和数据的磁存储器268。所述系统包括计算机可读存储介质,所述计算机可读存储介质可以包括任何适当的存储装置,其中包括而非局限于磁存储器、光存储器、CD-ROM驱动器、ZIP驱动器、DVD驱动器、DAT磁带、半导体易失或非易失存储器、生物存储设备或其他任何记忆存储设备。
那些经过更新来执行本发明的动态过滤器功能的软件适于驻留在计算机可读介质中,例如磁盘驱动器单元内部的磁盘。作为选择,计算机可读介质可以包括软盘、闪速存储卡、EPROM、EEROM、基于EEPROM的存储器、磁泡存储器、ROM存储器等等。所述软件适于执行本发明的动态分组过滤方法,它也可以部分或全部位于计算机系统的处理器内部的静态或动态主存储器或固件中(也就是微型控制器、微处理器、微型计算机、DSP等等内部存储器的内部)。
在替换实施例中,本发明的方法适于在集成电路、现场可编程门阵列(FPGA)、芯片组或专用集成电路(ASIC)、无线实施及其他通信系统产品中实施本发明。
附加权利要求意欲覆盖所有这些落入本发明的实质和范围的特征和优点。由于本领域技术人员很容易想到众多修改和变化,因此本发明并不意欲局限于这里所描述的数量有限的实施例。因此,应该了解的是,可以采用的所有的恰当变化、修改和等价物都落入本发明的实质和范围以内。

Claims (42)

1.一种过滤输入分组流的方法,所述方法包括以下步骤:
建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应;
根据接收分组的相关套接字来识别一个与之相关的会话;
如果没有识别出会话,则:
执行静态过滤器检查;
如果所述静态过滤器检查的结果允许所述接收分组,则检查所述接收分组是否是会话开启者;并且
如果所述接收分组是会话开启者,则打开新会话;
根据多个预定规则来处理对应于所述接收分组的会话数据,以便产生处理结果;以及
根据处理结果来判定是否允许或拒绝所述接收分组。
2.根据权利要求1的方法,还包括根据所述处理结果来更新所述会话数据库的内容的步骤。
3.根据权利要求1的方法,其中所述判定步骤包括:如果所述接收分组并未违反所述多个预定规则中的任何一个规则,则允许所述接收分组。
4.根据权利要求1的方法,其中所述判定步骤包括:如果所述接收分组违反了所述多个预定规则中的一个或多个规则,则拒绝所述接收分组。
5.根据权利要求1的方法,还包括从所述会话数据库中删除未使用会话的步骤。
6.根据权利要求1的方法,还包括建立和维护一个最近最少使用LRU的双向链表的步骤,所述链表具有一个头部和一个尾部,其中最近最多使用的会话保存在尾部,最近最少使用的会话则保存在头部。
7.根据权利要求6的方法,其中,在所述LRU列表充满的情况下,处于头部的会话被删除,并且向尾部添加一个新的会话。
8.根据权利要求1的方法,还包括删除那些相关时戳已经超出预定阈值的会话的步骤。
9.根据权利要求1的方法,还包括建立一个漏洞表的步骤,所述漏洞表包含多个记录,其中每一个记录都表示不完整的套接字信息的一个唯一子集。
10.根据权利要求1的方法,其中所述打开新会话的步骤包括以下步骤:
将涉及所述新会话的会话数据保存在所述会话数据库中;
基于与所述新会话相关联的套接字来计算一个散列值;以及
将所述散列值保存在散列表中。
11.根据权利要求1的方法,其中所述识别会话的步骤包括以下步骤:
基于与要识别的会话相关的套接字来计算一个散列值;
使用散列结果作为索引而在散列表中查找一个散列指针;
根据所述散列指针而从所述会话数据库中检索套接字数据;以及
如果检索得到的套接字匹配于与接收会话相关联的套接字,则识别所述会话。
12.根据权利要求1的方法,其中所述处理会话数据的步骤包括:如果会话包括一个传输控制协议打开会话,则对传输控制协议打开握手状态进行追踪。
13.根据权利要求1的方法,其中所述处理会话数据的步骤包括:如果会话包括一个传输控制协议关闭会话,则对传输控制协议关闭握手状态进行追踪。
14.根据权利要求1的方法,其中所述处理会话数据的步骤包括:如果所述会话包含一个传输控制协议会话,则依照一个窗口来对所述会话的序列和应答进行追踪。
15.一种监视通信会话状态的方法,所述方法包括步骤:
建立一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应;
根据对关联于一个接收分组的套接字所进行的第一散列计算来识别一个会话;
根据对关联于所述接收分组的部分套接字所进行的第二散列计算来识别一个漏洞会话;
从所述会话数据库中读取会话数据,所述会话数据与所识别的会话或所识别的漏洞会话相关联;
追踪所述会话的连接状态并且依照多个规则来检查所述状态,由此确定是允许还是拒绝所述接收分组;以及
把经过更新的会话数据回写到所述会话数据库中。
16.根据权利要求15的方法,其中所述确定允许或拒绝的步骤包括:如果所述接收分组并未违反所述多个规则中的任何一个,则允许所述接收分组。
17.根据权利要求15的方法,其中所述确定允许或拒绝的步骤包括:如果所述接收分组违反了所述多个规则中的一个或多个,则拒绝所述接收分组。
18.根据权利要求15的方法,还包括从所述会话数据库中删除未使用会话的步骤。
19.根据权利要求15的方法,还包括建立和维护一个最近最少使用双向链表的步骤,所述链表具有一个头部和一个尾部,其中最近最多使用的会话保存在尾部,而最近最少使用的会话则保存在头部。
20.根据权利要求15的方法,还包括删除那些关联时戳已经超于预定阈值的会话的步骤。
21.根据权利要求15的方法,还包括打开新会话的步骤,所述打开新会话的步骤包括:
将涉及新会话的会话数据保存在所述会话数据库中;
基于与所述新会话相关联的套接字来计算一个散列值;以及
将所述散列值保存在一个散列表中。
22.根据权利要求15的方法,其中所述识别会话的步骤包括以下步骤:
基于与要识别会话相关联的套接字来计算第一散列值;
使用所述第一散列值作为索引而在一个散列表中查找一个散列指针;
根据所述散列指针而从所述会话数据库中检索套接字数据;以及
如果检索得到的套接字匹配于与所接收会话相关联的套接字,则识别所述会话。
23.根据权利要求15的方法,其中所述识别漏洞会话的步骤包括以下步骤:
基于所述与要识别会话相关联的部分套接字来计算第二散列值;
使用所述第二散列值作为索引而在一个散列表中查找一个散列指针;
根据所述散列指针而从所述会话数据库中检索部分套接字数据;以及
如果检索得到的部分套接字匹配于与接收会话相关联的部分套接字,则识别所述漏洞会话。
24.根据权利要求15的方法,其中所述追踪所述连接状态的步骤包括:如果所述会话包含一个传输控制协议打开会话,则追踪传输控制协议打开握手。
25.根据权利要求15的方法,其中所述追踪所述连接状态的步骤包括:如果所述会话包含一个传输控制协议关闭会话,则追踪传输控制协议关闭握手。
26.根据权利要求15的方法,其中所述追踪所述连接状态的步骤包括:如果所述会话包含一个传输控制协议会话,则按照一个窗口来追踪所述会话的序列和应答。
27.一种用于过滤输入分组流的动态过滤器,包括:
一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应;
一个会话识别模块,它适于在所述会话数据库中搜索一个会话,其中所述会话的相关套接字与接收分组的套接字相匹配;
一个适于维护所述会话数据库的会话管理模块,所述维护包括添加、删除和修改所述会话数据库中的会话,以及
一个主过滤器模块,它可以进行操作,以便追踪对应于接收分组的会话的连接状态,并且依照多个规则来检查所述连接状态,由此确定是允许还是拒绝所述接收分组。
28.根据权利要求27的动态过滤器,其中所述主过滤器模块适于在确定了允许还是拒绝所述接收分组之后,将经过修改的会话数据回写到所述会话数据库中。
29.根据权利要求27的动态过滤器,其中所述主过滤器模块适于在所述接收分组并不违反所述多个规则中的任何一个规则的情况下,允许所述接收分组。
30.根据权利要求27的动态过滤器,其中所述主过滤器模块适于在所述接收分组违反所述多个规则中一个或多个规则的情况下,拒绝所述接收分组。
31.根据权利要求27的动态过滤器,其中所述会话管理模块适于从所述会话数据库中删除未使用的会话。
32.根据权利要求27的动态过滤器,其中所述会话管理模块适于建立和维护一个最近最少使用的双向链表,所述链表具有一个头部和一个尾部,其中最近最多使用的会话保存在尾部,最近最少使用的会话则保存在头部。
33.根据权利要求27的动态过滤器,其中所述会话管理模块适于删除那些相关时戳已经超出一个预定阈值的会话。
34.根据权利要求27的动态过滤器,还包括一个漏洞表,其中包括多个记录,每个记录都对应于不完整套接字信息的一个唯一子集。
35.根据权利要求27的动态过滤器,其中所述会话管理模块包括会话打开装置,所述装置适于:
将涉及新会话的会话数据保存在所述会话数据库中;
基于与所述新会话相关联的套接字来计算一个散列值;以及
将所述散列值保存在一个散列表中。
36.根据权利要求27的动态过滤器,其中所述会话识别模块包括装置,所述装置适于:
基于与要识别会话相关联的套接字来计算一个散列值;
使用散列结果作为索引而在散列表中查询一个散列指针;
根据所述散列指针,而从所述会话数据库中检索套接字数据;以及
如果检索得到的套接字匹配于与接收分组相关联的套接字,则识别所述会话。
37.根据权利要求27的动态过滤器,其中所述主过滤器模块包括用于在会话包含一个TCP打开会话的情况下追踪传输控制协议打开握手的状态的装置。
38.根据权利要求27的动态过滤器,其中所述主过滤器模块包括用于在会话包含一个TCP关闭会话的情况下追踪传输控制协议关闭握手的状态的装置。
39.根据权利要求27的动态过滤器,其中所述主过滤器模块包括用于在所述会话包含一个传输控制协议会话的情况下,依照一个窗口来追踪所述会话的序列和应答的装置。
40.根据权利要求27的动态过滤器,其中所述动态过滤器是在一个现场可编程门阵列中实现的。
41.根据权利要求27的动态过滤器,其中所述动态过滤器是在一个专用集成电路中实现的。
42.一种数字计算设备,包括:
适于将所述设备连接到广域网的通信装置;
由易失和非易失存储器组成的存储装置,其中所述非易失存储器适于保存一个或多个应用程序;
一个处理器,所述处理器耦合到所述存储装置和所述通信装置,以便执行所述一个或多个应用程序;以及
一个用于对输入分组流进行过滤的动态过滤器,其中包括:
一个适于为多个会话保存会话相关数据的会话数据库,其中每个会话都与一个套接字相对应;
一个会话识别模块,它适于在所述会话数据库中搜索相关套接字与接收分组套接字相匹配的会话;
一个适于维护会话数据库的会话管理模块,所述维护包括添加、删除和修改所述会话数据库中的会话,以及
一个主过滤器模块,所述模块进行操作,以便追踪一个与接收分组相对应的会话的连接状态,并且依照多个规则来检查所述连接状态,由此确定是允许还是拒绝所述接收分组。
CNB028095057A 2001-05-09 2002-05-10 分组流过滤方法和过滤器、状态监视方法及数字计算设备 Expired - Fee Related CN100550889C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/851,768 US6816455B2 (en) 2001-05-09 2001-05-09 Dynamic packet filter utilizing session tracking
US09/851,768 2001-05-09

Publications (2)

Publication Number Publication Date
CN1518823A CN1518823A (zh) 2004-08-04
CN100550889C true CN100550889C (zh) 2009-10-14

Family

ID=25311632

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028095057A Expired - Fee Related CN100550889C (zh) 2001-05-09 2002-05-10 分组流过滤方法和过滤器、状态监视方法及数字计算设备

Country Status (12)

Country Link
US (1) US6816455B2 (zh)
EP (1) EP1386464B1 (zh)
JP (1) JP4162210B2 (zh)
KR (1) KR100876935B1 (zh)
CN (1) CN100550889C (zh)
AT (1) ATE381839T1 (zh)
AU (1) AU2002302873A1 (zh)
BR (1) BRPI0209463B1 (zh)
CA (1) CA2445751C (zh)
DE (1) DE60224177T2 (zh)
ES (1) ES2302809T3 (zh)
WO (1) WO2002091700A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939322A (zh) * 2015-12-08 2016-09-14 杭州迪普科技有限公司 报文攻击防护的方法及装置

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430188B1 (en) * 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
US7272571B2 (en) * 2000-07-07 2007-09-18 Mars Incorporated Method and apparatus for effective distribution and delivery of goods ordered on the World-Wide-Web
US7224801B2 (en) * 2000-12-27 2007-05-29 Logitech Europe S.A. Wireless secure device
GB2371186A (en) * 2001-01-11 2002-07-17 Marconi Comm Ltd Checking packets
GB2376854A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co Centralised security service for ISP environment
JP4145032B2 (ja) * 2001-08-07 2008-09-03 富士通株式会社 無線lanシステム
JP2003087693A (ja) * 2001-09-11 2003-03-20 Sony Corp 情報処理装置および方法、並びにプログラム
US7400579B2 (en) * 2001-09-28 2008-07-15 Intel Corporation Method and apparatus for per-call filtering of H.323 packets
US7216161B1 (en) * 2001-11-08 2007-05-08 Cisco Technology, Inc. Maintaining internet access while moving from port to port
US7813346B1 (en) 2001-11-21 2010-10-12 Juniper Networks, Inc. Filter-based forwarding in a network
EP1326393B1 (en) * 2001-12-18 2004-08-11 Stonesoft Corporation Validation of the configuration of a Firewall
US6957281B2 (en) * 2002-01-15 2005-10-18 Intel Corporation Ingress processing optimization via traffic classification and grouping
US7145911B2 (en) * 2002-03-05 2006-12-05 Hewlett-Packard Company Method and system for parallel hash transformation for an address input
US7085271B2 (en) * 2002-03-14 2006-08-01 Hewlett-Packard Development Company, L.P. Method and system for performing flow based hash transformation to generate hash pointers for a network device
US7126948B2 (en) * 2002-03-21 2006-10-24 Hewlett-Packard Development Company, L.P. Method and system for performing a hash transformation to generate a hash pointer for an address input by using rotation
US7216260B2 (en) * 2002-03-27 2007-05-08 International Business Machines Corporation Method, system and program product for dynamically detecting errant data sequences and performing corresponding actions
TW588532B (en) * 2002-03-29 2004-05-21 Realtek Semiconductor Corp Management device and method of NAT/NAPT session
US7299264B2 (en) * 2002-05-07 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for monitoring a connection between a server and a passive client device
US7167980B2 (en) * 2002-05-30 2007-01-23 Intel Corporation Data comparison process
US7363488B2 (en) * 2002-08-07 2008-04-22 Honeywell International Inc. Method and apparatus for prefiltering received messages in a security system
US7600008B1 (en) * 2002-10-16 2009-10-06 Juniper Networks, Inc. Systems and methods for harvesting expired sessions
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100542090B1 (ko) * 2002-12-16 2006-01-11 한국전자통신연구원 무선 통신 시스템에서의 오류 제어 방법, 매체 접속 제어프레임 설계 방법 및 단말기 등록 방법과 기록 매체
US7483972B2 (en) * 2003-01-08 2009-01-27 Cisco Technology, Inc. Network security monitoring system
US20040143751A1 (en) * 2003-01-17 2004-07-22 Cyrus Peikari Protection of embedded processing systems with a configurable, integrated, embedded firewall
US8244853B1 (en) * 2003-03-03 2012-08-14 Vmware, Inc. Method and system for non intrusive application interaction and dependency mapping
US8296452B2 (en) * 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7325002B2 (en) * 2003-04-04 2008-01-29 Juniper Networks, Inc. Detection of network security breaches based on analysis of network record logs
JP4196732B2 (ja) 2003-05-26 2008-12-17 日本電気株式会社 データ転送装置及びプログラム
US7660794B2 (en) * 2003-06-03 2010-02-09 Hewlett-Packard Development Company, L.P. Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database
US7620808B2 (en) * 2003-06-19 2009-11-17 Nokia Corporation Security of a communication system
US6985920B2 (en) * 2003-06-23 2006-01-10 Protego Networks Inc. Method and system for determining intra-session event correlation across network address translation devices
US7913294B1 (en) * 2003-06-24 2011-03-22 Nvidia Corporation Network protocol processing for filtering packets
US7620070B1 (en) 2003-06-24 2009-11-17 Nvidia Corporation Packet processing with re-insertion into network interface circuitry
US7286476B2 (en) * 2003-08-01 2007-10-23 F5 Networks, Inc. Accelerating network performance by striping and parallelization of TCP connections
US7644365B2 (en) * 2003-09-12 2010-01-05 Cisco Technology, Inc. Method and system for displaying network security incidents
US20050079858A1 (en) * 2003-10-09 2005-04-14 Rosen Eric C. Method and apparatus for restricting media communication in a communication network
US20050108434A1 (en) * 2003-11-13 2005-05-19 Witchey Nicholas J. In-band firewall for an embedded system
US7844731B1 (en) * 2003-11-14 2010-11-30 Symantec Corporation Systems and methods for address spacing in a firewall cluster
US7389532B2 (en) * 2003-11-26 2008-06-17 Microsoft Corporation Method for indexing a plurality of policy filters
US7634655B2 (en) * 2004-02-13 2009-12-15 Microsoft Corporation Efficient hash table protection for data transport protocols
US7840763B2 (en) * 2004-03-12 2010-11-23 Sca Technica, Inc. Methods and systems for achieving high assurance computing using low assurance operating systems and processes
US7490350B1 (en) * 2004-03-12 2009-02-10 Sca Technica, Inc. Achieving high assurance connectivity on computing devices and defeating blended hacking attacks
US7650635B2 (en) * 2004-04-07 2010-01-19 Cisco Technology, Inc. Method and apparatus for preventing network attacks by authenticating internet control message protocol packets
JP4524686B2 (ja) * 2004-04-15 2010-08-18 日本電気株式会社 クラスタシステム及びクラスタメンバ並びにプログラム
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US8493972B2 (en) * 2004-05-20 2013-07-23 Ca, Inc. Systems and methods for detecting denial of service attacks
KR100619031B1 (ko) * 2004-06-11 2006-08-31 삼성전자주식회사 부가 데이터의 인터랙티브한 이용방법 및 장치, 그에 따른수신장치
US8155117B2 (en) * 2004-06-29 2012-04-10 Qualcomm Incorporated Filtering and routing of fragmented datagrams in a data network
US8582567B2 (en) * 2005-08-09 2013-11-12 Avaya Inc. System and method for providing network level and nodal level vulnerability protection in VoIP networks
US8862718B2 (en) * 2006-07-12 2014-10-14 Avaya Inc. System, method and apparatus for troubleshooting an IP network
US7933985B2 (en) * 2004-08-13 2011-04-26 Sipera Systems, Inc. System and method for detecting and preventing denial of service attacks in a communications system
US20090094671A1 (en) * 2004-08-13 2009-04-09 Sipera Systems, Inc. System, Method and Apparatus for Providing Security in an IP-Based End User Device
US7865944B1 (en) * 2004-09-10 2011-01-04 Juniper Networks, Inc. Intercepting GPRS data
JP2006121667A (ja) * 2004-09-27 2006-05-11 Matsushita Electric Ind Co Ltd パケット受信制御装置及びパケット受信制御方法
US7620071B2 (en) 2004-11-16 2009-11-17 Intel Corporation Packet coalescing
US7509431B2 (en) * 2004-11-17 2009-03-24 Cisco Technology, Inc. Performing message and transformation adapter functions in a network element on behalf of an application
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7694334B2 (en) * 2004-12-03 2010-04-06 Nokia Corporation Apparatus and method for traversing gateway device using a plurality of batons
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7496750B2 (en) * 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
US7725934B2 (en) 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7606267B2 (en) 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US7876777B2 (en) * 2004-12-30 2011-01-25 Honeywell International Inc. Multiple protocol decoder
US7551567B2 (en) * 2005-01-05 2009-06-23 Cisco Technology, Inc. Interpreting an application message at a network element using sampling and heuristics
US7796603B1 (en) 2005-01-14 2010-09-14 Acme Packet, Inc. Method and system for controlling media sessions in networks that use communication protocols with distinct signaling and media channels
US8249076B1 (en) * 2005-01-14 2012-08-21 Acme Packet, Inc. Method, system and architecture for validating media sessions in networks that use communication protocols with distinct signaling and media channels
US7698416B2 (en) 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
JP4170299B2 (ja) * 2005-01-31 2008-10-22 独立行政法人 宇宙航空研究開発機構 通信状態遷移モニタ方法及びこれを利用した通信状態遷移モニタ装置
US7668969B1 (en) 2005-04-27 2010-02-23 Extreme Networks, Inc. Rule structure for performing network switch functions
US7860006B1 (en) * 2005-04-27 2010-12-28 Extreme Networks, Inc. Integrated methods of performing network switch functions
US7761619B2 (en) * 2005-05-13 2010-07-20 Microsoft Corporation Method and system for parallelizing completion event processing
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
US7706314B2 (en) * 2005-05-20 2010-04-27 Cisco Technology, Inc. Approach for implementing IPsec in performance enhancing proxy (PEP) environments
US7725595B1 (en) * 2005-05-24 2010-05-25 The United States Of America As Represented By The Secretary Of The Navy Embedded communications system and method
US7881291B2 (en) * 2005-05-26 2011-02-01 Alcatel Lucent Packet classification acceleration using spectral analysis
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US7882262B2 (en) 2005-08-18 2011-02-01 Cisco Technology, Inc. Method and system for inline top N query computation
US7818786B2 (en) * 2005-08-19 2010-10-19 Electronics And Telecommunications Research Institute Apparatus and method for managing session state
WO2007033344A2 (en) * 2005-09-14 2007-03-22 Sipera Systems, Inc. System, method and apparatus for classifying communications in a communications system
US20070130367A1 (en) * 2005-11-18 2007-06-07 Vivek Kashyap Inbound connection prioritization
US7649886B2 (en) * 2005-11-21 2010-01-19 Motorola, Inc. Method and system for processing incoming packets in a communication network
CN1980178A (zh) * 2005-12-03 2007-06-13 鸿富锦精密工业(深圳)有限公司 网络装置及其转发多播封包的方法
EP1966977B1 (en) * 2005-12-30 2016-05-04 Telecom Italia S.p.A. Method and system for secure communication between a public network and a local network
US7650367B2 (en) * 2006-01-13 2010-01-19 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
JP4137948B2 (ja) * 2006-02-14 2008-08-20 日本電信電話株式会社 パケット通過制御装置及びパケット通過制御方法
US20070195776A1 (en) * 2006-02-23 2007-08-23 Zheng Danyang R System and method for channeling network traffic
US8233388B2 (en) * 2006-05-30 2012-07-31 Cisco Technology, Inc. System and method for controlling and tracking network content flow
KR100834570B1 (ko) 2006-06-23 2008-06-02 한국전자통신연구원 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치
WO2008002590A2 (en) * 2006-06-29 2008-01-03 Sipera Systems, Inc. System, method and apparatus for protecting a network or device against high volume attacks
WO2008006403A1 (en) * 2006-07-12 2008-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Method, apparatus and computer program product for controlling devices
CN101115055B (zh) * 2006-07-24 2010-05-12 上海贝尔阿尔卡特股份有限公司 通信网络中报告隧道数据包中各级错误的装置及方法
US8751866B2 (en) * 2006-09-28 2014-06-10 International Business Machines Corporation Autonomic fault isolation in a highly interconnected system
US7646728B2 (en) * 2006-10-13 2010-01-12 SafeMedia Corp. Network monitoring and intellectual property protection device, system and method
US8302179B2 (en) * 2006-12-13 2012-10-30 Avaya Inc. Embedded firewall at a telecommunications endpoint
US8145746B1 (en) * 2007-02-09 2012-03-27 Juniper Networks, Inc. Using the TCP window size for identifying packets and debugging
US8477804B2 (en) * 2007-03-02 2013-07-02 Hitachi, Ltd. ICMP translator
US7894358B2 (en) * 2007-03-15 2011-02-22 Cisco Technology, Inc. Detection of heavy users of network resources
US8935669B2 (en) * 2007-04-11 2015-01-13 Microsoft Corporation Strategies for performing testing in a multi-user environment
CN101296221B (zh) * 2007-04-29 2012-01-11 中兴通讯股份有限公司 媒体接入控制层的数据处理方法
KR100894908B1 (ko) 2007-05-15 2009-04-30 고려대학교 산학협력단 인터넷 기반 음성 서비스에서 비정상 패킷을 탐지하는 방법및 컴퓨터로 읽을 수 있는 매체
US20080307093A1 (en) * 2007-06-07 2008-12-11 Samsung Electronics Co., Ltd. Method and system for managing resource consumption by transport control protocol connections
JP4900119B2 (ja) * 2007-08-01 2012-03-21 ヤマハ株式会社 ネットワーク機器
TW200930056A (en) * 2007-12-26 2009-07-01 Altek Corp Handshake dual-processor architecture of digital cameras
US8503886B1 (en) * 2008-01-03 2013-08-06 Nextel Communications Inc. Systems and methods for visual light communication
JP5035068B2 (ja) * 2008-03-28 2012-09-26 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
US8315256B2 (en) * 2008-04-17 2012-11-20 Gigamon Llc State-based filtering on a packet switch appliance
WO2010011467A1 (en) 2008-06-29 2010-01-28 Oceans' Edge, Inc. Mobile telephone firewall and compliance enforcement system and method
US20100005263A1 (en) * 2008-07-04 2010-01-07 Huawei Technologies Co., Ltd. Information backup method, firewall and network system
US7817631B1 (en) 2008-07-09 2010-10-19 Google Inc. Network transfer protocol
US9692856B2 (en) * 2008-07-25 2017-06-27 Ca, Inc. System and method for filtering and alteration of digital data packets
US8401990B2 (en) * 2008-07-25 2013-03-19 Ca, Inc. System and method for aggregating raw data into a star schema
US8352391B1 (en) 2008-08-20 2013-01-08 Juniper Networks, Inc. Fast update filter
US8275116B2 (en) 2008-08-29 2012-09-25 8X8, Inc. Networked contact center
US8243913B2 (en) 2008-08-29 2012-08-14 8×8, Inc. Limiting contact in a networked contact center environment
US8051167B2 (en) * 2009-02-13 2011-11-01 Alcatel Lucent Optimized mirror for content identification
US20100211544A1 (en) * 2009-02-19 2010-08-19 Jyshyang Chen System with session synchronization
US8750112B2 (en) * 2009-03-16 2014-06-10 Echostar Technologies L.L.C. Method and node for employing network connections over a connectionless transport layer protocol
US7990976B2 (en) * 2009-05-13 2011-08-02 Telefonaktiebolaget L M Ericsson (Publ) Negotiated secure fast table lookups for protocols with bidirectional identifiers
US8407241B2 (en) 2009-06-12 2013-03-26 Microsoft Corporation Content mesh searching
FR2949934B1 (fr) * 2009-09-09 2011-10-28 Qosmos Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees
JP5445147B2 (ja) * 2010-01-07 2014-03-19 富士通株式会社 リスト構造制御回路
TW201246867A (en) * 2011-05-06 2012-11-16 Ralink Technology Corp Packet processing accelerator and method thereof
CN103095665A (zh) * 2011-11-07 2013-05-08 中兴通讯股份有限公司 一种提升防火墙处理性能的方法和装置
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US9262320B2 (en) 2012-06-15 2016-02-16 International Business Machines Corporation Tracking transactional execution footprint
US9223687B2 (en) 2012-06-15 2015-12-29 International Business Machines Corporation Determining the logical address of a transaction abort
US9311101B2 (en) 2012-06-15 2016-04-12 International Business Machines Corporation Intra-instructional transaction abort handling
US9298631B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Managing transactional and non-transactional store observability
US9015419B2 (en) * 2012-06-15 2015-04-21 International Business Machines Corporation Avoiding aborts due to associativity conflicts in a transactional environment
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
WO2014042291A1 (ko) * 2012-09-11 2014-03-20 Jeon In-Young 방화벽 기능을 가진 보안 이동통신 중계기
US9674052B2 (en) * 2012-09-20 2017-06-06 Hewlett Packard Enterprise Development Lp Data packet stream fingerprint
US9350762B2 (en) 2012-09-25 2016-05-24 Ss8 Networks, Inc. Intelligent feedback loop to iteratively reduce incoming network data for analysis
KR20140047221A (ko) * 2012-10-09 2014-04-22 (주)소만사 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
GB201302402D0 (en) * 2013-02-11 2013-03-27 Telecom Ltd Q Communication apparatus
US9043593B2 (en) * 2013-03-11 2015-05-26 International Business Machines Corporation Session attribute propagation through secure database server tiers
JP6040102B2 (ja) * 2013-06-04 2016-12-07 株式会社日立製作所 不正情報検知方法および不正情報検知装置
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
JP6329267B2 (ja) * 2013-12-20 2018-05-23 マカフィー, エルエルシー インテリジェントファイアウォールアクセスルール
US10721160B2 (en) 2014-05-15 2020-07-21 Samsung Electronics Co., Ltd. Method of distributing data and device supporting the same
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US10911353B2 (en) * 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
CN106161224B (zh) 2015-04-02 2019-09-17 阿里巴巴集团控股有限公司 数据交换方法、装置及设备
US11082316B2 (en) * 2015-10-30 2021-08-03 Telecom Italia S.P.A. Performance measurement in a packet-switched communication network
US10419808B2 (en) 2016-09-08 2019-09-17 Gvbb Holdings S.A.R.L. System and method for scalable physical layer flow of packetized media streams
EP3310015A1 (en) * 2016-10-11 2018-04-18 Secucloud GmbH Network filtering using router connection data
CN109587074B (zh) * 2017-09-29 2022-04-29 中兴通讯股份有限公司 报文处理方法、装置、存储介质及处理器
CN110365759B (zh) * 2019-07-08 2021-12-28 深圳市多尼卡航空电子有限公司 一种数据转发方法、装置、系统、网关设备及存储介质
CN112612670B (zh) * 2020-12-02 2023-04-11 北京东土军悦科技有限公司 一种会话信息统计方法、装置、交换设备及存储介质
CN114285771B (zh) * 2021-12-30 2024-02-06 阿里巴巴(中国)有限公司 一种tcp连接的连接状态追踪方法及装置
CN116112290A (zh) * 2023-04-10 2023-05-12 北京长亭未来科技有限公司 一种应用于Web集中管理系统的流量中转方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889962A (en) * 1995-10-13 1999-03-30 Apple Computer, Inc. Method and system for providing an additional identifier for sessions in a file server
EP0910197A2 (en) * 1997-09-12 1999-04-21 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with dynamic rule processing
WO2001031874A2 (en) * 1999-10-28 2001-05-03 Jpmorgan Chase Bank Secured session sequencing proxy system supporting multiple applications and method therefor

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
JP3262689B2 (ja) 1995-05-19 2002-03-04 富士通株式会社 遠隔操作システム
US5828846A (en) * 1995-11-22 1998-10-27 Raptor Systems, Inc. Controlling passage of packets or messages via a virtual connection or flow
JP3688830B2 (ja) 1995-11-30 2005-08-31 株式会社東芝 パケット転送方法及びパケット処理装置
US5867494A (en) 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture
US5999525A (en) 1996-11-18 1999-12-07 Mci Communications Corporation Method for video telephony over a hybrid network
US6173364B1 (en) * 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US6233686B1 (en) * 1997-01-17 2001-05-15 At & T Corp. System and method for providing peer level access control on a network
US5983270A (en) * 1997-03-11 1999-11-09 Sequel Technology Corporation Method and apparatus for managing internetwork and intranetwork activity
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6122665A (en) 1998-08-26 2000-09-19 Sts Software System Ltd. Communication management system for computer network-based telephones
US6219786B1 (en) * 1998-09-09 2001-04-17 Surfcontrol, Inc. Method and system for monitoring and controlling network access
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks
US6347312B1 (en) * 1998-11-05 2002-02-12 International Business Machines Corporation Lightweight directory access protocol (LDAP) directory server cache mechanism and method
US6182149B1 (en) 1999-01-11 2001-01-30 3Com Corporation System for managing dynamic processing resources in a network
US6496935B1 (en) * 2000-03-02 2002-12-17 Check Point Software Technologies Ltd System, device and method for rapid packet filtering and processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889962A (en) * 1995-10-13 1999-03-30 Apple Computer, Inc. Method and system for providing an additional identifier for sessions in a file server
EP0910197A2 (en) * 1997-09-12 1999-04-21 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with dynamic rule processing
WO2001031874A2 (en) * 1999-10-28 2001-05-03 Jpmorgan Chase Bank Secured session sequencing proxy system supporting multiple applications and method therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939322A (zh) * 2015-12-08 2016-09-14 杭州迪普科技有限公司 报文攻击防护的方法及装置

Also Published As

Publication number Publication date
BRPI0209463B1 (pt) 2017-01-17
CA2445751A1 (en) 2002-11-14
AU2002302873A1 (en) 2002-11-18
KR20040008171A (ko) 2004-01-28
WO2002091700A3 (en) 2003-02-06
JP2004538678A (ja) 2004-12-24
BR0209463A (pt) 2004-12-07
EP1386464B1 (en) 2007-12-19
US20040013112A1 (en) 2004-01-22
DE60224177T2 (de) 2008-12-04
EP1386464A2 (en) 2004-02-04
WO2002091700A2 (en) 2002-11-14
CN1518823A (zh) 2004-08-04
CA2445751C (en) 2011-04-26
DE60224177D1 (de) 2008-01-31
ATE381839T1 (de) 2008-01-15
US6816455B2 (en) 2004-11-09
ES2302809T3 (es) 2008-08-01
KR100876935B1 (ko) 2009-01-07
JP4162210B2 (ja) 2008-10-08

Similar Documents

Publication Publication Date Title
CN100550889C (zh) 分组流过滤方法和过滤器、状态监视方法及数字计算设备
EP1966977B1 (en) Method and system for secure communication between a public network and a local network
CN101494649B (zh) 包含安全性关联处理器的虚拟专用网络机制
US7134142B2 (en) System and method for providing exploit protection for networks
US6530025B1 (en) Network connection controlling method and system thereof
CN107786545A (zh) 一种网络攻击行为检测方法及终端设备
US10303881B2 (en) Soft-wired radio (SWR) web machine
CN101142782A (zh) 消息保护系统中的两阶段散列值匹配技术
CN101351784A (zh) 运行时自适应搜索处理器
US20050144441A1 (en) Presence validation to assist in protecting against Denial of Service (DOS) attacks
WO2004053745A1 (en) System and method for transmitting a file associated with an e-mail
CN101827084A (zh) 网络设备的高效的应用程序识别
CN110597839A (zh) 交易数据处理方法、装置、设备以及存储介质
CN107135188A (zh) 金融信息交换fix协议的业务实现方法、装置及系统
WO2006120972A1 (ja) 通信端末及びセキュアデバイス並びに集積回路
CN1326365C (zh) 使用基于硬件的模式匹配的蠕虫阻击系统和方法
CN1503952A (zh) 限制外来访问的方法和系统
EP2377012A2 (en) Secure handling of identification tokens
US6766372B1 (en) System and method for enabling interoperation and partnering among products over a network
US11093616B2 (en) Soft-wired radio (SWR) web machine
CN114463002A (zh) 跨链交易的合法性验证方法、装置、计算机设备及介质
JP2003209561A (ja) 送信元ipアドレスによるセキュリティ強化方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091014

Termination date: 20210510