一种以太网报文匹配方法、装置及终端.pdf

上传人:1** 文档编号:4307154 上传时间:2018-09-13 格式:PDF 页数:12 大小:475.12KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110031168.5

申请日:

2011.01.28

公开号:

CN102624600A

公开日:

2012.08.01

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):H04L 12/70申请公布日:20120801|||著录事项变更IPC(主分类):H04L 12/70变更事项:申请人变更前:深圳市恒扬科技有限公司变更后:深圳市恒扬科技股份有限公司变更事项:地址变更前:518000 广东省深圳市南山区科技园北区朗山路嘉达大厦主楼6层变更后:518000 广东省深圳市南山区高新南区海天二路14号软件产业基地5D座7层|||实质审查的生效IPC(主分类):H04L 12/56申请日:20110128|||公开

IPC分类号:

H04L12/56; H04L29/06

主分类号:

H04L12/56

申请人:

深圳市恒扬科技有限公司

发明人:

欧森豪

地址:

518000 广东省深圳市南山区科技园北区朗山路嘉达大厦主楼6层

优先权:

专利代理机构:

深圳中一专利商标事务所 44237

代理人:

张全文

PDF下载: PDF下载
内容摘要

本发明适用于信息处理领域,提供了一种以太网报文匹配方法、装置及终端。所述方法包括下述步骤:预配置属性条件和掩码条件;接收报文并获取所述报文的实际属性条件;根据所述属性条件、掩码条件以及所述报文的实际属性条件匹配所述报文。本发明实施例可以根据预先配置的掩码条件和掩码条件匹配报文,因此能够灵活匹配报文的各个属性值,具有较强的兼容性。

权利要求书

1: 一种以太网报文匹配方法, 其特征在于, 所述方法包括下述步骤 : 预配置属性条件和掩码条件 ; 接收报文并获取所述报文的实际属性条件 ; 根据所述属性条件、 掩码条件以及所述报文的实际属性条件匹配所述报文。2: 如权利要求 1 所述的方法, 其特征在于, 所述属性条件包括报文在链路层、 网络层、 运输层、 应用层中的多个属性值 ; 所述掩码条件包括报文在链路层、 网络层、 运输层、 应用层中的多个掩码 ; 所述实际属性条件包括报文在链路层、 网络层、 运输层、 应用层中的多个实际属性值。3: 如权利要求 2 所述的方法, 其特征在于, 所述掩码条件根据所述属性条件进行相应的配置 ; 在所述属性条件指定链路层、 网络层、 运输层、 应用层中的一个或多个属性值后, 所述 掩码条件指定相应的链路层、 网络层、 运输层、 应用层中的一个或多个掩码 ; 所述一个或多个掩码是全为 1 的二进制数值或全为 0 的二进制数值或部分为 0、 部分为 1 的二进制数值。4: 如权利要求 1 所述的方法, 其特征在于, 所述根据所述属性条件、 掩码条件以及所述 报文的实际属性条件匹配所述报文的步骤具体为 : 将所述属性条件与掩码条件进行相与运算, 获得第一运算结果 ; 将所述报文的实际属性条件与掩码条件进行相与运算, 获得第二运算结果 ; 判断所述第一运算结果与第二运算结果是否相等, 若相等, 则报文匹配成功, 若不相 等, 则报文匹配不成功。5: 一种以太网报文匹配装置, 其特征在于, 所述装置包括 : 条件配置单元, 用于预配置属性条件和掩码条件 ; 实际属性条件获取单元, 用于接收报文并获取所述报文的实际属性条件 ; 报文匹配单元, 用于根据所述属性条件、 掩码条件以及所述报文的实际属性条件匹配 所述报文。6: 如权利要求 5 所述的装置, 其特征在于, 所述属性条件包括链路层、 网络层、 运输层、 应用层中的一个或多个属性值 ; 所述掩码条件包括链路层、 网络层、 运输层、 应用层中的一个或多个掩码 ; 所述实际属性条件包括报文在链路层、 网络层、 运输层、 应用层中的一个或多个实际属 性值。7: 如权利要求 5 所述的装置, 其特征在于, 所述报文匹配单元包括 : 第一运算结果获取模块, 用于将所述属性条件与掩码条件进行相与运算, 获得第一运 算结果 ; 第二运算结果获取模块, 用于将所述报文的实际属性条件与掩码条件进行相与运算, 获得第二运算结果 ; 运算结果判断模块, 判断所述第一运算结果与第二运算结果是否相等。8: 一种包含权利要求 5 所述的以太网报文匹配装置的终端。

说明书


