网络封包分类器与其方法

文档序号:7644057阅读:331来源:国知局
专利名称:网络封包分类器与其方法
技术领域
本发明是有关于一种网络封包分类器与其对应方法,且特别是有关于一 种网络封包分类器其中具延展性的分类机制、可行的架构、与其对应方法。
背景技术
以网际协议(Internet Protocol,简称为IP)为基础的网络,有许多网 络机制都需要将网络封包加以分类。网络入口设备通过网络封包分类器 (classifier)将网络上的封包作特定的定位运算,以计算出封包的标头 (header)或字段(field)的位置。网络封包分类器会检视封包的特定标头、字 段的内容,并且根据事先制订的规则集合(rule set)及依照网络协议中标头 或字段的内容值,来做数据比对并对封包进行分类。网络封包分类器决定各 类封包的处理方式为何,再根据分类的结果予以管控,或是提供特定的网络 资源。随着网络服务与日俱增与网络技术的进步,昔日的网络机制会有所更动。 因为根据网络协议标准所设计出的传统硬件很固定,这对于处理网络封包的 设备有一定的冲击。对于新增加或是增修的网络协议,传统硬件无法弹性地 变更,来处理一个新的、不一样的字段位置。面对上述问题,业界通常只能 够重新设计硬件来定位新的字段位置。传统硬件架构缺乏弹性,只能够针对 固定字段进行识别,对于封包比对少了弹性分类的机制及少了对封包处理的 延展性,更不能动态地调整参数因应新出现的封包字段,因此无法支持新增 的网络协议或封包类型。而这种重新设计整个硬件架构的方式,所付出的设 计成本很高,且对于既有系统厂商也是一笔大的开销。发明内容本发明提供一种网络封包分类器,对封包字段作定位,以利于作特定数 据的比对、分类,并且具有弹性可以因应目前最新的协议、服务与应用做变 化组合,所以具有较大的使用弹性,也因其具有较好的可扩展性(scalability),因此能够布建在更多的使用环境。本发明提供一种网络封包分类方法,对封包字段作定位,以利于作特定 数据的比对、分类,并且方法具有弹性,可以更新设定来比对各种不同的封 包数据或字段。本发明提出一种网络封包分类器,此分类器包括至少一内容定位器。每 一上述内容定位器进行至少一次定位运算,每一上述定位运算为输出至少一 迭加项目的总和作为输出偏移量(offset)。上述迭加项目其中之一为基底值, 此基底值为第一偏移量或上述内容定位器其中之一所进行的定位运算其中之 一的输出偏移量。上述内容定位器其中之一的最后一次定位运算的输出偏移 量为网络封包其中比对字段的位置。本发明提出一种封包分类方法,包括进行至少一次定位运算,每一上述 定位运算为输出至少一迭加项目的总和作为输出偏移量。上述迭加项目其中 之一为基底值,此基底值为第一偏移量或上述定位运算其中之一的输出偏移 量。上述输出偏移量其中之一为网络封包其中比对字段的位置。如本发明的较佳实施例所述,上述的网络封包分类器利用数学公式模型 来代表所要比对的封包字段,用内容定位器计算并找出所要比对的字段位置, 并进行后续的数据比对与封包分类。另外,可以弹性地组合内容定位器与相 关硬件,以实现各种简繁不一的数学公式,来计算各种封包字段的位置。因 此,使用本发明的网络封包分类器与其对应方法,可以增进封包数据比对与 分类的弹性,并节省成本。为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并 配合所附图式,作详细说明如下。


