CN111935021B - 一种快速匹配网络数据包的方法及*** - Google Patents

一种快速匹配网络数据包的方法及*** Download PDF

Info

Publication number
CN111935021B
CN111935021B CN202011028474.9A CN202011028474A CN111935021B CN 111935021 B CN111935021 B CN 111935021B CN 202011028474 A CN202011028474 A CN 202011028474A CN 111935021 B CN111935021 B CN 111935021B
Authority
CN
China
Prior art keywords
network connection
network
quintuple information
hash value
information
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.)
Active
Application number
CN202011028474.9A
Other languages
English (en)
Other versions
CN111935021A (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.)
Aojie Intelligent Technology Shanghai Co ltd
Original Assignee
Aojie Intelligent Technology Shanghai Co ltd
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 Aojie Intelligent Technology Shanghai Co ltd filed Critical Aojie Intelligent Technology Shanghai Co ltd
Priority to CN202011028474.9A priority Critical patent/CN111935021B/zh
Publication of CN111935021A publication Critical patent/CN111935021A/zh
Application granted granted Critical
Publication of CN111935021B publication Critical patent/CN111935021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address 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
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种快速匹配网络数据包的方法。步骤S10:在内部缓存中设置表一至表六,在外部存储器中设置表十一至表十四。步骤S20:读取网络数据包并提取五元组。步骤S30:计算哈希值。步骤S40:将计算出的哈希值与表一或表二中作为索引的哈希值进行匹配。步骤S50:判断表一或表二中匹配的表项记录的五元组是否存在于表五或表六中。步骤S60:比较网络数据包的五元组以及在表五或表六或表十一或表十二中读取的五元组。步骤S70:判断表一或表二中匹配的表项是否有碰撞表项记录在表三或表四中。本申请动态实时更新匹配内容,选出匹配的网络数据包进行特殊处理,过滤掉不匹配的网络数据包进行普通处理。

Description