一种以太网报文匹配方法、 装置及终端

    【技术领域】
     本发明属于信息处理领域, 尤其涉及一种以太网报文匹配方法、 装置及终端。背景技术 一个报文通常包含源 ip、 目的 ip 等属性值, 这些属性值由 0.5 字节或者 1 字节或 者 2 字节或者 4 字节等构成, 当然也可能由 1bit 构成。
     匹配一个报文就是匹配报文的各个属性值。现有方法采用正掩码或者反掩码匹 配报文的内容, 其中, 正掩码是高位为全 1, 低位为全 0 的二进制值, 而反掩码则反之, 是 高位为全 0, 低位为全 1 的二进制值。例如, 若要匹配 ip 地址为 192.168.10.1 的网段 : 192.168.0.0, 则可采用正掩码 255.255.0.0 跟 192.168.10.1 取与获得, 即将上述十进制的 正掩码 255.255.0.0 以及 ip 地址 192.168.10.1 分别转为二进制后再分别取与, 最后将得 到的二进制值转为十进制值即可得到 192.168.0.0 ; 若要匹配 ip 地址为 192.168.10.1 的 主机段 : 0.0.10.1, 则可采用反掩码 0.0.255.255 跟 192.168.1 0.1 取与获得。
     现有的报文匹配方法在匹配报文时不够灵活。 例如采用掩码或反掩码在匹配报文 属性的中间内容时就显得力不从心, 假设要匹配 ip 地址为 192.168.10.1 的 0.0.10.0 这个 主机段, 则不能采用掩码或者反掩码与 192.168.10.1 取与获得。此外, 采用掩码或反掩码 匹配报文需考虑报文的所有属性, 兼容性差, 造成匹配报文的工作量过大。 例如在匹配报文 的源 ip 时, 需要指出源 ip 的值和掩码或者指出 ip 和反掩码, 在匹配目的 ip 时, 需要指出 目的 ip 的值和掩码或者指出目的 ip 和反掩码。
     发明内容 本发明实施例提供了一种以太网报文匹配方法, 旨在解决现有的报文匹配方法在 匹配报文时不够灵活以及兼容性差的问题。
     本发明实施例是这样实现的, 一种以太网报文匹配方法, 所述方法包括下述步 骤:
     预配置属性条件和掩码条件 ;
     接收报文并获取所述报文的实际属性条件 ;
     根据所述属性条件、 掩码条件以及所述报文的实际属性条件匹配所述报文。
     本发明实施例的另一目的在于提供一种以太网报文匹配装置, 所述装置包括 :
     条件配置单元, 用于预配置属性条件和掩码条件 ;
     实际属性条件获取单元, 用于接收报文并获取所述报文的实际属性条件 ;
     报文匹配单元, 用于根据所述属性条件、 掩码条件以及所述报文的实际属性条件 匹配所述报文。
     本发明实施例的另一目的在于提供包括上述以太网报文匹配装置的终端。
     本发明实施例在预配置报文的属性条件后, 再根据预配置的报文属性条件选择相 对应的掩码, 在网络上传来一个报文时, 获取该报文在链路层、 网络层、 运输层、 应用层中的
     多个实际属性值组成的实际属性条件, 最后比较属性条件与掩码条件进行相与运算后所获 得的第一运算结果和实际属性条件与掩码条件进行相与运算后所获得的第二运算结果, 若 两者相等, 则报文匹配成功, 若两者不相等, 则报文匹配不成功。由于可以根据预先配置的 掩码条件和掩码条件匹配报文, 因此能够灵活匹配报文的各个属性值, 具有较强的兼容性。 附图说明
     图 1 是本发明第一实施例提供的以太网报文匹配方法流程 ; 图 2 是本发明第二实施例提供的 tcp/ip 协议族的组成 ; 图 3 是本发明第三实施例提供的以太网报文匹配装置结构。具体实施方式
     为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
     本发明实施例首先预配置报文的属性条件, 再根据该属性条件预配置掩码条件, 在网络上传来一个报文时, 获取该报文的实际属性条件, 最后根据预配置的属性条件、 掩码 条件以及获取的报文实际属性条件匹配该报文。
     为了说明本发明所述的技术方案, 下面通过具体实施例来进行说明。
     实施例一 :
     图 1 示出了本发明第一实施例提供的以太网报文匹配方法, 在本实施例中, 根据 预配置的属性条件、 掩码条件以及获取的报文实际属性条件进行报文匹配, 详述如下 : 在步骤 S11 中, 预配置属性条件和掩码条件。
     本实施例中, 预配置的报文属性条件包括该报文在链路层、 网络层、 运输层、 应用 层中的多个属性值, 在预配置了报文的属性条件后再配置该报文在链路层、 网络层、 运输 层、 应用层中的多个掩码。
     若指定获取运输层中 192.168.1.X 网段的 udp 报文, 该 X 的值可以为 0 ~ 255 中 的任一个值。首先将网段 192.168.1.X 转为 16 进制后获得的前 3 部分值分别为 : 0xC0、 0XA8、 0x01, 则预配置的属性条件在运输层的前 3 个属性值应为 0xC0、 0xA8、 0x01, 由于 X 可 以为 0 ~ 255 中的任一个值, 因此可以假设预配置的属性条件在运输层的第 4 个属性值 为 0x01, 用二进制表示为 : 11000000、 10101000、 00000001、 00000001。为了匹配中运输层 为 192.168.1.X 网段的 udp 报文以及根据预配置的属性条件预配置掩码条件, 由于 X 可以 为 0 ~ 255 中的任一个值, 则掩码条件在运输层的掩码应为 0xFF、 0xFF、 0xFF 以及 0x00, 用二进制表示为 : 11111111、 11111111、 11111111、 00000000。在配置了运输层的属性值和 掩码后, 再配置网络层的属性值和掩码。将标志报文为 udp 报文的二进制值 00010001 转 为 16 进制后获得的值为 0x11, 则预配置的属性条件在网络层的属性值为 0x11, 与该属性 可配置的掩码为 值对应的网络层的掩码应为 0xFF。若需要得到 0.0.10.0 这个主机段, 1111.1111.1111.1111。
     当然, 若对报文在链路层的属性值或者应用层的属性值有特定要求时, 也可以对 相应的属性值进行指定, 并根据需要选择相应的掩码。
     在步骤 S12 中, 接收报文并获取该报文的实际属性条件。
     本实施例中, 当网络上传来了一个报文, 则获取该报文的实际属性条件。其中, 该 报文的实际属性条件包括报文在链路层、 网络层、 运输层、 应用层中的多个实际属性值。
     在步骤 S13 中, 根据该属性条件、 掩码条件以及该报文的实际属性条件匹配该报 文。
     本实施例中, 匹配报文有 3 种情况的匹配 : (1) 精确匹配, 精确匹配是指预配置的 掩码条件是全为 1 的二进制数值 ; 网络上传输的报文的实际属性条件等于预配置的属性条 件 (2) 全包含匹配, 全包含匹配是指预配置的掩码条件是全为 0 的二进制数值 ; 网络上传输 的报文的实际属性条件可以为任何值 (3) 局部匹配, 局部匹配是指预配置的掩码条件部分 为 0, 部分为 1 的二进制数值, 该预配置的掩码条件仅在与预配置的属性条件指定的链路层 或网络层或运输层或应用层的一个或多个属性值对应的掩码为全为 1 的二进制数值, 在与 属性条件没有要求的属性值对应的掩码则为全为 0 的二进制数值 ; 网络上传输的报文的实 际属性条件局部等于预配置的属性条件。
     当一个报文符合预设的匹配规则时称该报文被匹配中, 该匹配规则为 : f(attr_ pkt, mask_rule) = f(attr_rule, mask_rule), 其中 f 表示相与运算, 即 f(A, B) = A&B, 其 中, attr_pkt 为报文在链路层、 网络层、 运输层、 应用层中的一个或多个实际属性值, mask_ rule 为报文在链路层、 网络层、 运输层、 应用层中的一个或多个掩码, attr_rule 为报文在 链路层、 网络层、 运输层、 应用层中的一个或多个属性值。当网络上来了一个报文, 若该报 文的 attr_pkt 与掩码条件中对应的掩码进行相与运算后所获得的结果等于预配置的掩码 条件中对应的属性值与掩码条件中对应的掩码进行相与运算后所获得的结果, 那么称该 attr_pkt 被匹配中。 如果报文所有的实际属性值都被匹配中, 则称该报文被匹配中, 如果报 文的部分实际属性值被匹配中, 则称该报文被局部匹配中。
     本实施例中, 若网络上传来的报文被匹配中, 或局部匹配中, 则存储该报文。当网 络上传来的报文被匹配中时, 说明该报文为查找的报文, 则存储该报文。
     在本发明第一实施例中, 首先预配置报文的属性条件, 再根据该属性条件预配置 掩码条件, 在网络上传来一个报文时, 获取该报文的实际属性条件, 最后比较属性条件与掩 码条件进行相与运算后所获得的第一运算结果和实际属性条件与掩码条件进行相与运算 后所获得的第二运算结果, 若两者相等, 则报文匹配成功, 若两者不相等, 则报文匹配不成 功。由于可以根据预先配置的掩码条件和掩码条件匹配报文, 因此能够灵活匹配报文的各 个属性值, 具有较强的兼容性。
     为了更清楚地说明匹配以太网报文的方法, 下面以具体应用例进行说明。
     实施例二 :
     其中, 图 2 示出了 tcp/ip 协议族的组成, 由图 2 可以看出, tcp/ip 协议族由链路 层、 网络层、 运输层、 应用层组成, 每一层都有相应的协议。
     1、 假设需要找出 ip 为 192.168.1.X 网段的 udp 报文。
     本实施例中, 该 X 可以为 0 ~ 255 之间的任一个值。首先分析该报文有哪些属性 值, (1) 以太网报文, (2)ip 报文, (3) 获取 ip 层的长度, 通常为 20 字节, (4)udp 报文, (5) 源 ip 值为 192.168.1.X(X = 0 ~ 255)。再根据 ip 为 192.168.1.X 网段的 udp 报文所特有 的属性值预配置报文的属性值条件以及选择相应的掩码条件。其中, 预配置的属性条件在链路层的属性值以及预配置的掩码条件在链路层的掩码如表 1 所示。
     表1:
     其中, 预配置的属性条件在网络层、 运输层的属性值以及预配置的掩码条件在网 络层以及运输层的掩码如表 2 所示 :
     表2:
     由于只需找出 ip 为 192.168.1.X 网段的 udp 报文, 因此只需预配置网络层的属性 值为 0x11, 该 0x11 为 udp 报文的标识, 配置运输层的前 3 个属性值为 0xC0、 0xA8、 0x01, 其 他的属性值可以为任意值, 比如报文在运输层的第 4 个属性值可以为 0x01。在预配置属性 条件时, 只需保证在特定的链路层、 网络层、 运输层、 应用层中的属性值为所需找出的报文的属性值即可, 其余属性值不作限定。在配置了属性条件后, 再配置掩码条件。根据配置的 掩码条件, 该掩码条件在运输层的掩码分别为 : 0xFF、 0xFF、 0xFF、 0xFF, 在网络层的掩码为 0xFF。所有在链路层、 网络层、 运输层、 应用层中配置的属性值和掩码组合成整个报文的属 性条件和掩码添加。使用 16 进制表示如下 :
     属 性 条 件: 000000000000 000000000000 0800 4500 00000000000000 11 0000C0A80100。
     掩码条件: 000000000000 000000000000 FFFF FF00 00000000000000 FF0000 FFFFFF00。
     当来了一个以太网报文, 若该报文的第 13 个字节为 0x08, 则 f(attr_pkt, 0xFF) = f(0x08, 0xFF) 成立, 同理, 若该报文的第 14 个字节为 0x00、 第 15 个字节为 0x45、 第 24 个字 节为 0x11、 第 27 个字节为 0xC0、 第 28 个字节为 0xA8、 第 29 个字节为 0x01 以及第 30 个字 节为 0x01, 其他字节可以为 0 也可以为 1, 则当前报文的全部实际属性值被匹配中, 即属性 条件与掩码条件进行相与运算后所得结果等于实际属性条件与掩码条件进行相与运算后 所得结果, 整个报文被匹配中。
     2、 假设需要找出 ip option 为 0x45XXXX 的 ip 报文。则预配置的属性条件和掩码 条件用 16 进制分别表示如下 : 属性条件 : 000000000000 000000000000 0800 40000000000000000000000000 00000000000000 45。
     掩码条件 : 00000000000 0000000000000 FFFF F0000000000000000000000000 00000000000000 FF。
     当来了一个以太网报文, 若该以太网报文在链路层、 网络层、 运输层、 应用层中的 实际属性值与对应的掩码进行相与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果, 即: f(attr_pkt, mask_rule) = f(attr_rule, mask_rule), 则说明该以太网报文的 attr_pkt 被匹配中, 若该以太网报文的 所有 attr_pkt 被匹配中, 则该以太网报文被匹配中。
     3、 假设需要找出 ip 为 192.168.1.2 的 syn 报文。
     在该应用例中, syn 报文是一个 tcp 报文, 则在链路层配置的属性值以及相应的掩 码如表 1 所示, 在网络层配置的属性值以及相应的掩码如表 3 所示。
     表3:
     由于查找的是 syn 报文, 而 syn 报文中 syn 标识 bit 位为 1, 其他标识 bit 位为 0, 因此配置标识这个属性的属性值为 0x02, 相应的掩码为 0xFF。除配置属性条件中以上属性 值外, 允许报文的其他属性值为任意值, 即报文的其他属性值可以为 0。
     这样, 预配置的属性条件和掩码条件用 16 进制分别表示如下 :
     属性条件 : 000000000000 000000000000 0800 450000000000000000000000C0A80 102 00000000 00000000000000000000000000 02
     掩码条件 : 000000000000 000000000000 FF00 FF0000000000000000000000FFFFF FFF 00000000 00000000000000000000000000 FF
     当来了一个以太网报文, 若该以太网报文在链路层、 网络层、 运输层、 应用层中的 实际属性值与对应的掩码进行相与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果, 即: f(attr_pkt, mask_rule) = f(attr_rule, mask_rule), 则说明该以太网报文的 attr_pkt 被匹配中, 若该以太网报文的 所有 attr_pkt 被匹配中, 则该以太网报文被匹配中。
     4、 假设需要找出 ip 为 192.168.1.2 的 ack 报文, 包括 syn ack, push ack 等其他 ack。
     在该例子中, 预配置的属性条件中前几个属性值与找出 ip 为 192.168.1.2 的 syn 报文对应的属性值相同, 唯一不同的是 ack 标识的属性值。由于 tcp 报文的标识由 “保留、 保留、 urg、 ack、 psh、 syn、 fin” 这 8bit 组成, 因此只要保证 ack 标识 bit 位为 1, 就能保证 报文是一个 ack 报文, 即 ack bit 位的属性值 attr_rule 必须配置为 1, 相应的掩码 mask_ rule 必须配置为 1, 故标识这个 8bit 属性值的 attr_rule 为 0x10, mask_rule 为 0x10, 以 使 f(attr_pkt, 0x10) = f(0x10, 0x10) 成立。预配置的属性条件和掩码条件用 16 进制分 别表示如下 :
     属性条件 :
     00000000000 0000000000000 0800 450000000000000000000000 C0A8010200000000 00000000000000000000000000 10
     掩码条件 :
     000000000000 000000000000 FF00 FF0000000000000000000000 FFFFFFFF00000000 00000000000000000000000000 10
     当来了一个以太网报文, 若该以太网报文在链路层、 网络层、 运输层、 应用层中的 实际属性值与对应的掩码进行相与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果, 即: f(attr_pkt, mask_rule) = f(attr_rule, mask_rule), 则说明该以太网报文的 attr_pkt 被匹配中, 若该以太网报文的 所有 attr_pkt 被匹配中, 则该以太网报文被匹配中。
     实施例三 :
     图 3 示出了本发明第三实施例提供的以太网报文匹配装置结构, 为了便于说明, 仅示出了与本发明实施例相关的部分。
     该以太网报文匹配装置可以用于通过有线或者无线网络连接服务器的各种信息 处理终端, 例如移动电话、 口袋计算机 (Pocket Personal Computer, PPC)、 掌上电脑、 计算 机、 笔记本电脑、 个人数字助理 (Personal Digital Assistant, PDA) 等, 可以是运行于这些 终端内的软件单元、 硬件单元或者软硬件相结合的单元, 也可以作为独立的挂件集成到这 些终端中或者运行于这些终端的应用系统中, 其中 : 条件配置单元 31, 用于预配置属性条件和掩码条件。
     本实施例中, 预配置的报文属性条件包括该报文在链路层、 网络层、 运输层、 应用 层中的多个属性值, 在预配置了报文的属性条件后再根据属性条件配置该报文在链路层、 网络层、 运输层、 应用层中的多个掩码。
     实际属性条件获取单元 32, 用于接收报文并获取该报文的实际属性条件。
     本实施例中, 该实际属性条件包括报文在链路层、 网络层、 运输层、 应用层中的一 个或多个实际属性值。当网络上传来了一个报文, 则获取组成该报文多个实际属性值。
     报文匹配单元 33, 用于根据该属性条件、 掩码条件以及该报文的实际属性条件匹 配该报文
     作为本发明的另一个实施例, 该报文匹配单元 33 包括第一运算结果获取模块 331、 第二运算结果获取模块 332、 运算结果判断模块 333 以及报文接收模块 334。
     该第一运算结果获取模块 331, 用于将该属性条件与掩码条件进行相与运算, 获得 第一运算结果。
     该第二运算结果获取模块 332, 用于将该报文的实际属性条件与掩码条件进行相 与运算, 获得第二运算结果。
     该运算结果判断模块 333, 用于判断该第一运算结果与第二运算结果是否相等。
     在本发明第二实施例中, 条件配置单元 31 首先配置属性条件, 再根据该属性条件 配置相应的掩码条件, 在网络上传来报文时, 实际属性条件获取单元 32 获取该报文的实际 属性条件, 最后报文匹配单元 33 根据配置的属性条件、 掩码条件以及实际属性条件匹配该 报文。 由于可以预先配置属性条件以及掩码, 并根据配置的属性条件以及掩码匹配报文, 因
     此能够灵活匹配报文的各个属性值, 具有较强的兼容性。
     本发明实施例在预配置报文的属性条件后, 再根据预配置的报文属性条件选择相 对应的掩码, 在网络上传来一个报文时, 获取该报文在链路层、 网络层、 运输层、 应用层中的 多个实际属性值组成的实际属性条件, 最后比较属性条件与掩码条件进行相与运算后所获 得的第一运算结果和实际属性条件与掩码条件进行相与运算后所获得的第二运算结果, 若 两者相等, 则报文匹配成功, 若两者不相等, 则报文匹配不成功。由于可以根据预先配置的 掩码条件和掩码条件匹配报文, 因此能够灵活匹配报文的各个属性值, 具有较强的兼容性。
     以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。

