一种用于对数字通信数据触发操作的方法和计算机系统的制作方法

文档序号:7582117阅读:342来源:国知局
专利名称:一种用于对数字通信数据触发操作的方法和计算机系统的制作方法
技术领域
本发明的技术领域涉及对以数字通信数据形式传输的信息流的控制和管理。
背景技术
作为已知例子,可以列举路由、资源管理、服务质量、安全控制、某些内容的观测以及通信装置使用的计费。
路由基本上被应用于网络层以便将通信数据从发送者引向接收者。在电路交换中,通过信令建立固定的端到端的物理链路执行该路由处理。在分组交换中,诸如IP地址的地址使得通信数据可以经过可能由不同的物理层实现的多个网络,而无需独占用于整个通信的物理线路。在诸如由ATM协议所提供的信元交换中,虚拟电路的建立使电路交换所提供的速度与分组交换所提供的物理资源的优化利用相协调。典型地,路由基本上依靠基于地理位置概念的预定网络地址。有一种需求倾向于增加对网络服务的抽象化。存在一些技术,已经对这些需求中的一些提供了解决方案,诸如,例如虚拟局域网(VLAN代表虚拟局域网(Virtual Local Area Network))的解决方案。然而,由用于引导数据的路由器所执行的操作仍然保持受到相对固定的标准的广泛制约,该标准诸如体系结构和用于将虚拟局域网分配给预定企业的地址的现有规范。可以期望将虚拟网络链接到特定应用、一种类型的数据或特定服务。遗憾的是,由于其部署和管理的复杂性的原因,不宜采用这种方法。
资源和服务质量的管理包括执行诸如用于向语法数据流分配吞吐量或传输优先级的那些操作的操作。语法流对应于由网络、传输、乃至会话层标准所识别的分组集。如果有人希望根据所提供的诸如音乐或电影(音频或视频流)的连续回放的服务、交换组的虚拟网络成员、诸如例如由G721编码和声音压缩标准所规定的通信内容编码、对用户或用于在确定通信上购买带宽的关键字的识别,在应用层获得资源和服务质量的管理,则基于语法流识别的资源和服务质量的管理不是令人满意的。相同的语法流能够传输不同类型的数据。例如,在客户站上所显示的http流首先显示对图像有损害的文本数据,当系统容量逐渐空闲时,显示该图像。尽管小带宽对于文本数据传输是充足的,并且大带宽更适于可视或可听数据的传输,但是将唯一带宽分配给整个语法流也不是令人满意的。
安全控制包括对所传输的数字通信数据所执行的操作,以便保留相同的接入或仅向被授权人广播。防火墙根据对诸如TCP或UDP的传输端口的诸如IP的网络地址的识别,禁止或允许数据分组。这种标准对于使用动态协商端口的应用引发麻烦。例如,在FTP协议的情况下,通常在TCP 21端口上首先打开命令连接。该连接允许客户连接到服务器上,以浏览远程文件系统树以及在服务器上执行询问(GET)。当客户执行询问时,服务器将客户所必须连接到的一个特定端口通知给客户以恢复所希望的文件,由此打开数据连接。事务处理发生在该动态协商端口上,但由于该连接没有特定的报头,所以不可能通过分析该连接来识别FTP协议。只有所交换的文件的二进制数据传输通过。因此必需分析命令会话的整个内容以便分清所有的数据连接。由涉及多媒体系统的H.323标准所覆盖的协议数和实时应用连接(RTP)也是这样。当初始化H.323会话时,借助于涉及用户接口控制的H.245协议分配动态端口,以定义RTP连接,经该RTP连接传输音频和/或视频。由于每个音频分组所使用的特定报头使得可以识别RTP连接,因此可以没有端口的现有知识。
对数字通信数据所执行的安全操作当中,还已知的有,密码学领域中消息的加密、签名或认证的那些操作。通常管理消息的应用触发密码操作。例如在诸如IPSEC的网络层上还存在触发密码操作的装置,以对从局域网经广域网发送的数据加密。这里的触发标准仍然保持在语法类型流上。独立于应用,例如对其内容最机密部分上的数字通信数据触发加密或认证的后继操作以节省计算资源是困难的。
内容的观测(监视)对于执行对误码率、所传送的信息容量或所交换信息的含义的统计是有用的。行为控制构成这种类型的通信功能的部分。基本上又是对于每个语法流都进行观测这种或那种内容的选择。有时甚至对整个通信数据集触发观测操作,而不用对关于它们所涉及的进行任何细分。着眼于它们的利用,更具有目的性的观测操作会对它们的分类有用。
以上所暗指的问题可以在诸如通信装置使用的计费或数据压缩的其它通信功能中发现。通常,是应用层触发数据压缩和解压缩操作。例如在传输层也可以对通过特殊专用端口引入的所有通信数据触发压缩操作。然而,这种方法保留了很难或不太适合于更高功能级的语法特性。
而且,每个通信功能通常构成开发的主题,并且通过先前对要触发的操作和要考虑的语法流进行定义,其经常构成特定部署的主题。这就缺少对于拓宽通信功能的灵活性。
总之,数字通信数据通常包括一个报头,该报头包含对适于定义语法流的协议信息进行编码的信号和对应用包层信息进行编码的信号,后者通常被授予有用的数据(或有效载荷)。对于每个通信功能,通过在报头部分中的已知值的识别以识别语法流,或在其数据源处或在其到达应用包层时或在传输过程中,对这些通信数据触发操作。
就关于在诸如企业或计算点的实体中所实现的大量应用的部署而言,如果应用允许的话,应用的特制参数化很快成为限制。
例如,在端口的动态协商的情况下,或者当根据更高功能层的标准,不得不仅部分地对一个语法流或共同地对几个语法流执行操作时,通过识别用于识别语法流的已知值而引起的严格化不总是适合的,以致为此需求会使其自身陷入服务中。