图1为本发明一实施例的网络封包分类器的网状架构图。图2为本发明一实施例的内容定位器示意图。图3为本发明一实施例的内容定位器的树状关系图。图4为本发明一实施例的网络封包分类器的平行架构图。图5 ~图8为本发明较佳实施例的定位运算示意图。[主要元件标号说明]100、 400:网络封包分类器101 — 103、 201、 301 — 311、 401 — 403:内容定^立器110:定位器控制网络120:比对器控制网络131-133、 431 - 433:数据比对器140、 440:比对器输出控制网络202:参数451 ~ 453:存储器461- 463:模块CLSP:定位器系统参数MESP:比对器系统参数UDHDR_POS:输出偏移量具体实施方式
图1绘示本发明一实施例的网络封包分类器的网状架构图。图2绘示本 发明一实施例的内容定位器示意图。请同时参阅图1与图2。网络封包分类 器100包括内容定位器(content locator) 101、 102与103、定位器控制网络 110、比对器控制网络(matching control network) 120、数据比对器(matching engine)131、 132与133、以及比对器输出控制网络140。虽然图l仅绘示三 个内容定位器与三个数据比对器,网络封包分类器IOO可扩充为包含任意数 量的内容定位器与数据比对器,其具体数量视欲支持的封包分类规则数量与 字段复杂度而定。在本实施例中,内容定位器101、 102与103的设计完全相同,以图2内 容定位器201来说明。内容定位器201根据参数202进行定位运算,并输出 运算结果的偏移量UDHDR-POS, UDHDR-P0S可以是数据封包中将进行数据比对 的字段位置,不论是既有的标准字段,或是使用者自行定义的特定数据位置。 UDHDR-P0S也可能作为基底值提供给下一级内容定位器进行后续运算,以寻 址出将进行数据比对的字段位置。内容定位器101、 102与103会各自输出一 个偏移量UDHDR—P0S,在执行一次字段定位时,图1的每一个内容定位器都 只做一次定位运算。内容定位器201的输出偏移量UDHDR—P0S,也就是定位运算的内容,以 数学公式表示如下(式 1) 醒DR —P0S = HDR —P0S + (IF —PVAbP — VAL —OFFSET) + (C—FLAG*C_0FFSET) + U—OFFSET;上述式1的相关参数说明如下。UDHDR_P0S为输出偏移量,性质为整数 (integer)。 HDR-POS为定位运算的基底值,性质为整数,可为由系统参数设 定的固定偏移量,或继承前一级内容定位器的输出偏移量来当作基底值。 IF—PVAL的性质为布尔(Boolean)逻辑,决定是否引用P-VAL—0FFSET参数, 来源为定位器系统参数(content locator system parameters) CLSP 。 P—VAL—OFFSET在此为代表封包标头长度的偏移量,性质为整数。C-FLAG的性 质为布尔逻辑,决定是否有C—OFFSET存在,细节后述。C—OFFSET为有条件 的固定偏移量,来源为定位器系统参数CLSP,性质为整凄丈。ILOFFSET为无条 件的固定偏移量,来源为定位器系统参数CLSP,性质为整数。由式1的说明可知,内容定位器101、 102与103的定位运算为输出至少 一个迭加项目的总和作为输出偏移量UDHDR_P0S。内容定位器101、 102与103 其中,至少有一个内容定位器的输出偏移量UDHDR-P0S为网络封包其中比对 字段的位置。为了完成封包特定字段的定位操作,内容定位器需要许多参数以进行定 位运算,这些参数可来自使用者设定的定位器系统参数CLSP,或来自网络封 包的内容数据。内容定位器201为达到特定的字段定位,上述数学公式的式 1的内容可以再进一步定义如下(式2) HDR—P0S = (~IF—CAS*FIX-POS) + (IF—CAS*PRE_UDHDR—POS);(式 3) P—VAL—OFFSET = P—VAL*P—VAL—FACTOR , 其中 P-VAL = PKT,—P0S+J—OFFSET);(式4) C—FLAG - (PKT(HDR—POS+P—OFFSET) == PTN)。上述数学公式的式2至式4的相关参数说明如下。IF_CAS为表示是否与 前一级的内容定位器作串接,来源为定位器系统参数CLSP,性质为布尔逻辑。 FIX—POS为已知标头的位置,其偏移量为固定值,来源为定位器系统参数 CLSP,性质为整数。PRE—UDHDR—POS为来自前一级内容定位器的基底值,也 就是前一级内容定位器的输出偏移量UDHDR-POS,性质为整数。J-OFFSET为 取得P—VAL的偏移量,来源为定位器系统参数CLSP,性质为整数。J-OFFSET 的代表意义就是从封包起始到某一个信息字段的距离。P-VAL_FACTOR为转换 P-VAL单位的常量,来源为定位器系统参数CLSP,性质为整数。PTN为要和封包凄史据比对的常量,来源为定位器系统参凄t CLSP,性质为整数。P-0FFSET 为检查比对PTN的封包位置,来源为定位器系统参数CLSP,性质为整数。另 外,式3与式4都有一个PKT(), PKT()表示封包数据,例如PKT(X)表示从 封包起始点开始,偏移量为X的位置所在的数据。再以式3的PKT为例,其 意义为从HDR-POS与J_0FFSET累加的偏移处所得到的字段内容值。本实施例中,网络封包分类器100的内容定位器101、 102与103使用了 式1的数学公式,由式2至式4的进阶定义,我们知道所使用的定位器系统 参数CLSP包括IF_PVAL、 C—OFFSET、 U一OFFSET、 IF一CAS、 FIX一POS、 J—OFFSET、 P_VAL_FACT0R、PTN以及P—0FFSET。需要动态产生或取得的参数包括HDR—P0S、 P_VAL_0FFSET、 P—VAL、 C—FLAG及PRE—UDHDR_P0S。 我们将式2至式4代入式1得到式5。式5如下 UDHDR-POS = (~IF—CAS*FIX_POS) + (IF—CAS*PRE_UDHDR—POS) + (IF—PVAL* (PKT (HDR—POS+J—OFFSET) *P—VAL—FACTOR)) + ((PKT(HDR_POS+P—OFFSET) ==PTN)*C_OFFSET) + U—OFFSET。由式1至式5可知每一个内容定位器的输出偏移量UDHDR—POS为许多迭 加项目的组合,迭加项目为(~ IF—CAS*FIX—POS) 、 (IF—CAS*PRE—UDHDR—POS)、 (IF—PVAL*(PKT (HDR_P0S+J_0FFSET)*P—VAL—FACTOR)) 、 ((PKT(HDR_POS+P—OFFSET) ==PTN)*C—OFFSET)、以及U—0FFSET。其中字段值 PKT(HDR-POS+J—OFFSET)与PKT (HDR—P0S+P—0FFSET)取自网络封包。逻辑项目, 例如-IF—CAS、 IF-CAS、 C-FLAG与IF—PVAL,可为逻辑值或逻辑值的反值, 其中逻辑值为取自定位器系统参数CLSP或根据封包字段值进行判断而产生。 C-FLAG定义中等于(==)的逻辑判断运算可视应用需求改为不等于、大于、或 小于。符号「*」代表在符号的前后两项相乘。定位器控制网络110控制内容定位器101、 102与103的串接的情形。定 位器控制网络110以及内容定位器101 、 102与103根据定位器系统参数CLSP 的设定,动态地调配内容定位器的串接顺序,使部分内容定位器能取得所需 的上一级内容定位器的输出偏移量作为基底值,进行多阶段运算,以完成封 包的特定字段的定位。内容定位器的输出偏移量UDHDR—POS通往何处,要视所属内容定位器的 串接顺序而定。定位某一字段所需的数学公式越长越复杂,对应的内容定位 器串接链的级数也越多。对于并非最后一级的内容定位器,其输出偏移量UDHDR—P0S会通过定位器控制网全备110传递给下一级内容定位器作为基底值 HDR-P0S。对于串接链中最后一级的内容定位器,其输出偏移量UDHDR-POS就 是封包中需要比对的字段位置,会通过比对器控制网络120传递至数据比对 器131、 132或133以进行数据比对。比对器控制网络120的功能为连接内容 定位器101-103以及数据比对器131-133。数据比对器131、 132与133会根 才居比只于器系纟充参凄史(matching engine system parameters) MESP,在网纟各去于 包之中对应所接收的输出偏移量的位置进行特定字段数据的比对,并输出数 据比对的结果。比对器系统参数MESP包括了数据的比对的目标模式(target pattern)、 目标模式的长度、数据比较操作所采用的操作数(operand)以及数据比对所套 用的遮罩(mask)等。数据比对器131、 132与133的输出为布尔值,只有比对成功与否的结果。 数据比对器131、 132与133的输出结果可再通过比对器输出控制网络 (matching engine output control network) 140来组合某些凄文才居比对器的 输出结果,以进一步判断网络封包是否符合网络封包分类器100的分类规则。图3绘示本发明一实施例的内容定位器的树状串接关系图。请参阅图3。 由于单一内容定位器的计算能力有限,若计算封包字段位置所需的数学公式 很长,可以通过数个内容定位器的串接,将上述公式拆解为多个定位运算, 分配给串接链的每一个内容定位器,将定位运算的结果一路累加,最后就能 算出想要比对的字段位置。因为大部分的封包分类器有许多的分类规则,而 分类规则会有相当的关联性。通常来说,内容定位器要定位不同的字段,会 有许多共通的定位过程。在许多的识别字段的计算公式中可以找到许多相同 的基底位置,所以某些内容定位器所计算出的偏移量可以让多个下级的内容 定位器共享,这就是共享与继承基底位置的概念。在图3的内容定位器3 01 ~ 311中,每一个内容定位器只做一次定位运算。 我们要寻址一个特定的封包字段,则需通过数个内容定位器的组合来完成。 例如,网络封包分类器对于两个独立且同处第三层(network layer, layer 3) 的字段(字段1与字段2)进行比对,这两个字段定位的过程都需要先算出第 三层的标头起始位置,也就是要先算出第二层(data link layer, layer 2) 的标头长度。在图3的实施例中,可先利用内容定位器301算出第三层的标 头起始^f立置,作为其输出偏移量UDHDR-POS,然后内容定4立器302与303共享内容定位器301的输出偏移量作为基底值HDR_P0S,分别算出字革殳1与字段2的位置。同理,内容定位器306 ~ 308共享内容定位器305的定位运算结 杲;内容定位器309与310共享内容定位器306的定位运算结杲。内容定位 器301 ~ 311的树状连接关系可通过如图1的定位器控制网络110达成。如此, 前一级的内容定位器计算结果,可以让后面几个内容定位器共享。树状串接 方式的内容定位器可以节省硬件成本。通过这样共享与继承的概念,可以将 每一层的每一个位置都涵盖进来,也可以最小化所需设定的参数。图4绘示本发明一实施例的网络封包分类器的平行架构图。请参阅图4。 网络封包分类器400包括内容定位器401、 402与403、数据比对器431、 432 与433、比对器输出控制网络440、以及存储麥(rule memory) 451、 452与453。 图4的每一模块461、 462与463的内容定位器、数据比对器与存储器各负责 一个比对字段的计算公式。平行架构不同于网状架构中继承前一级内容定位器的输出偏移量当作基 底值的概念。在平行架构中,若有某一字段的位置需要多次定位运算,会利 用同一内容定位器的自我继承来作串接,也就是递归式(iterative)的概念。 其中第一次定位运算的基底值为预设的固定偏移量,其后每一次定位运算的 基底值为上一次定位运算的输出偏移量。以模块461为例,内容定位器401计算出一个最终的输出偏移量,并交 由数据比对器431判别。最终的输出偏移量为网络封包中比对字段的位置。 内容定位器401所使用的定位器系统参数储存在存储器451。存储器451储 存每一次定位运算所需的定位器系统参数以及数据比对所需的比对器系统参 数,并在不同的递归中依序将定位器系统参数交给内容定位器401。内容定 位器401在最后一次定位运算输出偏移量至数据比对器431,以进行字段位 置的数据比对。数据比对器431根据比对器系统参数做数据比对。接着,数 据比对器431将比对结果输出至比对器输出控制网络440。模块461就这样完成一个字段的数据比对。模块462与463也同于模块461的运作原理,每一个模块进行一个字段的数据比对。比对器输出控制网络440将一个、多个、或所有数据比对器的 输出以布尔逻辑算出一个最后的布尔值,也就是结合数个比对结果,判断是 否符合网络封包分类器400预期的分类规则。平行架构的网络封包分类器适用于不共享定位运算结果的状况,可以依需求将模块啦文延伸,每一才莫块可支持一个数据比对设定。比如有512组数据 比对设定,就使用512个模块。特别的是,每一模块的内容定位器至少进行 一次定位运算,每一模块的内容定位器与数据比对器的参数都储存在模块内 的存储器上。以上实施例的网络封包分类器,无论是网状或是平行的架构,只要更新 定位器系统参数与定位器控制网络,即可以改变需要比对的字段位置,而不 需要重新设计整个模块与架构。所有定位器系统参数与比对器系统参数都是 根据欲辨识的封包字段或数据,或根据使用者自定的分类规则。以上两种架 构都可以迅速平行处理多条规则,封包一进网络封包分类器就能很快地分类。 上述的网络封包分类器在两种架构的层面都能提供以下几种定位运算功能。功能l.可定位出既有(existing)标准的标头位置。如下式6,当所需要的识别字段为既有或已知时,可直接获取比对地址为FIX_P0S。 (式6) 靈一P0S = FIX-P0S。功能2.可自行定义标头位置或是新制订标准的标头位置。自行定义的标 头位置如前述的式1。(式 1) UDHDR—P0S = HDR—POS + (IF—PVAL*P_VAL—OFFSET) + (C_FLAG*C—OFFSET) + U—OFFSET。以下详细"^兌明式1等号右边的四组迭加项目。第一组迭加项目HDR_P0S为此次定位运算的基底值,如上述实施例的式2。(式2) HDR—POS = (~ IF—CAS*FIX—POS) + (IF—CAS*PRE—UDHDR—POS)。当内容定位器设定为没有串接,或属于串接链的第一级时,逻辑旗标 (flag) IF丄AS将被设定为FALSE,表示不会有继承的基底值,基底值等于预 设的标头位置FIX_P0S。当内容定位器设乂为串接,逻辑旗标IF—CAS为TRUE, 基底值为继承自前一级内容定位器的输出偏移量。第二组迭加项目(IF_PVAL*P—VAL—OFFSET)为根据基底值往后固定 J—OFFSET位置的字^:值P—VAL所计算出的偏移量,如上述实施例的式3。(式 3)P—VAL-OFFSET = P—VAL*P—VAL—FACTOR , 其中 P—VAL = PKT (隨—P0S+J-OFFSET)。P—VAL代表某个影响数据比对位置的字段内容。例如当要进行第4层 (transport layer, layer 4)标头起始点的定位运算时,就需要第3层(network layer, layer 3)的标头长度才能正确判断第4层的标头位置。 J-OFFSET表示需要找到第3层标头长度的字段所需要的偏移量。P—VAL为代 表第3层标头长度的字段内容值。由于字段的内容数值可能不是以单一字节 (byte)为单位,因此在定位运算时,可能需要乘上一个转换常量 P_VAL_FACT0R,以求得正确的偏移量。若P—VAL即是以字节为单位,就不用 乘上P—VAL—FACTOR,或可将P—VAL—FACTOR设为一。定位器系统参数IF—PVAL 决定是否需要迭加P-VAL_OFFSET。第三组迭加项目(C—FLAG*C—OFFSET)表示基底值位置往后固定偏移 P—OFFSET的位置是否有特定值PTN的存在,如上述实施例的式4。 (式4) C—FLAG = (PKT(HDR—POS+P—OFFSET) == PTN)。 因为某些字段不是如P-VAL般记载着标头长度或偏移量的信息。因为封 包格式或协议种类而出现的某些字段,可能对识别字段位置的计算有所影响。 以IEEE 802. lq虚拟局域网络(virtual local area network,简称VLAN)的 封包为例,P—OFFSET代表着从第2层起算,要识别是否为VLAN封包的字段 偏移量,而PTN则是封包符合VLAN的识别条件,亦即用P—OFFSET来找出类 型(type)字段。而PTN设定为8100,以识别封包是否为VLAN类型。由于一 般VLAN标签(tag)之后的所有字段,会比一般封包多出四个字节的偏移。这 个VLAN封包形成的偏移量即是C-OFFSET,代表着因某条件成立而导致的固 定偏移量。第四组迭加项目为无条件的固定偏移量U—0FFSET。某些使用者自订的数 据比对字段可利用U—OFFSET进行定位运算,例如要定位运算第4层的第10 个字节,可利用无条件固定偏移量U-OFFSET来进行设定。功能3.每一次定位运算的迭加项目中有逻辑判断时,其判断运算可为等 于、不等于、大于、或小于。为了更详细地说明本发明的网络封包分类器的定位运算,以下特举4个 较佳实施例来做更进一步的说明。图5~图8为本发明实施例的定位运算示 意图。请参阅图5。图5为一般类型封包的总长度字段(Total Length)的定位 运算。例如,需定位运算的字段是第3层IP标头的总长度字段。假设已知标 头位置FIX-POS为封包起始到第3层标头的偏移量,相当于十四个字节。假 设已知封包没有额外的附加标签。由于没有设定串接,HDR-POS直接等于FIX-POS。总长度字段的位置并不会受其它字段影响,因此IF-PVAL被设定为 FALSE。因为封包没有额外的附加标签,所以C —FLAG为FALSE,不需考虑某 些特定的偏移状况。总长度字段的定位运算为画DR—POS =醒—POS + U—OFFSET = FIX-POS + U—OFFSET。 请参阅图6。图6为具有VLAN标签类型的封包的总长度字段定位运算。 例如,进入封包分类器的封包如图6带有VLAN标签,则其C—FLAG会被设定 为TRUE,总长度字段的定位运算须加上因VLAN标签所产生的偏移量。假设 已知标头位置FIX-POS为封包起始到第3层标头的偏移量,总长度字段的定 位运算为UDHDR—POS = FIX—POS + (C—FLAG*C—OFFSET) + U—OFFSET。 请参阅图7。图7为一般类型封包应用层(Application Layer)比对字段 的定位运算,会用到继承前一级内容定位器的输出偏移量的概念。前一级内 容定位器将第2层标头长度HDR-POS(也就是FIX—POS)加上第3层标头长度 P一VAL—OFFSET,然后输出上述迭加的结果为PRE-UDHDR—POS。下一级内容定 位器继承PRE—UDHDR—POS作为下一级定位运算的基底值,然后加上第4层标 头长度P—VAL—OFFSET以及比对字段在应用层中的偏移量U—OFFSET。最后结 果就是从封包起始到比对字段的偏移量。应用层比对字段的定位运算为 PRE-UDHDR—POS = HDR—POS + P—VAL—OFFSET = FIX—POS + P_VAL_OFFSET; UDHDR—POS = PRE—UDHDR—POS + P—VAL—OFFSET + U—OFFSET。 请参阅图8。图8为具有VLAN标签类型的封包,内容定位器欲求位在应 用层的比对字段的定位运算,同样继承前一级内容定位器的输出偏移量。前 一级内容定位器的定位运算求出第4层起始位置,下一级内容定位器便可累 加第4层标头长度P_VAL—OFFSET以及无条件跳跃偏移量U_OFFSET,来定位 所欲比对的字段。比对字段的定位运算为PRE-UDHDR—POS = HDR—POS + C—OFFSET + P—VAL—OFFSET = FIX—POS + C—OFFSET + P—VAL—OFFSET;UDHDR—POS = PRE—U腦R一POS + P—VAL—OFFSET+ U-OFFSET。 除了上述实施例的网络封包分类器以外,本发明也包含一种对应的网络 封包分类方法。对于在本发明相关技术领域具有通常知识者而言,通过前面 的网络封包分类器实施例,应当能实施本发明的网络封包分类方法,因此不 予赘述。值得一提的是,本发明实施例的封包分类器应用领域包括了两大类一 类是属于网络管控,如封包路由(packet routing)与网络月良务质量(QoS: quality of service)机制;另一类则是属于网络安全,如常见应用有防火墙 与网络服务提供商(ISP: Internet service provider)的安全才几制。而就数 据封包分类技术来看,传统的封包分类技术所能检视的内容局限于第2层到 第4层。许多的服务管控并无法单靠第2层到第4层的标头字段和内容,加 上网络安全的各种新型攻击手法不断推陈出新。本发明实施例中的封包分类 器可以弹性组合,因应目前的服务与应用变化,而有相对应的比对辨识机制, 还包含深层封包才企#见(deep packet inspection,简称为DPI),因此可以应 用在不同网络协议的硬设备上,如使用者端、服务器端、以及路由器端的网 络封包处理设备或收发设备,使上述的硬设备更具灵活性。综上所述,以上实施例的网络封包分类器与其方法可通过定位器系统参 数以及比对器系统参数的设定,来定位出封包中的任何字段,可以串接多层 级的定位运算,扩大数据比对的适用范围,只需更新参数设定,即可延伸出 各种不同的封包比对规则。所以上述实施例的网络封包分类器与其对应方法 可轻易支持新增的网络协议或封包类型,并节省重新设计硬件的时间与成本。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何 本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润 饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。权利要求
1. 一种网络封包分类器,其特征在于包括至少一内容定位器,每一上述内容定位器进行至少一次定位运算,每一上述定位运算为输出至少一迭加项目的总和作为输出偏移量,上述迭加项目其中之一为基底值,该基底值为第一偏移量或上述内容定位器其中之一所进行的定位运算其中之一的输出偏移量,上述内容定位器其中之一的最后一次定位运算的输出偏移量为网络封包其中比对字段的位置。
2. 根据权利要求1所述的网络封包分类器,其特征在于每一上述迭加项 目为根据至少 一 定位器系统参数且/或该网络封包的内容数据而产生。
3. 根据权利要求2所述的网络封包分类器,其特征在于除该基底值之外, 其余每一上述迭加项目为第二偏移量、逻辑项目乘上该第二偏移量、该逻辑 项目乘上字段值、或该逻辑项目乘上该字段值乘上第一常量,该第一偏移量、 该第二偏移量以及该第一常量取自上述定位器系统参数,该字段值取自该网络封包,该逻辑项目为逻辑值或该逻辑值的反值,该逻辑值为取自上述定位 器系统参数或根据该字段值而产生。
4. 根据权利要求3所述的网络封包分类器,其特征在于该字段值为该网 络封包之中特定位置的内容数据,该特定位置的偏移量等于该基底值加上第 三偏移量,该第三偏移量取自上述定位器系统参数。
5. 根据权利要求4所述的网络封包分类器,其特征在于该逻辑值为根据 该字段值以及第二常量进行判断运算的结果,该第二常量取自上述定位器系 统参数,该判断运算为等于、不等于、大于、或小于的判断。
6. 根据权利要求2所述的网络封包分类器,其特征在于还包括至少 一数据比对器,每一上述数据比对器接收上述内容定位器其中之一 所进行的最后一次定位运算的输出偏移量,在该网络封包之中对应该输出偏 移量的位置根据至少一比对器系统参数进行数据比对,并输出该数据比对的 结果;以及比对器输出控制网络,根据上述数据比对器的输出结果,判断该网络封 包是否符合该网络封包分类器的分类规则。
7. 根据权利要求6所述的网络封包分类器,其特征在于上述比对器系统 参数至少包括下列其中之一该数据比对的目标模式、该目标模式的长度、该凄t据比对所采用的4喿作凄t、以及该K据比对所套用的遮罩。
8. 根据权利要求6所述的网络封包分类器,其特征在于还包括 定位器控制网络,根据上述定位器系统参数连接上述内容定位器,使上述内容定位器能取得所需的上述输出偏移量以作为上述基底值;以及比对器控制网络,连接上述内容定位器以及上述数据比对器,使上述数 据比对器能取得所需的上述输出偏移量以进行上述数据比对。
9. 根据权利要求8所述的网络封包分类器,其特征在于每一上述内容定 位器仅进行一次定位运算,而且上述内容定位器包括第一内容定位器、第二 内容定位器、以及第三内容定位器,该第二内容定位器的该基底值为该第一 内容定位器的该输出偏移量,该第三内容定位器的该基底值亦为该第一内容 定位器的该输出偏移量。
10. 根据权利要求6所述的网络封包分类器,其特征在于该网络封包分 类器包括至少一模块,每一上述模块包括上述内容定位器其中之一以及上述 数据比对器其中之一,该数据比对器接收该内容定位器的该输出偏移量,若 该内容定位器需进行多次定位运算,则其中第一次定位运算的基底值为该第 一偏移量,其后每一次定位运算的基底值为上一次定位运算的输出偏移量。
11. 根据权利要求10所述的网络封包分类器,其特征在于每一上述模块 还包括存储器,用以储存该模块其中的该内容定位器进行上述定位运算所需的 上述定位器系统参数。
12. —种网络封包分类方法,其特征在于包括进行至少一次定位运算,每一上述定位运算为输出至少一迭加项目的总 和作为输出偏移量,上述迭加项目其中之一为基底值,该基底值为第一偏移 量或上述定位运算其中之一的输出偏移量,上述输出偏移量其中之一为网络 封包其中比对字段的位置。
13. 根据权利要求12所述的网络封包分类方法,其特征在于每一上述迭 加项目为根据至少一定位系统参数且/或该网络封包的内容数据而产生。
14. 根据权利要求13所述的网络封包分类方法,其特征在于除该基底值 之外,其余每一上述迭加项目为第二偏移量、逻辑项目乘上该第二偏移量、 该逻辑项目乘上字段值、或该逻辑项目乘上该字段值乘上第一常量,该第一 偏移量、该第二偏移量以及该第一常量取自上述定位系统参数,该字段值取自该网络封包,该逻辑项目为逻辑值或该逻辑值的反值,该逻辑值为取自上 述定位系统参数或根据该字段值而产生。
15. 根据权利要求14所述的网络封包分类方法,其特征在于该字段值为 该网络封包之中特定位置的内容数据,该特定位置的偏移量等于该基底值加 上第三偏移量,该第三偏移量取自上述定位系统参数。
16. 根据权利要求15所述的网络封包分类方法,其特征在于该逻辑值为根据该字段值以及第二常量进行判断运算的结果,该第二常量取自上述定位 系统参数,该判断运算为等于、不等于、大于、或小于的判断。
17. 根据权利要求13所述的网络封包分类方法,其特征在于还包括 进行至少一次数据比对,每一上述数据比对使用上述定位运算其中之一的输出偏移量,而且是在该网络封包之中对应该输出偏移量的位置根据至少 一比对系统参数而进行;以及根据上述数据比对的结果,判断该网络封包是否符合该网络封包分类方 法的分类规则。
18. 根据权利要求17所述的网络封包分类方法,其特征在于上述比对系 统参数至少包括下列其中之一该数据比对的目标模式、该目标模式的长度、 该数据比对所采用的操作数、以及该数据比对所套用的遮罩。
全文摘要
一种网络封包分类器与其方法。网络封包分类器包括至少一内容定位器与一数据比对器。每一上述内容定位器进行至少一次定位运算,每一上述定位运算为输出至少一迭加项目的总和作为输出偏移量,而每一迭加项目为根据至少一定位器系统参数且/或网络封包的内容数据而产生。上述迭加项目其中之一为基底值,基底值为系统参数设定的偏移量或上述内容定位器其中之一所进行的定位运算的输出偏移量。上述内容定位器其中之一的最后一次定位运算的输出偏移量为网络封包其中比对字段的位置,这个位置会提供给数据比对器作数据比对。
文档编号H04Q3/52GK101242344SQ200710006400
公开日2008年8月13日 申请日期2007年2月5日 优先权日2007年2月5日
发明者吴政勋, 欧孟鑫, 王博民, 陈建豪 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1