一种以太网报文匹配方法、装置及终端.pdf_第1页
第1页 / 共12页
一种以太网报文匹配方法、装置及终端.pdf_第2页
第2页 / 共12页
一种以太网报文匹配方法、装置及终端.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种以太网报文匹配方法、装置及终端.pdf》由会员分享,可在线阅读,更多相关《一种以太网报文匹配方法、装置及终端.pdf(12页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102624600 A (43)申请公布日 2012.08.01 C N 1 0 2 6 2 4 6 0 0 A *CN102624600A* (21)申请号 201110031168.5 (22)申请日 2011.01.28 H04L 12/56(2006.01) H04L 29/06(2006.01) (71)申请人深圳市恒扬科技有限公司 地址 518000 广东省深圳市南山区科技园北 区朗山路嘉达大厦主楼6层 (72)发明人欧森豪 (74)专利代理机构深圳中一专利商标事务所 44237 代理人张全文 (54) 发明名称 一种以太网报文匹配方法、装置及终端 (57。

2、) 摘要 本发明适用于信息处理领域,提供了一种以 太网报文匹配方法、装置及终端。所述方法包括下 述步骤:预配置属性条件和掩码条件;接收报文 并获取所述报文的实际属性条件;根据所述属性 条件、掩码条件以及所述报文的实际属性条件匹 配所述报文。本发明实施例可以根据预先配置的 掩码条件和掩码条件匹配报文,因此能够灵活匹 配报文的各个属性值,具有较强的兼容性。 (51)Int.Cl. 权利要求书1页 说明书8页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 8 页 附图 2 页 1/1页 2 1.一种以太网报文匹配方法,其特征在于,所述方法包括下述步。

3、骤: 预配置属性条件和掩码条件; 接收报文并获取所述报文的实际属性条件; 根据所述属性条件、掩码条件以及所述报文的实际属性条件匹配所述报文。 2.如权利要求1所述的方法,其特征在于, 所述属性条件包括报文在链路层、网络层、运输层、应用层中的多个属性值; 所述掩码条件包括报文在链路层、网络层、运输层、应用层中的多个掩码; 所述实际属性条件包括报文在链路层、网络层、运输层、应用层中的多个实际属性值。 3.如权利要求2所述的方法,其特征在于, 所述掩码条件根据所述属性条件进行相应的配置; 在所述属性条件指定链路层、网络层、运输层、应用层中的一个或多个属性值后,所述 掩码条件指定相应的链路层、网络层、。

4、运输层、应用层中的一个或多个掩码; 所述一个或多个掩码是全为1的二进制数值或全为0的二进制数值或部分为0、部分为 1的二进制数值。 4.如权利要求1所述的方法,其特征在于,所述根据所述属性条件、掩码条件以及所述 报文的实际属性条件匹配所述报文的步骤具体为: 将所述属性条件与掩码条件进行相与运算,获得第一运算结果; 将所述报文的实际属性条件与掩码条件进行相与运算,获得第二运算结果; 判断所述第一运算结果与第二运算结果是否相等,若相等,则报文匹配成功,若不相 等,则报文匹配不成功。 5.一种以太网报文匹配装置,其特征在于,所述装置包括: 条件配置单元,用于预配置属性条件和掩码条件; 实际属性条件获。

5、取单元,用于接收报文并获取所述报文的实际属性条件; 报文匹配单元,用于根据所述属性条件、掩码条件以及所述报文的实际属性条件匹配 所述报文。 6.如权利要求5所述的装置,其特征在于, 所述属性条件包括链路层、网络层、运输层、应用层中的一个或多个属性值; 所述掩码条件包括链路层、网络层、运输层、应用层中的一个或多个掩码; 所述实际属性条件包括报文在链路层、网络层、运输层、应用层中的一个或多个实际属 性值。 7.如权利要求5所述的装置,其特征在于,所述报文匹配单元包括: 第一运算结果获取模块,用于将所述属性条件与掩码条件进行相与运算,获得第一运 算结果; 第二运算结果获取模块,用于将所述报文的实际属。

6、性条件与掩码条件进行相与运算, 获得第二运算结果; 运算结果判断模块,判断所述第一运算结果与第二运算结果是否相等。 8.一种包含权利要求5所述的以太网报文匹配装置的终端。 权 利 要 求 书CN 102624600 A 1/8页 3 一种以太网报文匹配方法、 装置及终端 技术领域 0001 本发明属于信息处理领域,尤其涉及一种以太网报文匹配方法、装置及终端。 背景技术 0002 一个报文通常包含源ip、目的ip等属性值,这些属性值由0.5字节或者1字节或 者2字节或者4字节等构成,当然也可能由1bit构成。 0003 匹配一个报文就是匹配报文的各个属性值。现有方法采用正掩码或者反掩码匹 配报文。

7、的内容,其中,正掩码是高位为全1,低位为全0的二进制值,而反掩码则反之,是 高位为全0,低位为全1的二进制值。例如,若要匹配ip地址为192.168.10.1的网段: 192.168.0.0,则可采用正掩码255.255.0.0跟192.168.10.1取与获得,即将上述十进制的 正掩码255.255.0.0以及ip地址192.168.10.1分别转为二进制后再分别取与,最后将得 到的二进制值转为十进制值即可得到192.168.0.0;若要匹配ip地址为192.168.10.1的 主机段:0.0.10.1,则可采用反掩码0.0.255.255跟192.168.1 0.1取与获得。 0004 现。

8、有的报文匹配方法在匹配报文时不够灵活。例如采用掩码或反掩码在匹配报文 属性的中间内容时就显得力不从心,假设要匹配ip地址为192.168.10.1的0.0.10.0这个 主机段,则不能采用掩码或者反掩码与192.168.10.1取与获得。此外,采用掩码或反掩码 匹配报文需考虑报文的所有属性,兼容性差,造成匹配报文的工作量过大。例如在匹配报文 的源ip时,需要指出源ip的值和掩码或者指出ip和反掩码,在匹配目的ip时,需要指出 目的ip的值和掩码或者指出目的ip和反掩码。 发明内容 0005 本发明实施例提供了一种以太网报文匹配方法,旨在解决现有的报文匹配方法在 匹配报文时不够灵活以及兼容性差的。

9、问题。 0006 本发明实施例是这样实现的,一种以太网报文匹配方法,所述方法包括下述步 骤: 0007 预配置属性条件和掩码条件; 0008 接收报文并获取所述报文的实际属性条件; 0009 根据所述属性条件、掩码条件以及所述报文的实际属性条件匹配所述报文。 0010 本发明实施例的另一目的在于提供一种以太网报文匹配装置,所述装置包括: 0011 条件配置单元,用于预配置属性条件和掩码条件; 0012 实际属性条件获取单元,用于接收报文并获取所述报文的实际属性条件; 0013 报文匹配单元,用于根据所述属性条件、掩码条件以及所述报文的实际属性条件 匹配所述报文。 0014 本发明实施例的另一目。

10、的在于提供包括上述以太网报文匹配装置的终端。 0015 本发明实施例在预配置报文的属性条件后,再根据预配置的报文属性条件选择相 对应的掩码,在网络上传来一个报文时,获取该报文在链路层、网络层、运输层、应用层中的 说 明 书CN 102624600 A 2/8页 4 多个实际属性值组成的实际属性条件,最后比较属性条件与掩码条件进行相与运算后所获 得的第一运算结果和实际属性条件与掩码条件进行相与运算后所获得的第二运算结果,若 两者相等,则报文匹配成功,若两者不相等,则报文匹配不成功。由于可以根据预先配置的 掩码条件和掩码条件匹配报文,因此能够灵活匹配报文的各个属性值,具有较强的兼容性。 附图说明 。

11、0016 图1是本发明第一实施例提供的以太网报文匹配方法流程; 0017 图2是本发明第二实施例提供的tcp/ip协议族的组成; 0018 图3是本发明第三实施例提供的以太网报文匹配装置结构。 具体实施方式 0019 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 0020 本发明实施例首先预配置报文的属性条件,再根据该属性条件预配置掩码条件, 在网络上传来一个报文时,获取该报文的实际属性条件,最后根据预配置的属性条件、掩码 条件以及获取的报文实际属性条件匹配该报文。。

12、 0021 为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。 0022 实施例一: 0023 图1示出了本发明第一实施例提供的以太网报文匹配方法,在本实施例中,根据 预配置的属性条件、掩码条件以及获取的报文实际属性条件进行报文匹配,详述如下: 0024 在步骤S11中,预配置属性条件和掩码条件。 0025 本实施例中,预配置的报文属性条件包括该报文在链路层、网络层、运输层、应用 层中的多个属性值,在预配置了报文的属性条件后再配置该报文在链路层、网络层、运输 层、应用层中的多个掩码。 0026 若指定获取运输层中192.168.1.X网段的udp报文,该X的值可以为0255中 的任一。

13、个值。首先将网段192.168.1.X转为16进制后获得的前3部分值分别为:0xC0、 0XA8、0x01,则预配置的属性条件在运输层的前3个属性值应为0xC0、0xA8、0x01,由于X可 以为0255中的任一个值,因此可以假设预配置的属性条件在运输层的第4个属性值 为0x01,用二进制表示为:11000000、10101000、00000001、00000001。为了匹配中运输层 为192.168.1.X网段的udp报文以及根据预配置的属性条件预配置掩码条件,由于X可以 为0255中的任一个值,则掩码条件在运输层的掩码应为0xFF、0xFF、0xFF以及0x00, 用二进制表示为:1111。

14、1111、11111111、11111111、00000000。在配置了运输层的属性值和 掩码后,再配置网络层的属性值和掩码。将标志报文为udp报文的二进制值00010001转 为16进制后获得的值为0x11,则预配置的属性条件在网络层的属性值为0x11,与该属性 值对应的网络层的掩码应为0xFF。若需要得到0.0.10.0这个主机段,可配置的掩码为 1111.1111.1111.1111。 0027 当然,若对报文在链路层的属性值或者应用层的属性值有特定要求时,也可以对 相应的属性值进行指定,并根据需要选择相应的掩码。 说 明 书CN 102624600 A 3/8页 5 0028 在步骤S。

15、12中,接收报文并获取该报文的实际属性条件。 0029 本实施例中,当网络上传来了一个报文,则获取该报文的实际属性条件。其中,该 报文的实际属性条件包括报文在链路层、网络层、运输层、应用层中的多个实际属性值。 0030 在步骤S13中,根据该属性条件、掩码条件以及该报文的实际属性条件匹配该报 文。 0031 本实施例中,匹配报文有3种情况的匹配:(1)精确匹配,精确匹配是指预配置的 掩码条件是全为1的二进制数值;网络上传输的报文的实际属性条件等于预配置的属性条 件(2)全包含匹配,全包含匹配是指预配置的掩码条件是全为0的二进制数值;网络上传输 的报文的实际属性条件可以为任何值(3)局部匹配,局。

16、部匹配是指预配置的掩码条件部分 为0,部分为1的二进制数值,该预配置的掩码条件仅在与预配置的属性条件指定的链路层 或网络层或运输层或应用层的一个或多个属性值对应的掩码为全为1的二进制数值,在与 属性条件没有要求的属性值对应的掩码则为全为0的二进制数值;网络上传输的报文的实 际属性条件局部等于预配置的属性条件。 0032 当一个报文符合预设的匹配规则时称该报文被匹配中,该匹配规则为:f(attr_ pkt,mask_rule)f(attr_rule,mask_rule),其中f表示相与运算,即f(A,B)A&B,其 中,attr_pkt为报文在链路层、网络层、运输层、应用层中的一个或多个实际属性。

17、值,mask_ rule为报文在链路层、网络层、运输层、应用层中的一个或多个掩码,attr_rule为报文在 链路层、网络层、运输层、应用层中的一个或多个属性值。当网络上来了一个报文,若该报 文的attr_pkt与掩码条件中对应的掩码进行相与运算后所获得的结果等于预配置的掩码 条件中对应的属性值与掩码条件中对应的掩码进行相与运算后所获得的结果,那么称该 attr_pkt被匹配中。如果报文所有的实际属性值都被匹配中,则称该报文被匹配中,如果报 文的部分实际属性值被匹配中,则称该报文被局部匹配中。 0033 本实施例中,若网络上传来的报文被匹配中,或局部匹配中,则存储该报文。当网 络上传来的报文被。

18、匹配中时,说明该报文为查找的报文,则存储该报文。 0034 在本发明第一实施例中,首先预配置报文的属性条件,再根据该属性条件预配置 掩码条件,在网络上传来一个报文时,获取该报文的实际属性条件,最后比较属性条件与掩 码条件进行相与运算后所获得的第一运算结果和实际属性条件与掩码条件进行相与运算 后所获得的第二运算结果,若两者相等,则报文匹配成功,若两者不相等,则报文匹配不成 功。由于可以根据预先配置的掩码条件和掩码条件匹配报文,因此能够灵活匹配报文的各 个属性值,具有较强的兼容性。 0035 为了更清楚地说明匹配以太网报文的方法,下面以具体应用例进行说明。 0036 实施例二: 0037 其中,图。

19、2示出了tcp/ip协议族的组成,由图2可以看出,tcp/ip协议族由链路 层、网络层、运输层、应用层组成,每一层都有相应的协议。 0038 1、假设需要找出ip为192.168.1.X网段的udp报文。 0039 本实施例中,该X可以为0255之间的任一个值。首先分析该报文有哪些属性 值,(1)以太网报文,(2)ip报文,(3)获取ip层的长度,通常为20字节,(4)udp报文,(5) 源ip值为192.168.1.X(X0255)。再根据ip为192.168.1.X网段的udp报文所特有 的属性值预配置报文的属性值条件以及选择相应的掩码条件。其中,预配置的属性条件在 说 明 书CN 102。

20、624600 A 4/8页 6 链路层的属性值以及预配置的掩码条件在链路层的掩码如表1所示。 0040 表1: 0041 0042 其中,预配置的属性条件在网络层、运输层的属性值以及预配置的掩码条件在网 络层以及运输层的掩码如表2所示: 0043 表2: 0044 0045 由于只需找出ip为192.168.1.X网段的udp报文,因此只需预配置网络层的属性 值为0x11,该0x11为udp报文的标识,配置运输层的前3个属性值为0xC0、0xA8、0x01,其 他的属性值可以为任意值,比如报文在运输层的第4个属性值可以为0x01。在预配置属性 条件时,只需保证在特定的链路层、网络层、运输层、应。

21、用层中的属性值为所需找出的报文 说 明 书CN 102624600 A 5/8页 7 的属性值即可,其余属性值不作限定。在配置了属性条件后,再配置掩码条件。根据配置的 掩码条件,该掩码条件在运输层的掩码分别为:0xFF、0xFF、0xFF、0xFF,在网络层的掩码为 0xFF。所有在链路层、网络层、运输层、应用层中配置的属性值和掩码组合成整个报文的属 性条件和掩码添加。使用16进制表示如下: 0046 属性条件:000000000000 000000000000 0800 4500 00000000000000 11 0000C0A80100。 0047 掩码条件:000000000000 0。

22、00000000000 FFFF FF00 00000000000000 FF0000 FFFFFF00。 0048 当来了一个以太网报文,若该报文的第13个字节为0x08,则f(attr_pkt,0xFF) f(0x08,0xFF)成立,同理,若该报文的第14个字节为0x00、第15个字节为0x45、第24个字 节为0x11、第27个字节为0xC0、第28个字节为0xA8、第29个字节为0x01以及第30个字 节为0x01,其他字节可以为0也可以为1,则当前报文的全部实际属性值被匹配中,即属性 条件与掩码条件进行相与运算后所得结果等于实际属性条件与掩码条件进行相与运算后 所得结果,整个报文被。

23、匹配中。 0049 2、假设需要找出ip option为0x45XXXX的ip报文。则预配置的属性条件和掩码 条件用16进制分别表示如下: 0050 属性条件:000000000000 000000000000 0800 40000000000000000000000000 00000000000000 45。 0051 掩码条件:00000000000 0000000000000 FFFF F0000000000000000000000000 00000000000000 FF。 0052 当来了一个以太网报文,若该以太网报文在链路层、网络层、运输层、应用层中的 实际属性值与对应的掩码进行相。

24、与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果,即:f(attr_pkt,mask_rule) f(attr_rule,mask_rule),则说明该以太网报文的attr_pkt被匹配中,若该以太网报文的 所有attr_pkt被匹配中,则该以太网报文被匹配中。 0053 3、假设需要找出ip为192.168.1.2的syn报文。 0054 在该应用例中,syn报文是一个tcp报文,则在链路层配置的属性值以及相应的掩 码如表1所示,在网络层配置的属性值以及相应的掩码如表3所示。 0055 表3: 0056 说 明 书CN 102624600 A 。

25、6/8页 8 0057 由于查找的是syn报文,而syn报文中syn标识bit位为1,其他标识bit位为0, 因此配置标识这个属性的属性值为0x02,相应的掩码为0xFF。除配置属性条件中以上属性 值外,允许报文的其他属性值为任意值,即报文的其他属性值可以为0。 0058 这样,预配置的属性条件和掩码条件用16进制分别表示如下: 0059 属性条件:000000000000 000000000000 0800 450000000000000000000000C0A80 102 00000000 00000000000000000000000000 02 0060 掩码条件:0000000000。

26、00 000000000000 FF00 FF0000000000000000000000FFFFF FFF 00000000 00000000000000000000000000 FF 0061 当来了一个以太网报文,若该以太网报文在链路层、网络层、运输层、应用层中的 实际属性值与对应的掩码进行相与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果,即:f(attr_pkt,mask_rule) f(attr_rule,mask_rule),则说明该以太网报文的attr_pkt被匹配中,若该以太网报文的 所有attr_pkt被匹配中,则该以太网报文。

27、被匹配中。 0062 4、假设需要找出ip为192.168.1.2的ack报文,包括syn ack,push ack等其他 ack。 0063 在该例子中,预配置的属性条件中前几个属性值与找出ip为192.168.1.2的syn 报文对应的属性值相同,唯一不同的是ack标识的属性值。由于tcp报文的标识由“保留、 保留、urg、ack、psh、syn、fin”这8bit组成,因此只要保证ack标识bit位为1,就能保证 报文是一个ack报文,即ack bit位的属性值attr_rule必须配置为1,相应的掩码mask_ rule必须配置为1,故标识这个8bit属性值的attr_rule为0x1。

28、0,mask_rule为0x10,以 使f(attr_pkt,0x10)f(0x10,0x10)成立。预配置的属性条件和掩码条件用16进制分 别表示如下: 说 明 书CN 102624600 A 7/8页 9 0064 属性条件: 0065 00000000000 0000000000000 0800 450000000000000000000000 C0A8010200000000 00000000000000000000000000 10 0066 掩码条件: 0067 000000000000 000000000000 FF00 FF0000000000000000000000 FFFF。

29、FFFF00000000 00000000000000000000000000 10 0068 当来了一个以太网报文,若该以太网报文在链路层、网络层、运输层、应用层中的 实际属性值与对应的掩码进行相与运算后所得的结果等于属性条件中与该实际属性值对 应的属性值与相同的掩码进行相与运算后所得的结果,即:f(attr_pkt,mask_rule) f(attr_rule,mask_rule),则说明该以太网报文的attr_pkt被匹配中,若该以太网报文的 所有attr_pkt被匹配中,则该以太网报文被匹配中。 0069 实施例三: 0070 图3示出了本发明第三实施例提供的以太网报文匹配装置结构,为。

30、了便于说明, 仅示出了与本发明实施例相关的部分。 0071 该以太网报文匹配装置可以用于通过有线或者无线网络连接服务器的各种信息 处理终端,例如移动电话、口袋计算机(Pocket Personal Computer,PPC)、掌上电脑、计算 机、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)等,可以是运行于这些 终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这 些终端中或者运行于这些终端的应用系统中,其中: 0072 条件配置单元31,用于预配置属性条件和掩码条件。 0073 本实施例中,预配置的报文属性条件包括该报文在链。