发明内容
本发明的目的在于能够独立于在其数据源处的一个应用或多个应用而对通信数据触发操作,并且如此操作不用受到局限于语法流的纯粹基于协议的分析的限制。
本发明的目的还在于能够以最大灵活性开发并且利用集中操作触发的通信功能。
解决方案是通过语义流对通信数据进行分类,将每个操作的触发分配给给定语义流。
与语法流不同,语义流将满足一般功能标准的所有通信数据集中在一起以满足给定的服务。语法流可以传送几个不同语义流。同一个语义流可能需要几个语法流以便传送。
基于语义流的分类的好处在于能够将操作触发标准扩展到无限,这种可能性在分布式网络的框架中是尤为关注的。
本发明的主题是,当数字通信数据属于设计为操作的同一个语义流时,通过数字处理装置对该数字通信数据触发至少一个所述操作的方法。
该方法显著之处在于,其包括以下步骤,其中所述装置被供有具有三个可能状态的至少一个过滤器,该三个可能状态是由在对所述语义流所指定的一个或多个协议属性上的一个或多个条件产生,所谓的有效状态对应于确认满足所述一个条件或多个条件的协议属性值,所谓的无效状态对应于确定不满足所述一个条件或多个条件的协议属性值,所谓的不确定状态对应于没有协议属性值来确定满足或不满足所述一个条件或多个条件,每个协议属性由语义流中所使用的协议名称的有序序列、以及由其名称被指示在协议名称的所述有序序列中的协议所传送的参数名称指定;除了产生过滤器的所述不确定状态的那些协议属性值之外,只要这些数据没有提供协议属性值,数字处理装置就将三状态的过滤器应用到通信数据;
当由通信数据所提供的协议属性值产生过滤器的所述有效状态时,数字处理装置触发所述操作。
在该方法中,过滤器包括对属于同一个语义流的通信数据的反应成份。就通过语义流对通信数据的分类而言,该成份提供很大的灵活性。用户能使协议属性适于满足众多需要。例如,对于任何新的协议体系结构,足以指定所使用的协议名称的有序序列。用户能通过其名称,自由地定义适于他希望对其触发操作的语义流的参数。需要时,用户可以通过简单创建具有其它协议属性的其它过滤器,以供给数字处理装置,以此添加其它语义流。
应该注意,着眼于定义各种语义流,由数字处理装置执行的活动与过滤器的公式化去耦合(decouple)。
当将过滤器应用于所述通信数据时,提供了适于本方法的附加灵活性,数字处理装置成功地将所述协议属性之一分发到协议接口,该接口分配给在协议名称的有序序列中所指示的协议,直到过滤器的状态有效或无效,或直到已经分发了所有协议属性;协议接口在通信数据中搜寻所指定参数值,并且如果发现该参数值,就将该值发送给数字处理装置;数字处理装置评估过滤器的状态,该状态对应于由协议接口所传输的值或没有值。
这使得可以通过其中使用该参数的协议,专门对协议属性值进行搜寻,以及可以简化数字处理装置的设计。
有利地,在第一表中通过规则的逻辑组合定义用于供给所述数字处理装置的每个过滤器,在第二表中通过包括至少一个比较运算符的验证表达式定义每个规则,该运算符的自变量是协议属性。
特别地,为了评估与由协议接口发送的值或没有值相对应的过滤器的状态,数字处理装置根据值的发送,以及然后根据由应用于所评估的规则状态的逻辑组合所给定的状态,对在逻辑组合中的至少一个规则的状态进行评估。
通信数据的语义流成员可以随时间而变化。为了解决这种情况,该方法包括这样的步骤,其中扫描数字通信数据,以便检测协议属性值的任何改变,以便可以对与值的改变相对应的过滤器的状态改变进行评估。
本发明的另一方面是用于当数字通信数据属于设计为操作的同一个语义流时,对数字通信数据触发至少一个操作的计算机系统。
该计算机系统显著之处在于,该系统包括数字处理装置,包括过滤引擎和操作引擎;数据库,用于向过滤引擎供给具有三个可能状态的至少一个过滤器,该三个可能状态由在对于所述语义流指定的一个或多个协议属性上的一个或多个条件产生;至少一个数据结构,用于记录与确认满足所述一个或多个条件的协议属性值相对应的所谓的有效状态、与确认不满足所述一个或多个条件的协议属性值相对应的所谓的无效状态、与没有确认满足或不满足所述一个或多个条件的协议属性值相对应的所谓的不确定状态,每个协议属性由语义流中所使用的协议名称的有序序列、以及其名称被指示在协议名称的所述有序序列中的协议所传送的参数名称指定;用于接收通信数据的装置,可由过滤引擎使用,以便除了产生过滤器的所述不确定状态的那些协议属性值之外,只要这些数据没有提供任何协议属性值,就将每个必要过滤器应用于所述通信数据;用于发送所述通信数据的装置,可由操作引擎使用,以便当所述有效状态包含于数据结构中时,触发所述操作。
该计算机系统中,过滤引擎和操作引擎构成数字处理装置的两个去耦合单元,该系统使得可以实现根据本发明的方法。
当计算机系统包括这样一个协议接口时,计算机系统可以在通信技术升级中容易地与任何形式的新协议适配,该协议接口分配给语义流中的每个可用协议,并且设计为从过滤引擎接收对于协议接口分配到的协议所定义的协议属性;
协议接口设计成在通信数据中搜寻所指定参数的值,并且如果发现该值,就将该值发送给过滤引擎;过滤引擎设计成评估对应于由协议接口所发送的值或没有值的过滤器的状态。
然后,足以添加特别为该新协议设计的协议接口而不必重建整个系统。
有利地,数据库包括第一表,该第一表包括用于每个过滤器的规则的逻辑组合;以及第二表,该第二表包括用于每个规则的验证表达式,该验证表达式包括至少一个比较运算符,该比较运算符的自变量是协议属性。
特别地,为了评估与由协议接口发送的值或没有值相对应的过滤器的状态,数字处理装置设计成根据值的发送,以及然后根据由应用于所评估的规则状态的逻辑组合所给定的状态,对在逻辑组合中的至少一个规则的状态进行评估。
该计算机系统的有益方面在于数据库,该数据库包括至少一个第三表,该第三表包含几个操作的名称,每个操作被设计用于不同的语义流,该不同的语义流与特定滤波器相关联。
这使得可以触发适合于每个语义流的一个或多个操作。
本发明的其它优点和特征将从以下参照附图的示例性实施的描述中得以显现。


