专利名称:数据过滤条件的动态控制方法与装置的制作方法
技术领域:
本发明涉及一种数据过滤条件的动态控制方法与装置,尤其涉及一种针对报文信息的数据过滤条件的动态控制方法与装置。
背景技术:
一个信息要想在网络上被正确传输,必须符合相应协议规定的格式。OSI模型提供一个用来进行网络系统设计的层次化框架。它包括七个相互独立但又互相关联的层次,每一层都定义了一部分用于穿过网络传递信息的协议。如图1所示,OSI模型的传输过程中,每一层的输出都是下一层的输入,每一层对上一层的输出数据进行本层协议封装(或拆封)之后,再发送到下一层去。
如图2所示,详细显示了利用网络在不同系统中进行数据传递的过程。当系统A要把数据送往远方的系统B时,必须借助于路由器1和路由器2来转发。系统A与系统B的局域网系统可能不一样,比方说它们分别属于以太网与权标环网,但是只要连接系统A的路由器1认识以太网、连接系统B的路由器2认识标权网,并且2个路由器使用相同的第三层网络协议,彼此能够相互转发数据,就可以将数据由系统A送到系统B。路由器收到帧后,会去掉帧的报头,检查IP报头中目的地的IP地址。然后路由器会到路由表中搜寻该目的地IP地址,并且在数据链路层帧封装数据,再将它送到适当的接口。
当前高速骨干网的传输大多是基于POS(Packet over SONET/SDH)模型,其网络主要由大容量的高端路由器经由高速光纤传输通道连接而成。根据该协议解出的第三层数据包常有如图3所示的形式。其中,Flag Sequence、Adress、Control和FCS位置和长度都是固定的,并有各自具体的物理含义;Received Package中含有报文的协议、源目的IP地址、端口信息等,并含有长度不定的报文内容,报文信息在Received Package头部连续给出,但信息位置根据数据包类型不同而不同,报文信息后紧接着报文的内容。整段HDLCFRAME的长度从64bytes~1518bytes不等。
数据过滤技术在网络上是常常被用到的技术。在网络中传递的数据流宏观上是杂乱无章的,对于不同的终端用户来说所关心的只是其中的一小部分数据。用户所关心的信息可能是从某台主机发出的所有数据,可能是流向某台主机的所有数据,可能是符合某几个关键字段的所有信息,可能是符合某一种协议的数据,等等。但无论怎样,用户所关心的信息必定是包含在一个个数据包中的,不在数据包的包信息中就在包内容中。
NSE(Net Search Engine)是一种硬件网络搜索引擎。内部被预先设置过滤条件(Condition),外部逻辑在调用它时将需要查询的内容送入NSE的总线,NSE收到后利用同步工作的方式,同时对输入数据和所有的过滤条件做比较,如果输入数据符合其中某一(几)条过滤条件,NSE反馈命中(hit)信息和索引(index)信息,若都不符合则不反馈hit和index信息。NSE的查找匹配过程是一个流水线操作,即待查询内容连续不断的送入,查询的结果被不断的弹出,而非等待得到一次查询结果输出后再进行下一个待查询内容的输入。NSE预先的过滤条件写入和正常工作时的待查询内容输入都使用相同的数据总线。此外,NSE的过滤条件写入也有类似于查找匹配过程的流水线操作方式。
由于NSE内部的过滤条件是预先设置的,在正常工作过程中,NSE的总线被外部器件连续输入的查询内容所占用,而在很多情况下,NSE内部的过滤条件是需要被修改,被增添或被擦除的。可是正常的工作流程又不能被打断,以免造成数据丢失。很显然,如何在保证数据流处理不被中断的同时修改NSE的内部查找表是个困难的问题。
发明内容
针对上述现有网络通信中数据过滤处理方法所存在的问题和不足,本发明的目的是提供一种数据过滤条件的动态控制方法与装置。
本发明是这样实现的一种数据过滤条件的动态控制方法,包括以下步骤,1)将骨干网络上传输的上行和下行数据做接入,完成OSI的第一、二层协议解析后,将网络上的串行比特流分离为包单元,并缓存在内部数据缓冲区中;2)提取所述包单元的所有必要信息,并缓存在内部信息缓冲区中;3)以所述包单元的必要信息为基础对所述信息缓冲区中的报文信息进行NSE查询,并根据查询结果搬移所述数据缓冲区中的数据,将其丢弃或搬移至指定接口;并行地,外部系统控制器根据用户配置随时写入过滤条件到NSE中,对原过滤条件进行更新;并按下述方法对NSE进行写操作和查询切换对所述信息缓冲区设置高低水位标志,若信息缓冲区低于低水位且写缓冲区非空时,切换当前查询操作到写操作;当写操作结束或者未结束但信息缓冲区中数据高于高水位时,切换当前写操作到查询操作;4)将确定接口的有效数据包进行OSI第二层和第一层协议还原,在各自接口所在的OSI第一层物理线路上传输。
进一步地,所述包单元的必要信息至少包括PROTOCOL、SIP、DIP、SP、DP。
进一步地,所述包单元的必要信息还包括该包在数据缓冲区存储位置信息以及数据包的校验、最末有效字节信息。
进一步地,所述数据缓冲区容量可保证即使存储的都是最大包,信息缓冲区溢出前数据缓冲区不会溢出。
进一步地,所述以包单元的必要信息为基础对信息缓冲区中的报文信息进行NSE查询即是得到hit或不hit信息以及相应的index信息,若hit为0时,数据为无效数据,直接丢弃;若hit为1时,数据为有效数据,根据index信息发送至相应接口。
进一步地,所述向数据缓冲区写入数据与数据信息的提取同时完成,只是在数据完全写入数据缓冲区后才将早已计算完成的数据信息写入信息缓冲区。
一种数据过滤条件的动态控制装置,包括,OSI一、二层协议解析模块,用于OSI第一层数据的接入及数据一、二层的协议处理,将接入数据分离为包单元;数据缓冲区,用于缓冲数据,以包为单元存储;包信息提取模块,用于提取包单元的必要信息;过滤条件缓冲区,用于缓冲待更新的过滤条件;NSE接口控制模块,控制NSE工作方式,将待查询信息进行匹配或是写入新的过滤条件;数据搬移处理模块,根据查询结果及包信息中的数据包在数据缓冲区中存储位置信息将数据包从数据缓冲区中读出,并作相应处理;OSI二、一层协议还原模块,用于实现有效数据包单元的二、一层协议还原。
进一步地,该装置还包括信息处理模块,以在对数据信息的处理不只有调用NSE一种方式时,控制数据信息的处理方式。
本发明通过在NSE器件外部设立待查询信息缓冲区和过滤条件待写入缓冲区的方式,通过合理的切换原则和方法,实现了在数据流处理过程宏观不中断的情况下,动态即时修改NSE内部查找表,即实现了过滤条件的动态控制。并且,保证了不会因为修改NSE内部查找表,而造成正常处理数据流被中断而造成的数据丢失或溢出。
下面结合附图,对本发明作出详细描述。
图1是OSI模型数据处理结构示意图;图2是网络通信模型结构示意图;图3是第三层数据的结构示意图;图4是本发明的数据处理结构示意图;图5是本发明的NSE接口控制模块状态切换示意图。
具体实施例方式
如图4所示,骨干网络传输的上行下行数据首先做接入,然后立即完成OSI第一二层协议解析。在OSI的第一层,传递的都是模拟或者数字的电信号或光信号,虽然该层的信号本身也包含SIP和DIP信息,但是这些信号都是以串行的高速度从一端传递到另一端的,本发明不对OSI的第一层做任何改进,直接由该层数据接收和处理模块对信号处理,保证其信号的高速畅通。因为若想从OSI的第一层中直接解析出SIP和DIP,是非常困难的。首先要分离出数据包单元,再以数据包为单元缓存数据,然后对数据进行分析,根据不同的数据类型抽取正确的SIP和DIP,然后再根据SIP和DIP计算出它分流后的流向。这是费时费力且不经济的方法。OSI的第二层,其输入是第一层输出的符合协议规定的数字电信号,这些电信号在物理上是混乱无序的,但经过第二层的处理,分离出一个个的数据包单元,并以独立控制信号的方式标志其首尾、对错、校验等。其输出的就是一个个的包单元了,并抹去了在物理层传输时必须的包头包尾特征比特位。第一二层的数据接收和处理模块可以是现成的ASIC芯片,也可以是由用户自行设计嵌入式芯片,但必须满足相关的协议类型,这些协议根据不同的网络传输带宽、交换机、路由等是各不相同的。
数据缓冲区将第二层输出的数据包,以包为单位存储在缓冲区中。本发明的缓冲区可以是RAM、FIFO、FLASH等任意的存储媒介,其读写速度只要适应整个系统速度上的要求即可。其存储空间大小依据最坏切换时序情况下不溢出为原则。数据缓冲区应该有足够大的容量,保证即使存储的都是1518字节长的最大包,在信息缓冲区溢出前数据缓冲区不会溢出。
信息提取模块在数据包写入数据缓冲区的同时计算数据包的PROTOCAL、SIP、DIP、SP、DP等5类元信息,因为这些信息的位置都在数据包头部。在数据包写入数据缓冲区完成的同时收集数据包在数据缓冲区存储位置信息以及数据包的校验,最末有效字节等信息,连同早已计算好的5类元信息,打包写入信息缓冲区。值得注意的是,信息缓冲区中的信息与数据缓冲区中的数据是一一对应的,只有在数据缓冲区中写入一个完整的正确包后才向信息缓冲区中写入该数据包相关的信息。向数据缓冲区写入数据与数据信息的提取同时完成,只是在数据完全写入数据缓冲区后才将早已计算完成的数据信息写入信息缓冲区,保证一一对应的关系。如果写入数据缓冲区的数据由于异常的错误导致写入中断,那么一方面数据缓冲区要跳回指针删除已写入的错误数据,另一方面该数据相关的信息不写入信息缓冲区。信息提取模块可以由嵌入式系统实现。
过滤条件缓冲区中存储的是需要动态修改的过滤条件,它由外部系统控制器根据用户需要不时地写入新的过滤条件,它的存储容量根据系统的处理速度,外部系统控制器的工作速度以及用户需求而定。过滤条件缓冲区的实现可以由嵌入式系统的内部缓冲区实现,也可以由外部存储器件实现。
如图4、5所示,信息处理模块在诸多的工作模式中进行切换,对信息缓冲区中的数据进行相应的处理,比如是否对数据信息进行过滤,采用调用外部NSE进行过滤的策略还是采用其他算法的策略,等等。在调用NSE进行过滤的工作模式下,信息处理模块将信息缓冲区中的报文信息送入NSE接口控制模块,由NSE接口控制模块按照NSE能够正确识别的时序将报文信息送入NSE内部做匹配计算,计算结果包含hit和index信息,NSE将这两个反馈信息送给NSE接口控制模块,NSE接口控制模块再送给信息处理模块,最后由信息处理模块决定针对得到的报文有效/出口指向信息对数据缓冲区中的相应报文做何种处理。如果对于数据信息的处理只有调用NSE一种方式的话,则该模块可以省略,直接由NSE接口模块将查询结果反馈给数据搬移处理模块即可。信息处理模块由于功能比较灵活,可以由嵌入式系统实现也可以定制ASIC。
NSE接口控制模块是联系NSE外部器件与系统的接口,它根据信息处理模块的工作状态以及过滤条件缓冲区的状态决定调用NSE进行查找匹配还是配置新的过滤条件给NSE。在查找匹配工作模式下收集并返回计算结果给信息处理模块。根据需要,NSE接口控制模块也可以完成NSE读操作,用来测试NSE内部寄存器状况。本发明的NSE接口模块至少有写和查询两种工作模式,在写和查询模式间进行切换依照一定的切换原则;写模式下,NSE接口模块提取过滤条件缓冲区中数据,按照pipeline操作方式将数据以NSE器件规定的时序写入NSE;查询模式下,NSE接口控制模块接收信息处理模块发来的待查询数据,按照pipeline操作方式将数据以NSE器件规定的时序送入NSE进行查询。调用NSE工作在查询模式还是写模式依照如下规则对所述信息缓冲区设置高低水位标志,若信息缓冲区低于低水位并且写缓冲区非空(即有新的过滤条件需要写入)时,切换当前查询操作到写操作;当写操作结束或者写操作未结束但信息缓冲区中数据高于高水位时,切换当前写操作到查询操作;优先保证信息缓冲区中数据得到处理,在信息流量较小的时段进行新的过滤条件的写入或修改。
信息处理模块处于正常查询工作状态下时,LOOKUP_BUSY信号高电平,告知NSE接口控制模块当前工作状态,NSE接口控制模块也反馈WR_BUSY低电平,表征此时无新的过滤条件需要写入,在此种工作状态下,即使信息缓冲区中数据低于低水位,仍不改变查询工作模式,有一个信息处理一个信息。
如图4、5所示,当过滤条件缓冲区中写入新的过滤条件,由于过滤条件缓冲区低水位设置为0,所以NSE接口控制模块将立即收到EMPTY=0的信号,表征此时过滤条件缓冲区有过滤条件等待写入,然后NSE接口控制模块立即将WR_BUSY置1,表明现在等待进入写NSE模式,但在LOOKUP_BUSY归0之前,并不进行真正的写NSE操作,而是继续处理输入的待查询匹配信息流,这样做的原因一方面是由于pipeline操作的惯性所致,一方面是由于可能此时信息处理流量很大,来不及写入新的过滤条件。当信息处理模块收到WR_BUSY高电平后,得知有新的过滤条件等待写入,如果这时信息缓冲区处于低水位(WM_LOW=1),表明现在处理流量不是很大,那么在发送完当前待处理信息后,信息处理模块不再送入新的待处理信息,而让信息先在缓冲区中进一步缓存,同时LOOKUP_BUSY置0,表明查询工作已经挂起。可以写入新的过滤条件了。NSE接口控制模块在WR_BUSY=1的情况下,一旦收到LOOKUP_BUSY=0就立即转入写新过滤条件操作,按照NSE规定的时序要求将待写入的过滤条件写入NSE内部。一旦写入完成WR_BUSY归0,信息处理模块重启查询操作,同时LOOKUP_BUSY置1;如果在写入过滤条件的过程中,信息缓冲区超过高水位(WM_HIGH=1)则立即中断写入后续的过滤条件,转而启动查询操作,配置LOOKUP_BUSY=1,NSE接口模块处理信息缓冲区的数据,尽管这时过滤条件缓冲区仍非空(EMPTY=0)并且WR_BUSY=1,但优先处理信息缓冲区的数据,等待信息缓冲区数据处理充分,达到低水位线之下后,再执行未完的写过滤条件操作,过程同上。
此外,本发明的过滤条件缓冲区有高水位设置,当快要溢出时,阻止新的过滤信息写入。
信息处理模块和NSE接口控制模块的工作频率决定状态切换的效率及系统的处理能力。如果工作频率相比系统输入数据流量太低则可能导致信息缓冲区永远不能降至低水位,从而导致过滤条件缓冲区中的数据永远得不到处理;如果频率太高可能会给系统设计及电路设计带来麻烦。因而设计时应该在合理的范围内,考虑实际输入数据流量的上限,尽可能提高模块实际工作频率。
数据搬移处理模块接收信息处理模块发来的过滤处理后信息,这些信息包括数据包单元在数据缓冲区存储位置信息,数据包相关特征信息(校验,最末有效字节等),数据包有效信息(hit),数据包出口指向信息(index)等。数据搬移处理模块根据存储位置信息读出数据包单元,根据数据包有效信息决定将包单元丢弃还是发送到下级,根据数据包出口指向信息将包单元连同特征信息发送到确定的下级有效数据缓冲区。具体为,当hit为0时,数据为无效数据,直接丢弃,不作后端发送;当hit为1时,数据为有效数据,根据index信息发送至相应接口。
此外,index信息指明或包含出口指向信息。如果是后者,则根据具体的要求,简单计算后抽取出口指向信息,实现包单元的正确发送。有效数据缓冲区存储经过过滤后的有效包单元,有效数据缓冲区可能不止一个,根据用户需求而定,并且用户需求影响NSE过滤条件中index的设定,如果只有一个数据出口,则无需在过滤条件匹配输出中设定index。
OSI二、一层协议还原模块实现包单元的还原,将有效包单元还原为OSI第一层定义的串行信号,发送到网络上去。
这样,本发明实现了在查询过程中的过滤条件动态控制,在宏观不中断过滤查询过程的情况下,实时增添,修改或读取过滤条件。从而解决了NSE数据总线不能同时进行查询和读写操作的缺陷给实际使用带来的诸多不便,并且保证用户数据不丢失。此外,本发明还可以根据用户需求,将不同的数据根据过滤结果发送至不同的出口,便于用户分类处理,给用户的使用带来极大的方便。本发明主要是针对包信息5类元过滤而进行设计的。如果要扩展到其他过滤方式则根据需要进行相应修改即可。
权利要求
1.一种数据过滤条件的动态控制方法,包括以下步骤,1)将骨干网络上传输的上行和下行数据做接入,完成OSI的第一、二层协议解析后,将网络上的串行比特流分离为包单元,并缓存在内部数据缓冲区中;2)提取所述包单元的所有必要信息,并缓存在内部信息缓冲区中;3)以所述包单元的必要信息为基础对所述信息缓冲区中的报文信息进行NSE查询,并根据查询结果搬移所述数据缓冲区中的数据,将其丢弃或搬移至指定接口;并行地,外部系统控制器根据用户配置随时写入过滤条件到NSE中,对原过滤条件进行更新;并按下述方法对NSE进行写操作和查询切换对所述信息缓冲区设置高低水位标志,若信息缓冲区低于低水位且写缓冲区非空时,切换当前查询操作到写操作;当写操作结束或者未结束但信息缓冲区中数据高于高水位时,切换当前写操作到查询操作;4)将确定接口的有效数据包进行OSI第二层和第一层协议还原,在各自接口所在的OSI第一层物理线路上传输。
2.如权利要求1所述的数据过滤条件的动态控制方法,其特征在于,所述包单元的必要信息至少包括PROTOCOL、SIP、DIP、SP、DP。
3.如权利要求2所述的数据过滤条件的动态控制方法,其特征在于,所述包单元的必要信息还包括该包在数据缓冲区存储位置信息以及数据包的校验、最末有效字节信息。
4.如权利要求1所述的数据过滤条件的动态控制方法,其特征在于,所述数据缓冲区容量可保证即使存储的都是最大包,信息缓冲区溢出前数据缓冲区不会溢出。
5.如权利要求1所述的数据过滤条件的动态控制方法,其特征在于,所述以包单元的必要信息为基础对信息缓冲区中的报文信息进行NSE查询即是得到hit或不hit信息以及相应的index信息,若hit为0时,数据为无效数据,直接丢弃;若hit为1时,数据为有效数据,根据index信息发送至相应接口。
6.如权利要求1所述的数据过滤条件的动态控制方法,其特征在于,所述向数据缓冲区写入数据与数据信息的提取同时完成,只是在数据完全写入数据缓冲区后才将早已计算完成的数据信息写入信息缓冲区。
7.一种数据过滤条件的动态控制装置,包括,OSI一、二层协议解析模块,用于OSI第一层数据的接入及数据一、二层的协议处理,将接入数据分离为包单元;数据缓冲区,用于缓冲数据,以包为单元存储;包信息提取模块,用于提取包单元的必要信息;过滤条件缓冲区,用于缓冲待更新的过滤条件;NSE接口控制模块,控制NSE工作方式,将待查询信息进行匹配或是写入新的过滤条件;数据搬移处理模块,根据查询结果及包信息中的数据包在数据缓冲区中存储位置信息将数据包从数据缓冲区中读出,并作相应处理;OSI二、一层协议还原模块,用于实现有效数据包单元的二、一层协议还原。
8.如权利要求7所述的数据过滤条件的动态控制装置,其特征在于,该装置还包括信息处理模块,以在对数据信息的处理不只有调用NSE一种方式时,控制数据信息的处理方式。
全文摘要
本发明公开了一种数据过滤条件的动态控制方法与装置,包括OSI一、二层协议解析模块,数据缓冲区,包信息提取模块,过滤条件缓冲区,NSE接口控制模块,数据搬移处理模块和OSI二、一层协议还原模块。将骨干网络上传输的数据做接入并缓存在内部数据缓冲区中;提取包单元的必要信息并缓存并以其为基础对信息缓冲区中的报文信息进行NSE查询,根据查询结果搬移数据,将其丢弃或搬移至指定接口;并行地,外部系统控制器可随时写过滤条件到NSE中,对原过滤条件进行更新。本发明实现了在数据流处理过程宏观不中断的情况下,动态即时修改NSE内部查找表,即实现了过滤条件的动态控制。并且,保证了不会因为修改NSE内部查找表,而造成正常处理数据流被中断而造成的数据丢失或溢出。
文档编号H04L12/56GK1606289SQ20041000982
公开日2005年4月13日 申请日期2004年11月18日 优先权日2004年11月18日
发明者何喆 申请人:北京锐安科技有限公司