31、路层、网络层、运输层、应用 层中的多个属性值,在预配置了报文的属性条件后再根据属性条件配置该报文在链路层、 网络层、运输层、应用层中的多个掩码。 0074 实际属性条件获取单元32,用于接收报文并获取该报文的实际属性条件。 0075 本实施例中,该实际属性条件包括报文在链路层、网络层、运输层、应用层中的一 个或多个实际属性值。当网络上传来了一个报文,则获取组成该报文多个实际属性值。 0076 报文匹配单元33,用于根据该属性条件、掩码条件以及该报文的实际属性条件匹 配该报文 0077 作为本发明的另一个实施例,该报文匹配单元33包括第一运算结果获取模块 331、第二运算结果获取模块332、运算。

32、结果判断模块333以及报文接收模块334。 0078 该第一运算结果获取模块331,用于将该属性条件与掩码条件进行相与运算,获得 第一运算结果。 0079 该第二运算结果获取模块332,用于将该报文的实际属性条件与掩码条件进行相 与运算,获得第二运算结果。 0080 该运算结果判断模块333,用于判断该第一运算结果与第二运算结果是否相等。 0081 在本发明第二实施例中,条件配置单元31首先配置属性条件,再根据该属性条件 配置相应的掩码条件,在网络上传来报文时,实际属性条件获取单元32获取该报文的实际 属性条件,最后报文匹配单元33根据配置的属性条件、掩码条件以及实际属性条件匹配该 报文。由于。

33、可以预先配置属性条件以及掩码,并根据配置的属性条件以及掩码匹配报文,因 说 明 书CN 102624600 A 8/8页 10 此能够灵活匹配报文的各个属性值,具有较强的兼容性。 0082 本发明实施例在预配置报文的属性条件后,再根据预配置的报文属性条件选择相 对应的掩码,在网络上传来一个报文时,获取该报文在链路层、网络层、运输层、应用层中的 多个实际属性值组成的实际属性条件,最后比较属性条件与掩码条件进行相与运算后所获 得的第一运算结果和实际属性条件与掩码条件进行相与运算后所获得的第二运算结果,若 两者相等,则报文匹配成功,若两者不相等,则报文匹配不成功。由于可以根据预先配置的 掩码条件和掩码条件匹配报文,因此能够灵活匹配报文的各个属性值,具有较强的兼容性。 0083 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。 说 明 书CN 102624600 A 10 1/2页 11 图1 图2 说 明 书 附 图CN 102624600 A 11 2/2页 12 图3 说 明 书 附 图CN 102624600 A 12 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1