一种快速匹配网络数据包的方法及***
技术领域
本申请涉及一种网络数据包的处理方法。
背景技术
网络设备的不同网络业务通常有不同的优先级、带宽等特殊需求,这些特殊需求通常以不同的网络连接的五元组信息来区分。所述网络连接的五元组信息是指网络连接的源IP地址、目的IP地址、源端口、目的端口、协议。接收设备需要对这些具有特殊需求的网络业务的数据包进行特殊处理,如优先处理、通过硬件和/或软件加速处理、分配更多带宽等等。
发明内容
本申请所要解决的技术问题是提供一种快速匹配网络数据包的方法,从网络设备上的所有网络连接中根据配置选取属于某些网络连接的数据包进行特殊处理,对其他网络连接的数据包进行普通处理。
为解决上述技术问题,本申请提出了一种快速匹配网络数据包的方法,包括如下步骤。步骤S10:在网络设备的内部缓存中设置表一至表六,在网络设备的外部存储器中设置表十一至表十四。表一中,每一表项是以IPv4网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv4网络连接的五元组信息是否存在于表五中;是否存在于表十一中;如存在于表五中,在表五中的位置;如存在碰撞情形,碰撞表项在表三中的位置。表二中,每一表项是以IPv6网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv6网络连接的五元组信息是否存在于表六中;是否存在于表十二中;如存在于表六中,在表六中的位置;如存在碰撞情形,碰撞表项在表四中的位置。表三中,每一表项记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;如存在于表十三中,在表十三中的位置;是否存在于表五中;如存在于表五中,在表五中的位置。表四中,每一表项记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;如存在于表十四中,在表十四中的位置;是否存在于表六中;如存在于表六中,在表六中的位置。表五用来记录多条IPv4网络连接的五元组信息。表六用来记录多条IPv6网络连接的五元组信息。表十一用来记录多条IPv4网络连接的五元组信息及其哈希值;表五是表十一的一个子集。表十二用来记录多条IPv6网络连接的五元组信息及其哈希值;表六是表十二的一个子集。表十三用来记录存在哈希值碰撞情形时的IPv4网络连接的五元组信息。表十四用来记录存在哈希值碰撞情形时的IPv6网络连接的五元组信息。步骤S20:读取网络数据包,并提取网络数据包对应的网络连接的五元组信息。步骤S30:计算网络数据包对应的网络连接的五元组信息的哈希值。步骤S40:将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与表一或表二中作为索引的哈希值进行匹配。如果找到匹配的表项,进入步骤S50。如果未找到匹配的表项,对该网络数据包进行普通处理。步骤S50:判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于表五或表六中。如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表五或表六中的位置。如果不是,根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于表十一或表十二中;如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表十一或表十二中的位置;如果不是,对该网络数据包进行普通处理。步骤S60:比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息。如果两者完全一致,对该网络数据包进行特殊处理。如果两者不完全一致,进入步骤S70。步骤S70:判断表一或表二中匹配的表项是否有碰撞表项记录在表三或表四中。如果是,根据表一或表二中匹配的表项,在表三或表四中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在表十三或表十四的位置;然后比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息;如果任何一次比较完全一致,对该网络数据包进行特殊处理;如果全部比较都不一致,对该网络数据包进行普通处理。如果否,对该网络数据包进行普通处理。
进一步地,表一、表二、表十一、表十二记录的表项数量均为网络设备支持进行特殊处理的最大网络连接数M1;假设哈希值以H位二进制比特存储,那么M1满足2H–1<M1≤2H
进一步地,假如有K个不同的IPv4网络连接的五元组信息生成的哈希值一样,那么称这K个IPv4网络连接的五元组信息的哈希值碰撞;此时,某一个表项记录在表一中,对应的一条IPv4网络连接的五元组信息记录在表五或表十一;存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在表三中,对应的K-1条IPv4网络连接的五元组信息记录在表十三中。假如有K个不同的IPv6网络连接的五元组信息生成的哈希值一样,那么称这K个IPv6网络连接的五元组信息的哈希值碰撞;此时,某一个表项记录在表二中,对应的一条IPv6网络连接的五元组信息记录在表六或表十二中;存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在表四中,对应的K-1条IPv6网络连接的五元组信息记录在表十四中。
进一步地,表三、表四、表十三、表十四记录的表项数量均为C;假设哈希算法对网络连接的五元组信息的碰撞率为p,p<1,那么C满足C/2<M1×p≤C。
进一步地,表五、表六记录的表项数量均为M2,M2<M1。
进一步地,所述步骤S60中,如果该网络数据包对应的网络连接的五元组信息与在表五或表六或表十一或表十二中读取的网络连接的五元组信息完全一致,对该网络数据包进行特殊处理的同时,还进行如下操作。如果根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息未记载在表五或表六中、但记载在表十一或表十二中,则将表十一或表十二中对应的网络连接的五元组信息及其哈希值填入表五或表六的空闲项中;如果表五或表六中无空闲项,则采用最近最少使用LRU算法删除最近最少使用的一项,然后再将表十一或表十二中对应的网络连接的五元组信息及其哈希值填入表五或表六的空闲项中。
进一步地,所述步骤S10中,在网络设备的外部存储器中还设置表七至表八;表一所记载内容与表七保持同步;表二所记载内容与表八保持同步。根据表七或表八来同步更新表一或表二包括如下步骤。步骤S81:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在表七或表八未记载、且新的网络连接的五元组信息在表十一或表十二或表十三或表十四中未记载时,网络设备将该新的网络连接的哈希值及相关信息记录在表七或表八中,还将该网络连接的五元组信息记录在表十一或表十二中。步骤S82:网络设备开启表一或表二的硬件锁,将表七或表八更新的内容同步到表一或表二中。步骤S83:待同步结束后,网络设备关闭表一或表二的硬件锁。
进一步地,如网络设备检测到原记载于表一或表二的某个表项对应的网络连接断开,则从表一或表二中删除已断开的网络连接的哈希值所对应的表项;如果已断开的网络连接的五元组信息记录在表五或表六中,则同时从表五或表六中删除已断开的网络连接的五元组信息。
进一步地,所述步骤S10中,在网络设备的外部存储器中还设置表九至表十。表三所记载内容中,存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;如存在于表十三中,在表十三中的位置这两项内容与表九保持同步。表四所记载内容中,存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;如存在于表十四中,在表十四中的位置这两项内容与表十保持同步。根据表九或表十来同步更新表三或表四包括如下步骤。步骤S91:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在表七或表八有记载相应的哈希值存在碰撞情形、且新的网络连接的五元组信息在表十一或表十二或表十三或表十四中未记载时,网络设备将该新的网络连接的哈希值及相关信息记录在表九或表十中,还将该网络连接的五元组信息记录在表十三或表十四中。步骤S92:网络设备开启表三或表四的硬件锁,将表九或表十更新的内容同步到表三或表四中。步骤S93:待同步结束后,网络设备关闭表三或表四的硬件锁。
进一步地,如网络设备检测到原记载于表三或表四的某个表项对应的网络连接断开,则从表三或表四中删除已断开的网络连接的哈希值所对应的表项;如果已断开的网络连接的五元组信息记录在表十三或表十四中,则同时从表十三或表十四中删除已断开的网络连接的五元组信息。
本申请还提出了一种快速匹配网络数据包的***,包括设置单元、提取单元、计算单元、匹配单元一、匹配单元二、匹配单元三、碰撞检测单元、特殊处理单元和普通处理单元。所述设置单元用来在网络设备的内部缓存中设置表一至表六,在网络设备的外部存储器中设置表十一至表十四。表一中,每一表项是以IPv4网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv4网络连接的五元组信息是否存在于表五中;是否存在于表十一中;如存在于表五中,在表五中的位置;如存在碰撞情形,碰撞表项在表三中的位置。表二中,每一表项是以IPv6网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv6网络连接的五元组信息是否存在于表六中;是否存在于表十二中;如存在于表六中,在表六中的位置;如存在碰撞情形,碰撞表项在表四中的位置。表三中,每一表项记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;如存在于表十三中,在表十三中的位置;是否存在于表五中;如存在于表五中,在表五中的位置。表四中,每一表项记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;如存在于表十四中,在表十四中的位置;是否存在于表六中;如存在于表六中,在表六中的位置。表五用来记录多条IPv4网络连接的五元组信息。表六用来记录多条IPv6网络连接的五元组信息。表十一用来记录多条IPv4网络连接的五元组信息及其哈希值;表五是表十一的一个子集。表十二用来记录多条IPv6网络连接的五元组信息及其哈希值;表六是表十二的一个子集。表十三用来记录存在哈希值碰撞情形时的IPv4网络连接的五元组信息。表十四用来记录存在哈希值碰撞情形时的IPv6网络连接的五元组信息。所述提取单元用来读取网络数据包,并提取网络数据包对应的网络连接的五元组信息。所述计算单元用来计算网络数据包对应的网络连接的五元组信息的哈希值。所述匹配单元一用来将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与表一或表二中作为索引的哈希值进行匹配。如果找到匹配的表项,将表一或表二中匹配的表项交由匹配单元二处理。如果未找到匹配的表项,将该网络数据包交由普通处理单元。所述匹配单元二用来判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于表五或表六中。如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表五或表六中的位置。如果不是,根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于表十一或表十二中;如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表十一或表十二的位置;如果不是,将该网络数据包交由普通处理单元。所述匹配单元三用来比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息。如果两者完全一致,将该网络数据包交由特殊处理单元。如果两者不完全一致,将该网络数据包交由碰撞检测单元处理。所述碰撞检测单元用来判断该网络数据包对应的网络连接的五元组信息的哈希值在表一或表二中匹配的表项是否有碰撞表项记录在表三或表四中。如果是,根据表一或表二中匹配的表项,在表三或表四中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在表十三或表十四的位置;所述碰撞检测单元比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息;如果任何一条比较完全一致,将该网络数据包交由特殊处理单元;如果全部不一致,将该网络数据包交由普通处理单元。如果否,将该网络数据包交由普通处理单元。所述特殊处理单元用来对网络数据包进行特殊处理。所述普通处理单元用来对网络数据包进行常规处理。
本申请取得的技术效果是:通过***控制,动态实时更新匹配内容,选出匹配的网络数据包,过滤掉不匹配的网络数据包。网络设备需要快速准确匹配过滤网络数据包,将匹配条件的网络数据包筛选出来特殊处理,而不满足匹配条件的网络数据包就做普通处理;当需求或者环境发生变化时,网络设备能够实时更新匹配过滤内容,动态调整。
附图说明
图1是本申请提出的快速匹配网络数据包的方法的流程图。
图2是本申请根据外部存储器中的表七或表八来同步更新内部缓存中的表一或表二的一种实现方法的流程图。
图3是本申请根据外部存储器中的表九或表十来同步更新内部缓存中的表三或表四的一种实现方法的流程图。
图4是本申请提出的快速匹配网络数据包的***的结构示意图。
图中附图标记说明:10为设置单元、20为提取单元、30为计算单元、40为匹配单元一、50为匹配单元二、60为匹配单元三、70为碰撞检测单元、80为特殊处理单元、90为普通处理单元。
具体实施方式
请参阅图1,本申请提出的快速匹配网络数据包的方法包括如下步骤。
步骤S10:在网络设备的内部缓存中设置表一至表六,用于硬件加速处理;在网络设备的外部存储器中设置表十一至表十四,用于软件记录、更新、维护状态。
表一是快速查询表内部IPv4版,每一表项是以IPv4网络连接的五元组信息的哈希值(Hash value,也称散列值)为索引,记录该哈希值对应的IPv4网络连接的五元组信息是否存在于五元组表内部IPv4版(表五)中;还记录该哈希值对应的IPv4网络连接的五元组信息是否存在于五元组表外部IPv4版(表十一)中;还记录该哈希值对应的IPv4网络连接的五元组信息如存在于表五中,那么在表五中的位置;还记录该哈希值如存在碰撞情形,则碰撞表项在碰撞快速查询表内部IPv4版(表三)中的位置。表一记录的表项数量为网络设备支持进行特殊处理的最大网络连接数M1。假设哈希值以H位二进制比特(bit,也称位)存储,那么M1满足2H–1<M1≤2H
表二是快速查询表内部IPv6版,每一表项是以IPv6网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv6网络连接的五元组信息是否存在于五元组表内部IPv6版(表六)中;还记录该哈希值对应的IPv6网络连接的五元组信息是否存在于五元组表外部IPv6版(表十二)中;还记录该哈希值对应的IPv6网络连接的五元组信息如存在于表六中,那么在表六中的位置;还记录该哈希值如存在碰撞情形,则碰撞表项在碰撞快速查询表内部IPv6版(表四)中的位置。表二记录的表项数量为M1。假设哈希值以H位二进制比特存储,那么M1满足2H–1<M1≤2H
表三是碰撞快速查询表内部IPv4版,用来记录存在哈希值碰撞情形时的IPv4碰撞表项。每一条IPv4碰撞表项记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于碰撞五元组表外部IPv4版(表十三)中;还记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息如存在于表十三中,那么在表十三中的位置;还记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于五元组表内部IPv4版(表五)中;还记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息如存在于表五中,那么在表五中的位置。由一个确定的IPv4网络连接的五元组信息能生成一个确定的哈希值。但是反过来,一个确定的哈希值,可能对应着一个或多个IPv4网络连接的五元组信息。假如有K个不同的IPv4网络连接的五元组信息生成的哈希值一样,那么称这K个IPv4网络连接的五元组信息的哈希值碰撞。此时,某一个表项记录在快速查询表内部IPv4版(表一)中,对应的一条IPv4网络连接的五元组信息记录在五元组表内部IPv4版(表五)或五元组表外部IPv4版(表十一);存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在碰撞快速查询表内部IPv4版(表三)中,对应的K-1条IPv4网络连接的五元组信息记录在碰撞五元组表外部IPv4版(表十三)中。表三记录的表项数量为C。假设哈希算法对IPv4网络连接的五元组信息的碰撞率为p,p<1,那么C满足C/2<M1×p≤C。
表四是碰撞快速查询表内部IPv6版,用来记录存在哈希值碰撞情形时的IPv6碰撞表项。每一条IPv6碰撞表项记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于碰撞五元组表外部IPv6版(表十四)中;还记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息如存在于表十四中,那么在表十四中的位置;还记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于五元组表内部IPv6版(表六)中;还记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息如存在于表六中,那么在表六中的位置。由一个确定的IPv6网络连接的五元组信息能生成一个确定的哈希值。但是反过来,一个确定的哈希值可能对应着一个或多个IPv6网络连接的五元组信息。假如有K个不同的IPv6网络连接的五元组信息生成的哈希值一样,那么称这K个IPv6网络连接的五元组信息的哈希值碰撞。此时,某一个表项记录在快速查询表内部IPv6版(表二)中,对应的一条IPv6网络连接的五元组信息记录在五元组表内部IPv6版(表六)或五元组表外部IPv6版(表十二)中;存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在碰撞快速查询表内部IPv6版(表四)中,对应的K-1条IPv6网络连接的五元组信息记录在碰撞五元组表外部IPv6版(表十四)中。表四记录的表项数量为C。假设哈希算法对IPv6网络连接的五元组信息的碰撞率为p,p<1,那么C满足C/2<M1×p≤C。
表五是五元组表内部IPv4版,用来记录多条IPv4网络连接的五元组信息。表五记录的表项数量为M2。M2<M1。优选地,M2<M1/10,以便节省网络设备的内部缓存资源。
表六是五元组表内部IPv6版,用来记录多条IPv6网络连接的五元组信息。表六记录的表项数量为M2。
表十一是五元组表外部IPv4版,用来记录多条IPv4网络连接的五元组信息及其哈希值。表十一记录的表项数量为M1。表五是表十一的一个子集。本申请是根据外部存储器中的表十一来配置内部缓存中的表五。
表十二是五元组表外部IPv6版,用来记录多条IPv6网络连接的五元组信息及其哈希值。表十二记录的表项数量为M1。表六是表十二的一个子集。本申请是根据外部存储器中的表十二来配置内部缓存中的表六。
表十三是碰撞五元组表外部IPv4版,用来记录存在哈希值碰撞情形时的IPv4网络连接的五元组信息。表十三记录的表项数量为C。假如有K个不同的IPv4网络连接的五元组信息存在哈希值碰撞,其中一条IPv4网络连接的五元组信息记录在五元组表内部IPv4版(表五)或五元组表外部IPv4版(表十一),另外K-1条IPv4网络连接的五元组信息记录在碰撞五元组表外部IPv4版(表十三)中。
表十四是碰撞五元组表外部IPv6版,用来记录存在哈希值碰撞情形时的IPv6网络连接的五元组信息。表十四记录的表项数量为C。假如有K个不同的IPv6网络连接的五元组信息存在哈希值碰撞,其中一条IPv6网络连接的五元组信息记录在五元组表内部IPv6版(表六)或五元组表外部IPv6版(表十二),另外K-1条IPv6网络连接的五元组信息记录在碰撞五元组表外部IPv6版(表十四)中。
步骤S20:网络设备从外部存储器读取接收到的网络数据包,并提取网络数据包对应的网络连接的五元组信息,区分IPv4或IPv6网络连接。
步骤S30:网络设备计算网络数据包对应的网络连接的五元组信息的哈希值。
步骤S40:网络设备将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与快速查询表内部IPv4版(表一)或快速查询表内部IPv6版(表二)中作为索引的哈希值进行匹配。
如果找到匹配的表项,进入步骤S50。
如果未找到匹配的表项,对该网络数据包进行普通处理。
步骤S50:网络设备判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)。
如果是,网络设备根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)中的位置。
如果不是,网络设备根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)。如果是,网络设备根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)的位置。如果不是,对该网络数据包进行普通处理。
步骤S60:网络设备比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息。
如果两者完全一致,对该网络数据包进行特殊处理,例如优先处理、通过硬件和/或软件加速处理、分配更多带宽等等。如果网络设备根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息未记载在五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)、记载在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)中,则将表十一或表十二中哈希值匹配的网络连接的五元组信息填入表五或表六的空闲项中。如果表五或表六中无空闲项,则采用LRU(Least recently used,最近最少使用)算法删除最近最少使用的一项,然后再将表十一或表十二中哈希值匹配的网络连接的五元组信息填入表五或表六的空闲项中。
如果两者不完全一致,进入步骤S70。
步骤S70:网络设备对该网络数据包进行碰撞检测处理。所述碰撞检测处理是指:网络设备判断表一或表二中匹配的表项是否有碰撞表项记录在碰撞快速查询表内部IPv4版(表三)或碰撞快速查询表内部IPv6版(表四)中。
如果是,网络设备根据表一或表二中匹配的表项,在碰撞快速查询表内部IPv4版(表三)或碰撞快速查询表内部IPv6版(表四)中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在碰撞五元组表外部IPv4版(表十三)或碰撞五元组表外部IPv6版(表十四)的位置。网络设备比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息。如果该网络数据包对应的网络连接的五元组信息与任何一条碰撞表项对应的网络连接的五元组信息完全一致,对该网络数据包进行特殊处理,例如优先处理、通过硬件和/或软件加速处理、分配更多带宽等等。如果全部不一致,对该网络数据包进行普通处理。
如果否,对该网络数据包进行普通处理。
作为优选示例,M1的取值为4096,H的取值为12,M2的取值为64,C的取值为256,表一和表二中的每一表项的长度为16比特。
进一步地,在网络设备的外部存储器中还设置表七至表八。
表七是快速查询表外部IPv4版,表一所记载内容原则上与表七完全相同。本申请是根据外部存储器中的表七来同步更新内部缓存中的表一。
表八是快速查询表外部IPv6版,表二所记载内容原则上与表八完全相同。本申请是根据外部存储器中的表八来同步更新内部缓存中的表二。
请参阅图2,这是根据外部存储器中的表七或表八来同步更新内部缓存中的表一或表二的一种实现方法,包括如下步骤。
步骤S81:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在快速查询表外部IPv4版(表七)或快速查询表外部IPv6版(表八)未记载、且新的网络连接的五元组信息在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)或碰撞五元组表外部IPv4版(表十三)或碰撞五元组表外部IPv6版(表十四)中未记载时,网络设备将该新的网络连接的哈希值等相关信息记录在表七或表八中,还将该网络连接的五元组信息记录在表十一或表十二中。
步骤S82:网络设备开启快速查询表内部IPv4版(表一)或快速查询表内部IPv6版(表二)的硬件锁,将表七或表八更新的内容同步到表一或表二中。由于硬件锁开启,在此过程中表一或表二无法被其他硬件逻辑所使用。
步骤S83:待同步结束后,网络设备关闭表一或表二的硬件锁,允许其他硬件逻辑使用。
此外,如网络设备检测到原记载于表一或表二的某个表项对应的网络连接断开,则从表一或表二中删除已断开的网络连接的哈希值所对应的表项。如果已断开的网络连接的五元组信息记录在五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)中,则同时从表五或表六中删除已断开的网络连接的五元组信息。
进一步地,在网络设备的外部存储器中还设置表九至表十。
表九是碰撞快速查询表外部IPv4版,表三所记载内容中,以下两项内容原则上与表九完全相同。内容一:存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于碰撞五元组表外部IPv4版(表十三)中。内容二:存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息如存在于表十三中,那么在表十三中的位置。本申请是根据外部存储器中的表九来同步更新内部缓存中的表三的相关内容。
表十是碰撞快速查询表外部IPv6版,表四所记载内容中,以下两项内容原则上与表十完全相同。内容一:存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于碰撞五元组表外部IPv6版(表十四)中。内容二:存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息如存在于表十四中,那么在表十四中的位置。本申请是根据外部存储器中的表十来同步更新内部缓存中的表四的相关内容。
请参阅图3,这是根据外部存储器中的表九或表十来同步更新内部缓存中的表三或表四中的相关内容的一种实现方法,包括如下步骤。
步骤S91:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在快速查询表外部IPv4版(表七)或快速查询表外部IPv6版(表八)有记载相应的哈希值存在碰撞情形、且新的网络连接的五元组信息在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)或碰撞五元组表外部IPv4版(表十三)或碰撞五元组表外部IPv6版(表十四)中未记载时,网络设备将该新的网络连接的哈希值等相关信息记录在碰撞快速查询表外部IPv4版(表九)或碰撞快速查询表外部IPv6版(表十)中,还将该网络连接的五元组信息记录在表十三或表十四中。
步骤S92:网络设备开启碰撞快速查询表内部IPv4版(表三)或碰撞快速查询表内部IPv6版(表四)的硬件锁,将表九或表十更新的内容同步到表三或表四中。由于硬件锁开启,在此过程中表三或表四无法被其他硬件逻辑所使用。
步骤S93:待同步结束后,网络设备关闭表三或表四的硬件锁,允许其他硬件逻辑使用。
此外,如网络设备检测到原记载于表三或表四的某个表项对应的网络连接断开,则从表三或表四中删除已断开的网络连接的哈希值所对应的表项。如果已断开的网络连接的五元组信息记录在碰撞五元组表外部IPv4版(表十三)或碰撞五元组表外部IPv6版(表十四)中,则同时从表十三或表十四中删除已断开的网络连接的五元组信息。
请参阅图4,本申请提出的快速匹配网络数据包的***包括设置单元10、提取单元20、计算单元30、匹配单元一40、匹配单元二50、匹配单元三60、碰撞检测单元70、特殊处理单元80和普通处理单元90。
设置单元10,用来在网络设备的内部缓存中设置表一至表六,用于硬件加速处理;在网络设备的外部存储器中设置表十一至表十四,用于软件记录、更新、维护状态。
提取单元20,用来从网络设备的外部存储器中读取接收到的网络数据包,并提取网络数据包对应的网络连接的五元组信息,区分IPv4或IPv6网络连接。
计算单元30,用来计算网络数据包对应的网络连接的五元组信息的哈希值。
匹配单元一40,用来将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与快速查询表内部IPv4版(表一)或快速查询表内部IPv6版(表二)中作为索引的哈希值进行匹配。
如果找到匹配的表项,将表一或表二中匹配的表项交由匹配单元二50处理。
如果未找到匹配的表项,将该网络数据包交由普通处理单元90。
匹配单元二50,用来判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)。
如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)中的位置。
如果不是,根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)。如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)的位置。如果不是,将该网络数据包交由普通处理单元90。
匹配单元三60,用来比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息。
如果两者完全一致,将该网络数据包交由特殊处理单元80。如果根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息未记载在五元组表内部IPv4版(表五)或五元组表内部IPv6版(表六)、记载在五元组表外部IPv4版(表十一)或五元组表外部IPv6版(表十二)中,则将表十一或表十二中哈希值匹配的网络连接的五元组信息及其哈希值填入表五或表六的空闲项中。如果表五或表六中无空闲项,则采用LRU算法删除最近最少使用的一项,然后再将表十一或表十二中哈希值匹配的网络连接的五元组信息及其哈希值填入表五或表六的空闲项中。
如果两者不完全一致,将该网络数据包交由碰撞检测单元70处理。
碰撞检测单元70,用来对该网络数据包进行碰撞检测处理。所述碰撞检测处理是指:判断该网络数据包对应的网络连接的五元组信息的哈希值在表一或表二中匹配的表项是否有碰撞表项记录在碰撞快速查询表内部IPv4版(表三)或碰撞快速查询表内部IPv6版(表四)中。
如果是,根据表一或表二中匹配的表项,在碰撞快速查询表内部IPv4版(表三)或碰撞快速查询表内部IPv6版(表四)中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在碰撞五元组表外部IPv4版(表十三)或碰撞五元组表外部IPv6版(表十四)的位置。碰撞检测单元70比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息。如果该网络数据包对应的网络连接的五元组信息与任何一条碰撞表项对应的网络连接的五元组信息完全一致,将该网络数据包交由特殊处理单元80。如果全部不一致,将该网络数据包交由普通处理单元90。
如果否,将该网络数据包交由普通处理单元90。
特殊处理单元80,用来对网络数据包进行特殊处理,例如优先处理、通过硬件和/或软件加速处理、分配更多带宽等等。
普通处理单元90,用来对网络数据包进行常规处理。特殊处理以外的处理方式均为常规处理。
本申请提出的快速匹配网络数据包的方法及***具有如下有益效果。第一,由网络设备的硬件自动完成匹配,节省cpu的处理资源。第二,M1、C、M2、H的取值以及哈希算法、LRY算法等***硬件参数可配置,根据需求实现灵活。第三,根据外部存储器中的表七或表八来同步更新内部缓存中的表一或表二,根据外部存储器中的表九或表十来同步更新内部缓存中的表三或表四,因此匹配内容动态可配置,来决定对哪些网络连接进行特殊处理,控制灵活。第四,在网络设备的内部缓存中设置表一至表六,实现快速精准匹配,延迟小。第五,网络设备的内部缓存和外部存储器具有交互同步设计,节省内部缓存资源。第六,采用哈希值作为表一和表二的索引,加快匹配速度;考虑哈希碰撞情形,增加匹配的准确度。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种快速匹配网络数据包的方法,其特征是,包括如下步骤;
步骤S10:在网络设备的内部缓存中设置表一至表六,在网络设备的外部存储器中设置表十一至表十四;
表一中,每一表项是以IPv4网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv4网络连接的五元组信息是否存在于表五中;是否存在于表十一中;如存在于表五中,在表五中的位置;如存在碰撞情形,碰撞表项在表三中的位置;
表二中,每一表项是以IPv6网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv6网络连接的五元组信息是否存在于表六中;是否存在于表十二中;如存在于表六中,在表六中的位置;如存在碰撞情形,碰撞表项在表四中的位置;
表三中,每一表项记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;如存在于表十三中,在表十三中的位置;是否存在于表五中;如存在于表五中,在表五中的位置;
表四中,每一表项记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;如存在于表十四中,在表十四中的位置;是否存在于表六中;如存在于表六中,在表六中的位置;
表五用来记录多条IPv4网络连接的五元组信息;
表六用来记录多条IPv6网络连接的五元组信息;
表十一用来记录多条IPv4网络连接的五元组信息及其哈希值;表五是表十一的一个子集;
表十二用来记录多条IPv6网络连接的五元组信息及其哈希值;表六是表十二的一个子集;
表十三用来记录存在哈希值碰撞情形时的IPv4网络连接的五元组信息;
表十四用来记录存在哈希值碰撞情形时的IPv6网络连接的五元组信息;
步骤S20:读取网络数据包,并提取网络数据包对应的网络连接的五元组信息;
步骤S30:计算网络数据包对应的网络连接的五元组信息的哈希值;
步骤S40:将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与表一或表二中作为索引的哈希值进行匹配;
如果找到匹配的表项,进入步骤S50;
如果未找到匹配的表项,对该网络数据包进行普通处理;
步骤S50:判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于表五或表六中;
如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表五或表六中的位置;
如果不是,根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于表十一或表十二中;如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表十一或表十二中的位置;如果不是,对该网络数据包进行普通处理;
步骤S60:比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息;
如果两者完全一致,对该网络数据包进行特殊处理;
如果两者不完全一致,进入步骤S70;
步骤S70:判断表一或表二中匹配的表项是否有碰撞表项记录在表三或表四中;
如果是,根据表一或表二中匹配的表项,在表三或表四中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在表十三或表十四的位置;然后比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息;如果任何一次比较完全一致,对该网络数据包进行特殊处理;如果全部比较都不一致,对该网络数据包进行普通处理;
如果否,对该网络数据包进行普通处理。
2.根据权利要求1所述的快速匹配网络数据包的方法,其特征是,表一、表二、表十一、表十二记录的表项数量均为网络设备支持进行特殊处理的最大网络连接数M1;假设哈希值以H位二进制比特存储,那么M1满足2H–1<M1≤2H
3.根据权利要求1所述的快速匹配网络数据包的方法,其特征是,假如有K个不同的IPv4网络连接的五元组信息生成的哈希值一样,那么称这K个IPv4网络连接的五元组信息的哈希值碰撞;此时,某一个表项记录在表一中,对应的一条IPv4网络连接的五元组信息记录在表五或表十一;存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在表三中,对应的K-1条IPv4网络连接的五元组信息记录在表十三中;
假如有K个不同的IPv6网络连接的五元组信息生成的哈希值一样,那么称这K个IPv6网络连接的五元组信息的哈希值碰撞;此时,某一个表项记录在表二中,对应的一条IPv6网络连接的五元组信息记录在表六或表十二中;存在哈希值碰撞情形时的其他K-1个表项称为碰撞表项,记录在表四中,对应的K-1条IPv6网络连接的五元组信息记录在表十四中。
4.根据权利要求2所述的快速匹配网络数据包的方法,其特征是,表三、表四、表十三、表十四记录的表项数量均为C;假设哈希算法对网络连接的五元组信息的碰撞率为p,p<1,那么C满足C/2<M1×p≤C。
5.根据权利要求2所述的快速匹配网络数据包的方法,其特征是,表五、表六记录的表项数量均为M2,M2<M1。
6.根据权利要求1所述的快速匹配网络数据包的方法,其特征是,所述步骤S60中,如果该网络数据包对应的网络连接的五元组信息与在表五或表六或表十一或表十二中读取的网络连接的五元组信息完全一致,对该网络数据包进行特殊处理的同时,还进行如下操作;
如果根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息未记载在表五或表六中、但记载在表十一或表十二中,则将表十一或表十二中对应的网络连接的五元组信息填入表五或表六的空闲项中;如果表五或表六中无空闲项,则采用最近最少使用LRU算法删除最近最少使用的一项,然后再将表十一或表十二中对应的网络连接的五元组信息填入表五或表六的空闲项中。
7.根据权利要求1所述的快速匹配网络数据包的方法,其特征是,所述步骤S10中,在网络设备的外部存储器中还设置表七至表八;表一所记载内容与表七保持同步;表二所记载内容与表八保持同步;
根据表七或表八来同步更新表一或表二包括如下步骤;
步骤S81:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在表七或表八未记载、且新的网络连接的五元组信息在表十一或表十二或表十三或表十四中未记载时,网络设备将该新的网络连接的哈希值及相关信息记录在表七或表八中,还将该网络连接的五元组信息记录在表十一或表十二中;
步骤S82:网络设备开启表一或表二的硬件锁,将表七或表八更新的内容同步到表一或表二中;
步骤S83:待同步结束后,网络设备关闭表一或表二的硬件锁。
8.根据权利要求7所述的快速匹配网络数据包的方法,其特征是,如网络设备检测到原记载于表一或表二的某个表项对应的网络连接断开,则从表一或表二中删除已断开的网络连接的哈希值所对应的表项;如果已断开的网络连接的五元组信息记录在表五或表六中,则同时从表五或表六中删除已断开的网络连接的五元组信息。
9.根据权利要求1所述的快速匹配网络数据包的方法,其特征是,所述步骤S10中,在网络设备的外部存储器中还设置表九至表十;
表三所记载内容中,以下两项内容与表九保持同步;内容一:存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;内容二:存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息如存在于表十三中,在表十三中的位置;
表四所记载内容中,以下两项内容与表十保持同步;内容一:存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;内容二:存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息如存在于表十四中,在表十四中的位置;
根据表九或表十来同步更新表三或表四包括如下步骤;
步骤S91:如网络设备检测到有新的网络连接、且新的网络连接的哈希值在表七或表八有记载相应的哈希值存在碰撞情形、且新的网络连接的五元组信息在表十一或表十二或表十三或表十四中未记载时,网络设备将该新的网络连接的哈希值及相关信息记录在表九或表十中,还将该网络连接的五元组信息记录在表十三或表十四中;
步骤S92:网络设备开启表三或表四的硬件锁,将表九或表十更新的内容同步到表三或表四中;
步骤S93:待同步结束后,网络设备关闭表三或表四的硬件锁。
10.根据权利要求9所述的快速匹配网络数据包的方法,其特征是,如网络设备检测到原记载于表三或表四的某个表项对应的网络连接断开,则从表三或表四中删除已断开的网络连接的哈希值所对应的表项;如果已断开的网络连接的五元组信息记录在表十三或表十四中,则同时从表十三或表十四中删除已断开的网络连接的五元组信息。
11.一种快速匹配网络数据包的***,其特征是,包括设置单元、提取单元、计算单元、匹配单元一、匹配单元二、匹配单元三、碰撞检测单元、特殊处理单元和普通处理单元;
所述设置单元用来在网络设备的内部缓存中设置表一至表六,在网络设备的外部存储器中设置表十一至表十四;
表一中,每一表项是以IPv4网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv4网络连接的五元组信息是否存在于表五中;是否存在于表十一中;如存在于表五中,在表五中的位置;如存在碰撞情形,碰撞表项在表三中的位置;
表二中,每一表项是以IPv6网络连接的五元组信息的哈希值为索引,记录该哈希值对应的IPv6网络连接的五元组信息是否存在于表六中;是否存在于表十二中;如存在于表六中,在表六中的位置;如存在碰撞情形,碰撞表项在表四中的位置;
表三中,每一表项记录存在哈希值碰撞情形时的某一条IPv4网络连接的五元组信息是否存在于表十三中;如存在于表十三中,在表十三中的位置;是否存在于表五中;如存在于表五中,在表五中的位置;
表四中,每一表项记录存在哈希值碰撞情形时的某一条IPv6网络连接的五元组信息是否存在于表十四中;如存在于表十四中,在表十四中的位置;是否存在于表六中;如存在于表六中,在表六中的位置;
表五用来记录多条IPv4网络连接的五元组信息;
表六用来记录多条IPv6网络连接的五元组信息;
表十一用来记录多条IPv4网络连接的五元组信息及其哈希值;表五是表十一的一个子集;
表十二用来记录多条IPv6网络连接的五元组信息及其哈希值;表六是表十二的一个子集;
表十三用来记录存在哈希值碰撞情形时的IPv4网络连接的五元组信息;
表十四用来记录存在哈希值碰撞情形时的IPv6网络连接的五元组信息;
所述提取单元用来读取网络数据包,并提取网络数据包对应的网络连接的五元组信息;
所述计算单元用来计算网络数据包对应的网络连接的五元组信息的哈希值;
所述匹配单元一用来将计算出的网络数据包对应的网络连接的五元组信息的哈希值根据IPv4或IPv6网络连接的不同,分别与表一或表二中作为索引的哈希值进行匹配;
如果找到匹配的表项,将表一或表二中匹配的表项交由匹配单元二处理;
如果未找到匹配的表项,将该网络数据包交由普通处理单元;
所述匹配单元二用来判断表一或表二中匹配的表项记录的网络连接的五元组信息是否存在于表五或表六中;
如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表五或表六中的位置;
如果不是,根据表一或表二中匹配的表项,找到对应的网络连接的五元组信息是否存在于表十一或表十二中;如果是,根据表一或表二中匹配的表项找到对应的网络连接的五元组信息在表十一或表十二的位置;如果不是,将该网络数据包交由普通处理单元;
所述匹配单元三用来比较该网络数据包对应的网络连接的五元组信息、以及在表五或表六或表十一或表十二中读取的网络连接的五元组信息;
如果两者完全一致,将该网络数据包交由特殊处理单元;
如果两者不完全一致,将该网络数据包交由碰撞检测单元处理;
所述碰撞检测单元用来判断该网络数据包对应的网络连接的五元组信息的哈希值在表一或表二中匹配的表项是否有碰撞表项记录在表三或表四中;
如果是,根据表一或表二中匹配的表项,在表三或表四中找到对应的碰撞表项,并根据表三或表四中找到的每一条碰撞表项找到对应的网络连接的五元组信息在表十三或表十四的位置;所述碰撞检测单元比较该网络数据包对应的网络连接的五元组信息、以及在表十三或表十四中读取的每条碰撞表项对应的网络连接的五元组信息;如果任何一条比较完全一致,将该网络数据包交由特殊处理单元;如果全部不一致,将该网络数据包交由普通处理单元;
如果否,将该网络数据包交由普通处理单元;
所述特殊处理单元用来对网络数据包进行特殊处理;
所述普通处理单元用来对网络数据包进行常规处理。
CN202011028474.9A 2020-09-27 2020-09-27 一种快速匹配网络数据包的方法及*** Active CN111935021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011028474.9A CN111935021B (zh) 2020-09-27 2020-09-27 一种快速匹配网络数据包的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011028474.9A CN111935021B (zh) 2020-09-27 2020-09-27 一种快速匹配网络数据包的方法及***