图1是根据本发明的计算机系统框图;图2示出用于图1的计算机系统的数据库结构;图3代表为本发明所特有的真值表;图4和图5是根据本发明的方法步骤的逻辑流程图;图6示出在执行该方法期间的一个状态中的计算机系统的数据结构。
具体实施例方式
图1示出了实现本发明的计算机系统体系结构的框图。
在将数字通信数据转发到操作引擎2之前,将其提交给如以下所说明的那样设计的过滤引擎1,以对这些数字通信数据进行分析。
在图1中所示的例子中,数字通信数据起源于连接提取器3,该连接提取器3从输入连接器4接收分组形式的数字通信数据。将连接提取器3设计为从所接收的每个分组提取使得可以识别所接收分组所属的当前连接的信息。该信息典型地包括用于有序序列的至少一个或多个第一协议名称的协议名称的有序序列、源地址和目的地地址。协议名称的有序序列包括由分组所属连接的协议栈所使用的协议名称。每个分组不需要包含用于完全识别连接的整体信息,而是通常包含使得可以将所接收分组所属的当前连接与其它分组所属的其它连接区分开的最少信息。当接收分组时,将连接提取器3设计为从所接收的分组提取连接识别信息,以便将其存储在对应于分组所属连接的当前连接的表5的一行中。因此,连接提取器3逐渐使表5丰富,以便以最可能完整的方式在每个行上识别当前连接。然后,参照表5中的一行,将所接收的每个分组提交给过滤引擎1,该行包含用于识别与该分组的区别信息关联一致的当前连接的信息。
诸如在出版物IEEE/ACM Transactions On Networking,volume6,Issue 2(April 1998),Peter Newman et al.,pages 117-129中公开的现有技术,可以使连接提取器3得以实现而无需在此对其进行更详细的描述。例如,专利申请FR0209599描述了用于以增强性能运作连接提取器3的协议识别和分析方法。
例如,当是本发明主题的计算机系统集成在位于通信网络节点的代理服务器类型的设备中时,该节点用于将当前连接的分组转向输入连接器4,该当前连接分组包含要提交给过滤引擎1的数字通信信息,此时连接提取器3是有用的。
并且,当是本发明主题的计算机系统集成在其本身生成连接的数字通信数据并且其通过其它装置可访问其本身管理的通信协议栈的连接识别信息的设备中时,连接提取器3是有用的,但不是不可缺少的。
当在输入连接器4上接收到数字通信数据时或当托管相关系统的装置生成这些数据时,通过分组提交数字通信数据,使得可以实时地处理通信数据,而不必等待其整个传输并且不必在接收到或生成它们时存储它们。然而,该系统关于对可能已经登录的连接的一组数字通信数据的后继(批)处理也是有益的。
将过滤引擎1设计为访问以下将参考图2进行描述的操作数据库6。
数据库6包括一个或多个联系表61、62及63、至少一个过滤器表64和至少一个规则表65。
联系表的每个行将过滤器名称与操作名称相关联。操作名称以降优先级顺序被排列,以便将最高优先级的操作的名称排列在第一行,并且将默认操作的名称排列在联系表的最后一行。默认操作是在没有更高优先级操作要触发的情况下所要触发的操作。默认操作可能是空操作,也就是不具有效果的操作。
表61在此表示测量联系表,设计为使得可以观测(监视)数字通信数据的行为或内容。各种度量标准可以定义在数字通信数据中所要观测的内容。作为说明性的例子,可以提及,通过预测有关即将到来的容量、通信持续时间、以每秒字节或每秒多个字节表示的吞吐量,对将来所要求的,以字节或多个字节的数目表示的通信数据容量进行评估(或测量)。还可以提及,流出(tapping off)诸如字符串的特定类型信息,以监视其给出的含义、关于延迟时间的行为控制、传输误差或阻塞。
在表61的列66中所排列的每个名称,与设计为满足一个或多个度量标准的操作相对应。例如,“语句1”对应于这样的操作,该操作对表示每分组字节量的数目进行合计,并且对分隔两个连续分组到达的持续时间进行存储,以满足用于评估容量和延迟时间的度量标准。名称“语句2”对应于对每分组的字节数进行合计的操作,以满足容量评估的度量标准。此外,“语句i”对应于不进行任何操作的操作。表61最后一行的列66中所排列的名称与特定名称“def”相关联,该特定名称“def”指示表61的末尾,以及指示排列的该名称对应于所默认的要触发的操作。
在列67中的过滤器名称与列66的每个操作名称相关联。所命名的每个过滤器具有识别属于同一个语义流的通信数据集的功能。语义流是被系统用户给予特定含义的通信数据流。例如,如果用户使其涉及用于接收或用于发送通信数据的位置、日期或传输路由,则该含义可能是在于物理层。如果用户使其涉及特定应用、应用的类型或应用用户,则该含义可能是在于应用包层。根据被系统用户给予含义的目标,该含义还可能是在于物理层、应用包层和/或中间层的任意组合。一个或多个连接可能属于同一个语义流。相似地,一个连接可以属于几个语义流。因此,使每个操作与语义流相关联,对于该语义流将触发该操作。
表62在此表示所谓的防火墙联系表,设计为使得可以对同一个语义流的数字通信数据的传输进行授权或禁止。
表62的列66中所排列的每个名称,对应于被设计为根据这些数据传输的授权或禁止而对数字通信数据产生作用的操作。例如,“拒绝”对应于这样的操作,该操作阻塞数据向其接收者的传输并通知该阻塞的发送者。名称“丢弃”对应于破坏通信数据而不通知发送者的操作。例如,“接受”对应于将数字通信数据传送到终端接收者而不对其进行修改的操作。
在表62中,在列67中的过滤器名称也与列66的每个操作名称相关联。当测量操作和防火墙操作适于同一个语义流时,表62中的列67的过滤器名称可以与表61中的列67的过滤器名称一致。在数字通信数据关于其观测和关于其传输的授权或禁止而言,属于不同语义流的情况下,表62中的列67的过滤器名称可以与表61中的列67的过滤器名称不同。当所命名的操作应用于几个不同语义流时,同一个操作名称可以排列在联系表的几个行上。另一方面,由于对于同一个语义流触发不兼容的操作是矛盾的,所以过滤器名称在每个联系表中最多仅关联一次。表62的最后一行的列66中所排列的名称与指示表62的结尾的特定名称“def”相关联,并且所排列的该名称对应于所默认的要触发的规则。
表63在此表示服务联系表,设计为给数字通信数据分配各种传输吞吐量。
表63的列66中所排列的每个名称对应于这样的操作,该操作设计为根据用于某些数字通信数据的预定服务质量,给这些数据分配传输吞吐量。该操作通常是在接收到通信数据时,将它们引入以已知方式设计的等待队列中,以便在严格遵守对该等待队列所规定的吞吐量的同时重发该数据。例如,“队列20Kb/s”对应于将数据以20Kb/s的传输吞吐量引入等待队列的操作。名称“队列50Kb/s”对应于将数据以50Kb/s的传输吞吐量引入等待队列的操作。以及,“队列10Kb/s”对应于将数据以10Kb/s的传输吞吐量引入等待队列的操作。
在表63中,在列67中的过滤器名称也与列66的每个操作名称相关联。
系统用户希望根据数字通信数据可能属于的语义流对这些数据执行处理,而在根据该处理来表示的联系表的模型上,可以有其它联系表(未示出),诸如压缩或解压缩联系表、密码联系表、路由联系表或任何其它的联系表。在压缩联系表的列66中,可以找到与要应用于通信数据的多种压缩速率相对应的操作的名称。在密码联系表的列66中,可以找到与要应用于通信数据的各种加密或认证密钥相对应的操作的名称。在密码联系表的列66中,可以找到与通信数据被重新引入到的各种目的地址相对应的操作的名称。
过滤器表64的每个行,使列68中所排列的过滤器名称与在列69中的排列在同一行上的规则的逻辑组合相关联。联系表的列67中所排列的每个过滤器名称在表64的列68中仅排列一次,除了名称“def”实际上是相当于同义反复。
列69的逻辑组合使用具有三个状态的逻辑运算符,这三个状态是根据参照图3所说明的真值表55、56、57、58进行定义的。逻辑运算符的自变量具有三个可能状态由值-1所指示的无效状态、由值1所指示的有效状态以及由值0所指示的不确定状态。
表58是“AND”逻辑运算符的真值表,对于两个自变量均在有效状态下的给出有效状态,对于有自变量在无效状态下的给出无效状态,以及在其它情况下给出不确定状态。
表57是“OR”逻辑运算符的真值表,对于有自变量在有效状态下的给出有效状态,对于两个自变量均在无效状态下的给出无效状态,以及在其它情况下给出不确定状态。
表56是“XOR”逻辑运算符(异或)的真值表,对于一个自变量在有效状态下且一个自变量在无效状态下的给出有效状态,对于两个自变量均在无效状态下或两个自变量均在有效状态下的给出无效状态,以及在其它情况下给出不确定状态。
表55是“NOT”一元逻辑运算符的真值表,对于自变量在无效状态下的给出有效状态,对于自变量在有效状态下的给出无效状态,以及对于自变量在不确定状态下的给出不确定状态。
图2中所表示的表64的列69中,逻辑组合基于可对一个或两个自变量应用的逻辑运算符。每个自变量是规则名称本身或逻辑组合,以便对其分支全部终止于规则名称的逻辑操作树进行描述。
表64的列69中所使用的规则名称在表65的列59中仅被排列一次。规则表65使每个规则名称与关于协议属性的的验证表达式相关联,该表达式包含在列60中,与列59中所包含的该规则名称在同一行上。通过使自然或非自然方式(antinatural sense)的指示与每个规则名称相关联,改进规则表,该自然或非自然方式的指示包含在列39中,与包含在列59中的该规则名称在同一行上。自然方式表示协议属性值是从属于当前连接的通信数据中提取的,对于该当前连接,规则被激活。非自然方式表示协议属性值是从属于当前连接的对等连接的通信数据中提取的,对于该对等连接,规则被激活。
协议属性是由协议栈内的给定协议传送的参数。优选地,每个协议属性通过三个语法元素指定。第一语法元素包括协议名称串,其中可以一个或多个*字符指示名称串的任何名称或任何部分都是适合的。第二语法元素包括用于标注协议名称的标记,该协议名称在串中使用参数,例如在这个协议名称的括号之间引入或默认串中最后名称的特性。第三语法元素包括所使用的参数名称。例如,属性*.ip.ipsaddr表示封装的IP分组的源地址,属性*.[ip].ipsaddr表示最低层的IP分组的源地址。参数名称可以指定TCP和UDP协议的源或目的端口数目。参数名称也可以指定用于http协议的主机服务器名称、所请求的传输吞吐量、所传输的显式协议名称或诸如由SNET所确定的子网表达式。
参数可以涉及数字通信数据的任何部分。参数不必要涉及对适于定义语法流的协议信息进行编码的信号。参数还可以涉及诸如先前所命名的有用数据。
有利地,协议属性是允许系统执行对于所支持的整个协议集所通用的逻辑、算术和比较运算的类型。可提及以下类型有符号/无符号/8、16、32、64位整数、Mac地址、IP地址/子网掩码、字符串、时间单元、二进制串。例如,由BASE.*.UPPSPORT所指定的UDP分组的端口,属于16位无符号整数的类型单元16。由*.IMAPSENDER所指定的IMAP协议的邮件地址通过字符串定义。
规则是对协议属性的条件。规则状态适于同一个连接的整个数字通信数据集。验证表达式包含比较运算符,该比较运算符根据其类型对相关的协议属性值进行运算,该类型诸如等式=、次序关系>、<、>=、<=、不等式!=、确认正则表达式的运算符~。
在图2中所呈现的例子中,如果命名为属性1的协议属性具有等于值1的值,则命名为R1的规则处于有效状态;如果该值不同于值1,则该规则处于无效状态;以及,如果协议属性值不可知,则该规则处于不确定状态。如果命名为属性2的协议属性具有严格小于值1的值,则命名为R2的规则处于有效状态;如果协议属性值不是严格地小于值1,则该规则处于无效状态;以及,如果协议属性值不可知,则该规则处于不确定状态。因此,表65以相似方式定义了表64中可用的整个规则集。例如,如果命名为值i的协议属性具有满足值X的正则表达式的值,则命名为R i的规则处于有效状态。在已知的正则表达式当中,可以提及以字符串形式表示的那些表达式,该字符串包括可用字符或任何字符串替换的特定字符,指示一种格式(存在整数、日期、财务值)或者注明数据类型(数字、地址、字符串),如果该值不满足正则表达式,则处于无效状态;以及,如果协议属性值不可知,则处于不确定状态。
应该明确,过滤器是逻辑规则函数。为了确认过滤器,可能的解决方案在于每当调用过滤器时由过滤引擎解释过滤器。有利地,以更易于执行的语法树的形式,将过滤器预先编译为二进制格式。例如,规则名称均可由直接指向与该规则名称相对应的表65的行上的二进制格式指针替换。使语法树本身优化,以减少存储空间并且提高执行速度。
表61至表65的内容可以预存于数据库6中。有利地,将数据库6联接到人/机界面,该人/机界面被设计为允许系统用户在预存的内容乃至初始为空的内容的基础上丰富这些表的内容。
为了允许用户定义要对特定语义流触发的新操作,将人/机界面设计成以下拉菜单的形式提供,联系表的现存名称的第一空或非空命名,并使为创建新联系表名称的第一选项与该命名关联。将人/机界面设计为当用户选择第一创建选项时打开第一窗口,以便将用户输入到窗口中的联系表名称添加到第一命名,并且以便在数据库6中生成以所输入名称命名的新的初始为空的联系表。
将人/机界面设计成在第一命名中选择或添加联系表名称之后,以下拉菜单的形式提供所选择或添加的联系表中的操作的现存名称的第二空或非空命名。使为创建新操作名称的第二选项与在下拉菜单中的第二命名关联(attach)。将人/机界面设计为当用户选择第二创建选项时打开第二窗口,以便将用户在该窗口中输入的操作名称添加在第二命名中,并且以便在数据库6中生成对由所输入名称命名的操作进行定义的数据结构。将人/机界面设计成根据由用户所定义的优先级顺序插入在当前联系表中所选择或创建的操作名称。
将人/机界面设计成在将操作名称选择或插入第二命名中之后,以下拉菜单形式提供过滤器表64中的现存过滤器名称的第三空或非空命名。使为创建新过滤器名称的第三选项与在下拉菜单中的第三命名关联。将人/机界面设计为当用户选择第三创建选项时打开第三窗口,以便将用户在该窗口中输入的过滤器名称添加到第三命名,并且以便在表64的列69中生成对由所输入名称命名的过滤器进行定义的逻辑组合。将人/机界面设计为使第三命名中所选择或创建的过滤器名称与插入在联系表中的操作名称相关联。
为了生成逻辑组合,将人/机界面设计为以下拉菜单形式提供表65中规则的现存名称的第四空或非空命名。使为创建要添加到逻辑组合中的新规则名称的第四选项与在下拉菜单中的第四命名关联。将人/机界面设计为当用户选择第四创建选项时打开第四窗口,以便在第四命名中添加用户在该窗口中所输入的规则名称,并且在表65的列60中生成对由所输入名称命名的规则进行定义的验证表达式。通过可能为用户提供指定规则的自然或非自然方式,然后存储在表65的列39中,由此改进第四窗口。将人/界面设计为引入在第四命名中所选择或添加的规则的每个名称,作为逻辑组合中逻辑运算符的自变量。
为了生成验证表达式,将人/机界面设计为以下拉菜单的形式提供协议属性的现存名称的第五空或非空命名,并且使为创建要带入验证表达式的新协议属性名称的第五选项添加到该命名。将人/机界面设计为当用户选择第五创建选项时打开第五窗口,以便在第五命名中添加用户在该窗口中输入的协议属性名称。将人/机界面设计为在表65的列60中将后跟类型值的比较运算符与在第五命名中所选择或添加的协议属性名称连接。
当人/机界面检测到为添加到第四命名的规则名称所生成的验证表达式,与表65中预存的规则名称的验证表达式相同时,则人/机界面不在第四命名中添加规则名称,而是将其本身定位于预存的规则名称,并且不在表65的列60中生成任何新的验证表达式,从而对每个规则描述一次并且仅在表65中描述一次。
当人/机界面检测到对于添加到第三命名的过滤器名称所生成的逻辑组合与在表64中预存的过滤器名称的逻辑组合相同时,人/机界面不在第三命名中添加过滤器名称而将其本身定位于预存的过滤器名称,并且在表64的列69中不生成任何新的逻辑组合,以便对每个过滤器描述一次并且仅在表64中描述一次。
因此,联接(couple)到数据库6的人/机界面允许用户或使其可以选择对数字通信数据要被触发的操作和被触发操作的数据所属的语义流进行灵活地定义。如下所述,对于那些连接,协议属性使这些数据将被提交到的过滤器有效。
以在参照图1所述的系统中的特定方式,表5在每行中包括到数据结构50、51、52的指针,该数据结构设计为对分配给在表5相应行中排列的当前连接的状态进行存储。
每个数据结构50、51、52包括连接联系表53、过滤器状态表54以及规则状态表55。表53的每一行分配给不同联系表61、62、63,其中在列49中排列仍要触发的操作中具有最高优先级的操作名称。使列49中排列的每个操作名称与在列48中的有效或不确定的状态相关联。表54的每一行分配给不同过滤器,该过滤器名称被排列在列47中。列47中排列的每个过滤器名称与在列46中的有效或无效或不确定的状态相关联。表55的每一行分配给规则,该规则名称被排列在列45中。列45中排列的每个规则名称与在列44中的有效或无效或不确定的状态相关联。
为在数字通信数据中检测的新连接创建表5的行时,利用图示联系表61、62、63的所有行的图像初始化联系表53,以便在列49中包含每个联系表61、62、63的每个操作名称,并且在列48中包含每个相关的过滤器名称。表54和表55初始为空。
图6中所表示的表53、54和55的配置是在连接处理期间的进程,以下将对该进展进行描述。
参照图1所述的系统包括协议属性40、41、42、43的接口,用于每个可用协议。将每个协议属性接口分配给特定协议。对于该特定协议,将协议属性接口设计为从通信数据中提取诸如在协议属性中指定的参数值,指示该特定协议使用该参数。有利地,当将协议属性名称添加到第五命名时,并且当不存在被设计为恢复参数值的协议属性接口时,人/机接口被设计为向用户请求载入适当的协议属性接口。因此,可灵活地配置该系统,以便考虑到任何协议体系结构的修改。
应该注意,一方面借助于数据库6可独立地实现对操作和语义流的定义,并且另一方面借助于协议属性接口可独立地实现对可能的协议体系结构的定义。
将过滤引擎1设计为读取表5和数据库6,以便读取并写入数据结构50、51、52,并且以执行参照图4和图5所述的方法的方式,激活协议属性接口40、41、42、43。
在此描述对于特殊情况的方法,其中在步骤100中对通信数据进行分组化传输。优点是当分组化接收通信数据而不必存储这些分组时,能够实时地处理通信数据。可将该方法适用于例如日常的通信数据的全局处理(批处理),其步骤基本上相同。区别在于要触发的操作,防火墙联系和服务联系的那些表更有利于实时处理,测量联系或压缩联系的那些表在实时处理框架内与在静态处理框架内一样有利。
当在步骤100中分组到达过滤引擎1时,伴随对与分组所属的当前连接相对应的表5的行的参照。
伴随分组的参照允许过滤引擎1在步骤101中搜寻指向与当前连接相关联的数据结构50、51、52之一的指针。例如,图4中所使用的标号50是对于其中所指向的数据结构是数据结构50的情况,但是以下的说明适合于任何其它数据结构。
在更新步骤103中,过滤引擎从表54以及从表55删除分别包含在列46以及列44中的其状态为不确定的所有行,因为对于当前通信数据要重新评估相应的规则和过滤器。
在步骤102中,过滤引擎1对表53从第一行开始逐行进行扫描。对于所扫描的每一行,过滤引擎1在表54的列47中搜寻所扫描的表53的行的列48所参照的过滤器名称。
当表54的行没有在列47包含过滤器名称时,过滤引擎1在列47中利用过滤器名称给表54添加一行。然后,关于由其名称添加在列47中的过滤器所确定的语义流,对当前连接重新分类。在这种情况下,过滤引擎1触发步骤104至步骤110的连续步骤,以便在返回到步骤102之前对过滤器进行评估。
当表54的行包含在列46中具有无效状态(-1)的过滤器名称时,过滤引擎1从表53删除在列48中包含该过滤器名称的行。然后,过滤引擎1测试在表53中是否存在下一行。如果表53中不存在下一行,则由于不再需要根据语义流对当前连接进行分类,因此过滤引擎1退出参照图4所描述的处理。如果在表53中存在下一行,则对该行进行扫描,以便如先前和随后所述继续执行步骤102。
当表54的行包含在列46中具有不确定状态(0)的过滤器名称时,过滤引擎1测试表53中是否存在下一行。如果在表53中不存在下一行,则由于不再需要根据语义流对当前连接进行分类,因此过滤引擎1退出参照图4所描述的处理。如果在表53中存在下一行,则对该行进行扫描,以便如先前和随后所述继续执行步骤102。
当表54的行包含在列46中具有有效状态(+1)的过滤器名称时,过滤引擎1删除表53的如下所述的行,该行在49中包含优先级低于当前所扫描的行的操作名称。然后,过滤引擎1测试在表53中是否存在下一行。如果表53中不存在下一行,则由于不再需要根据语义流对当前连接进行分类,因此过滤引擎1退出参照图4所述的处理。如果表53中存在下一行,则对该行进行扫描以便如上所述继续执行步骤102。
在步骤104中,过滤引擎1指向表64的行,该行在列68中包含与在表54的列47中的相同过滤器名称,以便在列69中获得规则的逻辑组合,以评估过滤器。然后,过滤引擎1对于在逻辑组合中被视为逻辑运算符自变量的规则,触发步骤105至步骤109的连续步骤,重复该连续步骤直到考虑了逻辑组合的所有规则或直到已经获得对过滤器在有效或无效的确定性状态下的评估。
在步骤105中,过滤引擎1在表55中搜寻在列45中包含规则名称的行,直到到达不包含在表55的行中的规则名称。
当规则名称不包含在表55的行中时,过滤引擎1在列45中用规则名称给表55添加一行。如果规则是以所谓的非自然方式,则由于该规则的评估所需要的数据没有出现在当前连接中而是在对等连接中,因此过滤引擎1在该行的列44中设置不确定状态的值0。如果规则是以自然方式,则过滤引擎触发用于评估规则的步骤106。
在步骤106中,过滤引擎1访问表65的行,该行在列59中包含与表55中所添加的行的列45相同的规则名称,以便载入(load)与列60中相关联的验证表达式。过滤引擎将协议属性名称提交给协议接口40、41、42、43中的一个,这个协议接口分配给通过协议属性语法所指定的协议。然后,协议接口在当前通信数据中搜寻协议属性值。如果协议接口找到所提交的协议属性值,则其将该值发送到过滤引擎,并且将该值存储在专用于当前连接的寄存器中。如果协议接口没有找到所提交的协议属性值,则其向过滤引擎发送指示没有发现该值的信号。
当协议接口发送指示没有发现该值的信号时,过滤引擎将规则评估为处于不确定状态。
当协议接口发送协议属性值时,如果所发送的值满足验证表达式的条件,则过滤引擎将规则评估为处于有效状态,以及如果所发送的值不满足验证表达式的条件,则评估为处于无效状态。
在步骤107中,过滤引擎将所评估的规则状态存储在表55的相应列44中。
在过滤器评估步骤108中,过滤引擎1根据真值表55、56、57、58,将列69中所包含的逻辑组合应用于在列60中所包含的规则状态。
在步骤109中,过滤引擎1测试所评估的过滤器状态是否为不确定以及对于过滤器逻辑组合所要评估的规则是否有剩余进行测试。
在其中所评估的过滤器状态是不确定以及对于过滤器逻辑组合所要评估的规则有剩余的情况下,过滤引擎返回到步骤104,将其本身定位于逻辑组合中所要评估的下一个规则。
在相反的情况下,过滤引擎触发步骤110。
在步骤110中,过滤引擎在返回步骤102以继续其执行之前,对表54的列46中所评估的过滤器状态进行存储。
当过滤引擎1退出参照图4所述的处理时,其以更为有利的方式进入参照图5所述的处理。参照图5所述的处理使得可以考虑到通信数据中的信息项,该信息项有利于确定语义流,以对当前连接的对等连接进行分类。
在步骤110中,过滤引擎搜寻在表5中排列的对等连接。表5在对等连接的行中包括指向数据结构的指针,该数据结构不同于当前连接的数据结构,假设固定将指针指向数据结构52。
对于所谓非自然方式的每个规则,触发步骤114至步骤116的连续步骤,该规则的名称被排列在数据结构52的表55的列45中。
在步骤114中,过滤引擎1选择所要评估或所要重新评估的非自然方式的规则。考虑到要评估或要重新评估为其状态是不确定的那些规则,使得可以通过限制要评估的规则数目来保持高速处理。考虑到所有规则都要被评估或都要被重新评估为非自然方式,使得可以考虑对可能改变规则状态的协议属性值进行任何修改。
在规则评估步骤115中,过滤引擎将验证表达式的协议属性名称提交给协议接口,该协议接口分配到由该协议属性语法所指定的协议。如果该协议接口返回协议属性值,则过滤引擎通过将该验证表达式应用于所返回的值来计算该规则的状态。如果该协议接口没有返回任何协议属性值,则过滤引擎保持该规则状态不变。
在步骤116中,过滤引擎1将该规则状态存储在数据结构52的表55的列45中,以便将非自然方式的规则评估仅限于那些完成以一个或多个语义流对对等连接进行分类所必需的规则,将步骤112设计为确定该对等连接是否仍然要被分类。
在步骤112中,过滤引擎在数据结构52的表54上搜寻其状态在列46中为不确定的过滤器名称。对于其状态为不确定的每个过滤器名称,过滤引擎触发步骤113。当表54上的搜寻已经终止时,过滤引擎触发步骤117。
步骤113对应于选择其名称在表54中与不确定状态相关联的过滤器,在该步骤中,过滤引擎考虑与在表64中的该过滤器名称相关联的逻辑组合的规则名称,并且对于非自然方式的每个规则名称执行步骤114至步骤116的连续步骤。
语义流的连接成员可能随时间而改变。例如,在以下情况下可能发生这种改变,将几个端到端的连接多路复用在同一个较低层连接上,或以给定瞬间的图像传输连接并且然后以另一瞬间的、其图像所涉及的文本传输连接,对于该图像和该文本具有不同语义。
通过步骤103的下述改进,提高了根据本发明的方法的性能。
在更新步骤103中,在已经由过滤引擎1询问到分组所属的当前连接的情况下,通过每个协议接口40、41、42、43探测包含在该分组中的通信数据。当该协议接口检测到其值先前已经传达给过滤引擎的协议属性值变化时,该协议接口将该值已经发生变化的协议属性通知给过滤引擎。
然后,过滤引擎确定在表65中使用该协议属性的该规则或多个规则,确定在表64中使用这个或这些规则的过滤器或多个过滤器,并且然后确定其名称与在一个联系表或多个表61、62、63中这样确定的过滤器名称相关联的每个操作。
对于这样确定的每个操作名称,过滤引擎1根据以下标准来决定在表53中增加一行或不增加一行。
当可以同时触发例如联系表61的几个操作时,在符合联系表61所定义的顺序的同时,过滤引擎将与表61中所确定的操作名称相对应的行的拷贝插入表53中。如果该行的拷贝已经存在于表53中,则过滤引擎将对应过滤器的行从表54中删除,以便需要时指示过滤器的一个新的评估。
当例如联系表62或63的单个操作是可触发的,即具有有效状态的最高优先级操作或默认操作时,在符合联系表62、63所定义的顺序的同时,如果并且仅如果所确定的操作具有比可触发操作更高的优先级,则过滤引擎将与表61中所确定的操作名称对应的行的拷贝插入表53中。如果该行的拷贝已经存在于表53中,则过滤引擎将对应过滤器的行从表54中删除,以便需要时指示过滤器的一个新的评估。
对于需要步骤117的所有方式的规则,当在参照图4所述的处理中已评估自然方式的规则,以及以补充的方式在参照图5所述的处理中已评估非自然方式的规则时,执行步骤117。
在步骤117中,过滤引擎将所接收的分组发送到操作引擎2。
该操作引擎2指向当前连接的数据结构50的表53。根据在表54中与过滤器名称相关联的状态,该过滤器名称在表53中与操作名称相关联,由此操作引擎2决定将被触发或将不被触发的操作。
当可以同时触发例如联系表61的几个操作时,操作引擎触发其名称在表53中与表54中处于有效状态的过滤器名称相关联的所有操作,或当不存在其名称在表53中与表54中处于有效状态的过滤器名称相关联的操作时,触发其名称在表53中与表54中处于不确定状态的过滤器名称相关联的所有操作或触发根据对于该联系表的预定触发策略的默认操作。
当例如联系表62或63的单个操作是可触发的,即具有有效状态的最高优先级操作或默认操作时,操作引擎2触发其名称在表53中与表54中处于有效状态的过滤器名称相关联的操作,或当不存在其名称在表53中与表54中处于有效状态的过滤器名称相关联的操作时,触发默认操作。
操作引擎根据数据库6中所给定的定义触发每个操作。如上所述,所触发的某些操作易于修改分组的报头或本体的内容。之后,操作引擎2将已经受所触发的各种操作的分组发送给输出7。
权利要求
1.一种方法,用于当数字通信数据属于同一个语义流时,借助于数字处理装置(1,2)对所述数字通信数据触发至少一个操作,所述操作为所述语义流设计,其特征在于,该方法包括以下步骤,其中所述装置(1,2)装备有具有三个可能状态的至少一个过滤器,所述三个可能状态是由在对所述语义流所指定的一个或多个协议属性上的一个或多个条件产生,有效状态对应于确认满足所述一个条件或多个条件的协议属性值,无效状态对应于确定不满足所述一个条件或多个条件的协议属性值,不确定状态对应于没有协议属性值来确定满足或不满足所述一个条件或多个条件,每个协议属性由所述语义流中所使用的协议名称的有序序列、以及由其名称被指示在协议名称的所述有序序列中的协议所传送的参数名称指定;除了产生所述过滤器的所述不确定状态的那些协议属性值之外,只要这些数据没有提供协议属性值,所述数字处理装置(1)就将所述三状态的过滤器应用到(108)所述通信数据;当由所述通信数据所提供的协议属性值产生所述过滤器的所述有效状态时,所述数字处理装置(2)触发所述操作。
2.根据权利要求1所述的方法,将所述过滤器应用于所述通信数据,其特征在于,所述数字处理装置(1)成功地将所述协议属性之一分发到协议接口(40、41、42、43),该接口分配给在协议名称有序序列中所指示的协议,直到所述过滤器的所述状态有效或无效(109),或直到已经分发了所有所述协议属性(109);所述协议接口(40、41、42、43)在所述通信数据中搜寻所述指定参数值,并且如果发现所述参数值,就将所述值发送给所述数字处理装置;所述数字处理装置(1)评估所述过滤器的所述状态,所述状态对应于由所述协议接口(40、41、42、43)所传输的所述值或没有值。
3.根据权利要求1或2所述的方法,其特征在于,用于供给所述数字处理装置的每个过滤器,由在第一表(64)中的规则的逻辑组合定义,每个规则在第二表(65)中由包括至少一个比较运算符的验证表达式定义,所述比较运算符的自变量是所述协议属性。
4.根据权利要求2和3所述的方法,其特征在于,为了评估与由所述协议接口发送的所述值或没有值相对应的所述过滤器的所述状态,所述数字处理装置根据值的所述发送,以及然后根据由应用于所述评估的规则状态的所述逻辑组合所给定的所述状态,评估在所述逻辑组合中的至少一个规则的所述状态。
5.根据上述权利要求之一所述的方法,其特征在于,该方法包括这样的步骤(103),其中扫描所述数字通信数据,以便检测协议属性值的任何改变,以便可以对与值的所述改变相对应的所述过滤器的状态改变进行评估。
6.一种计算机系统,用于当数字通信数据属于同一个语义流时,对所述数字通信数据触发至少一个操作,所述操作为所述语义流设计,其特征在于,该系统包括数字处理装置,包括过滤引擎(1)和操作引擎(2);数据库(6),用于向所述过滤引擎(1)提供具有三个可能状态的至少一个过滤器,所述三个可能状态由在对于所述语义流指定的一个或多个协议属性上的一个或多个条件产生;至少一个数据结构(50、51、52),用于记录与确认满足所述一个或多个条件的协议属性值相对应的有效状态、与确认不满足所述一个或多个条件的协议属性值相对应的无效状态、与没有确认满足或不满足所述一个或多个条件的协议属性值相对应的不确定状态,每个协议属性由所述语义流中所使用的协议名称的有序序列、以及其名称被指示在协议名称的有序序列中的协议所传送的参数名称指定;用于接收通信数据的装置(100),可由所述过滤引擎(1)使用,以便除了产生所述过滤器的所述不确定状态的那些协议属性值之外,只要这些数据没有提供任何协议属性值,就将每个必要过滤器应用于所述通信数据;用于发送所述通信数据的装置(117),可由所述操作引擎(2)使用,以便当所述有效状态包含于所述数据结构(50、51、52)中时,触发所述操作。
7.根据权利要求6所述的计算机系统,其特征在于,该系统包括协议接口(40、41、42、43),该协议接口分配给所述语义流中的每个可用协议,并且设计为从所述过滤引擎(1)接收对于所述协议接口分配到的所述协议所定义的所述协议属性;所述协议接口(40、41、42、43)设计成在所述通信数据中搜寻所述指定参数的所述值,并且如果发现所述值,就将所述值发送给所述过滤引擎(1);所述过滤引擎(1)设计成评估对应于由所述协议接口(40、41、42、43)所发送的所述值或没有值的所述过滤器的所述状态。
8.根据权利要求6或7所述的计算机系统,其特征在于,所述数据库(6)包括第一表(64),包含用于每个过滤器的规则的逻辑组合;以及第二表(65),包含用于每个规则的验证表达式,该验证表达式包括至少一个比较运算符,该比较运算符的自变量是所述协议属性。
9.根据权利要求7和8所述的计算机系统,其特征在于,为了评估与由所述协议接口发送的所述值或没有值相对应的所述过滤器的所述状态,所述数字处理装置设计成根据值的所述发送,以及然后根据由应用于所述评估的规则状态的所述逻辑组合所给定的所述状态,评估在所述逻辑组合中的至少一个规则的所述状态。
10.根据权利要求6至9之一所述的计算机系统,其特征在于,所述数据库(6)包括至少一个第三表(61、62、63),所述第三表包含几个操作的名称,每个所述操作被设计用于不同的语义流,该不同的语义流与特定滤波器相关联。
全文摘要
本发明涉及一种数字处理系统(1、2),该系统装备有具有三个可能状态的至少一个过滤器,该状态由在一个或多个协议属性上的一个或多个条件产生,对语义流指定该协议属性。每个协议属性由在语义流中所使用的协议名称的有序序列、以及其名称指示在协议名称的所述有序序列中的协议所携带的参数名称所指定。数字处理装置包括过滤引擎,对通信数据应用过滤器,直到所述数据提供协议属性值,从该值得到过滤器的有效或无效状态;以及操作引擎(2),当过滤器的状态有效时,该操作引擎触发操作。
文档编号H04L12/56GK1717915SQ200380104427
公开日2006年1月4日 申请日期2003年11月24日 优先权日2002年11月28日
发明者塞尔日·弗迪达, 戈蒂埃·阿姆尔, 埃里克·奥尔莱特, 居伊·皮若尔勒, 热罗姆·托莱 申请人:科斯莫斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1