Publications (2)

Publication Number Publication Date
CN111935021A CN111935021A (zh) 2020-11-13
CN111935021B true CN111935021B (zh) 2020-12-25

Family

ID=73333618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011028474.9A Active CN111935021B (zh) 2020-09-27 2020-09-27 一种快速匹配网络数据包的方法及***

Country Status (1)

Country Link
CN (1) CN111935021B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132242B (zh) * 2021-03-19 2022-11-15 翱捷科技股份有限公司 一种网络设备及其共享发送和接收缓存的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070280258A1 (en) * 2006-06-05 2007-12-06 Balaji Rajagopalan Method and apparatus for performing link aggregation
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
CN105357128A (zh) * 2015-10-30 2016-02-24 迈普通信技术股份有限公司 流表创建及查询方法
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN107197461A (zh) * 2017-06-09 2017-09-22 上海寰创通信科技股份有限公司 一种基于Linux***的ipv6报文重定向方法
CN108848034A (zh) * 2018-07-17 2018-11-20 新华三技术有限公司 一种网络设备及表项学习方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533947B (zh) * 2015-09-11 2019-10-08 新华三技术有限公司 报文处理方法及装置
CN111245726A (zh) * 2019-12-27 2020-06-05 国家计算机网络与信息安全管理中心 一种ip网段高效匹配的实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070280258A1 (en) * 2006-06-05 2007-12-06 Balaji Rajagopalan Method and apparatus for performing link aggregation
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
CN105357128A (zh) * 2015-10-30 2016-02-24 迈普通信技术股份有限公司 流表创建及查询方法
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN107197461A (zh) * 2017-06-09 2017-09-22 上海寰创通信科技股份有限公司 一种基于Linux***的ipv6报文重定向方法
CN108848034A (zh) * 2018-07-17 2018-11-20 新华三技术有限公司 一种网络设备及表项学习方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Implementation of single-packet hybrid IP traceback for IPv4 and IPv6 networks;Kamaldeep等;《IET Information Security》;20180201;第12卷(第1期);全文 *
高性能业务路由器***软件研究;吉萌;《万方学位论文库》;20081201;全文 *

Also Published As

Publication number Publication date
CN111935021A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US9871728B2 (en) Exact match hash lookup databases in network switch devices
US6768739B1 (en) Router with a cache having a high hit probability
EP1486040B1 (en) Vlan table management system for memory efficient lookups and inserts in hardware-based packet switches
US10110492B2 (en) Exact match lookup with variable key sizes
US6775281B1 (en) Method and apparatus for a four-way hash table
US8542686B2 (en) Ethernet forwarding database method
US20010028651A1 (en) Cache table management device for router and program recording medium thereof
US20120102055A1 (en) Regular expression matching method and system, and searching device
US20070171911A1 (en) Routing system and method for managing rule entry thereof
EP1156432A2 (en) Apparatus, method, data structure and recording medium for data retrieval by accessing retrieval tables
CN111984835B (zh) 一种IPv4掩码五元组规则存储压缩方法及装置
CN111935021B (zh) 一种快速匹配网络数据包的方法及***
US20190294549A1 (en) Hash Table-Based Mask Length Computation for Longest Prefix Match Caching
CN110912826A (zh) 利用acl扩充ipfix表项的方法及装置
EP2429132B1 (en) Table creating and searching method used by network processor
CN104702508B (zh) 表项动态更新方法及***
CN109522242A (zh) 一种搜索Cache数据的方法和装置
CN115334013B (zh) 一种流量统计方法、网卡及电子设备
CN111865804B (zh) 一种通过硬件发包机制提升路由下发效率的方法及***
JP2009017439A (ja) パケット転送装置およびパケット転送方法。
CN112269784A (zh) 一种基于硬件实现的哈希表结构以及***、查询和删除方法
CN104702507B (zh) 表项动态更新方法及***
US11929837B2 (en) Rule compilation schemes for fast packet classification
US10108677B2 (en) Software precedence in ternary content-addressable memory (TCAM)
Li et al. Optimized hash lookup for bloom filter based packet routing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant