CN116156026B - 一种支持rmt的解析器、逆解析器、解析方法及交换机 - Google Patents

一种支持rmt的解析器、逆解析器、解析方法及交换机 Download PDF

Info

Publication number
CN116156026B
CN116156026B CN202310426812.1A CN202310426812A CN116156026B CN 116156026 B CN116156026 B CN 116156026B CN 202310426812 A CN202310426812 A CN 202310426812A CN 116156026 B CN116156026 B CN 116156026B
Authority
CN
China
Prior art keywords
parser
matrix
message header
mask
protocol
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
CN202310426812.1A
Other languages
English (en)
Other versions
CN116156026A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202310426812.1A priority Critical patent/CN116156026B/zh
Publication of CN116156026A publication Critical patent/CN116156026A/zh
Application granted granted Critical
Publication of CN116156026B publication Critical patent/CN116156026B/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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供一种支持RMT的解析器、逆解析器、解析方法及交换机,解析器包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器。本发明能够提高解析效率,增加解析器的适应性和可扩展性。

Description

一种支持RMT的解析器、逆解析器、解析方法及交换机
技术领域
本发明属于数据交换技术领域,具体是涉及到一种支持RMT的解析器、逆解析器、解析方法及交换机。
背景技术
传统网络交换机在生产时已固化所支持协议类型,用户对设备的编辑能力有限,甚至无法编辑。固化一种协议的交换机生产得越多,对应的协议要想升级时淘汰的设备就越多,这在相当程度上阻碍了网络交换设备的更新换代与敏捷发展。基于此种障碍和需求,软件定义网络的概念被提出,它将网络抽象、解耦、分离为三层,使网络更加敏捷和灵活。被分离开来的数据平面、控制平面和应用平面也将对应的功能进行解耦:应用平面设置网络应用,主要面向用户,让用户无需关心底层细节即可在平面上部署;控制平面承上启下,掌握着全局网络信息,负责转发规则的控制;最底层的数据平面则主要管理和控制网络的硬件转发逻辑,依靠通用的匹配动作表,通过灵活多样的转发规则进行网络间的数据交换。然而,软件定义网络的弊病在于其解析器的设计不支持自定义协议的解析,因而依然无法在不更新硬件设备的情况下支持新协议的处理。
为了解决该问题,开放流协议的提出者,斯坦福大学Clean Slate研究组进一步提出了如图1所示的可重构匹配表架构,这一架构具有可反复配置的匹配表,并且可具备解析自定义协议的功能。可重构匹配表架构提出将开放流协议中匹配-动作的思想应用到报文协议解析中,通过可重构的匹配表支持自定义的协议解析。可重构匹配表架构的关键结构为报文头向量,可编程解析器通过匹配-动作逐步提取数据包的前4096比特向量并循环压入报文头向量来实现协议解析,而用户则通过配置匹配-动作表来实现自定义的协议字段提取,然后通过多个匹配-动作流水级处理后,经可编程逆解析器处理获取修改后报文。
目前解析器的解析机制是对报文头数据进行串行匹配,三态内容寻址储存器每次匹配都需要更新解析器状态,这意味着它必须执行完一次操作后才能继续执行下一次操作。串行匹配机制导致解析器的性能相较于匹配动作阶段较低,很容易成为流水线处理报文速度提升的性能瓶颈。现有的可重构匹配表架构解析器中的数据互联结构采用的是交叉开关矩阵结构,黑点表示横线和竖线连通,数据可以通过。当交叉开关矩阵结构中的输入输出路数数量较大时,时序违例的可能性增大。因此数据位宽较大,互联节点较多时,交叉开关矩阵难以满足较高运行频率的需求。可重构匹配表架构中指出,可重构匹配表交换芯片1GHz频率下其单解析器的处理能力仅有40G比特/秒。另外,可重构匹配表架构仅协议解析时无法隔离不同租户的协议解析需求,导致不同租户的网络配置无法共享同一可重构匹配表架构流水线资源。
发明内容
本发明提供一种支持RMT的解析器、逆解析器、解析方法及交换机,以解决现有的解析效率不高、适配范围较小的问题。
为解决上述技术问题,本发明提出一种支持RMT的解析器,包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器;所述第一报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第一三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第一动作随机存取存储器用于根据所述位置数据生成动作数据;所述向量提取器用于应用逆蝶形网络根据所述动作数据从报文头数据中提取出所需的报文头向量的片段;所述聚合器用于将所需的报文头向量的片段组合起来形成新的报文头向量,并进入流水级;其中,所述掩码矩阵和所述最终匹配表由租户树和协议树生成。
可选的,所述解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,生成掩码矩阵和最终匹配表。
可选的,所述协议字段矩阵中应用12比特或24比特表示租户标识,支持虚拟局域网和虚拟扩展局域网。
可选的,所述向量提取器采用逆蝶形网络完成对报文头向量的片段的提取,其位置编码只和输出位置有关,与输入位置无关。
基于同一发明构思,本发明还提出了一种支持RMT的逆解析器,所述逆解析器包括:第二报文头识别器、第二三态内容寻址存储器、与所述第二三态内容寻址存储器连接的第二动作随机存取存储器、与所述第二动作随机存取存储器连接的向量分散器、以及与所述向量分散器连接的分散器;所述第二报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第二三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第二动作随机存取存储器用于根据所述位置数据生成动作数据;所述分散器从流水级容器中取出报文头向量字段;所述向量分散器根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据。
基于同一发明构思,本发明还提出了一种支持RMT的解析器的解析方法,所述解析器的解析方法包括如下步骤:解析器获取报文头数据、掩码矩阵和最终匹配表;将报文头数据与掩码矩阵进行与运算得出关键匹配位;对所述关键匹配位和最终匹配表进行匹配,获取位置数据;根据所述位置数据生成动作数据;应用逆蝶形网络根据所述动作数据从报文头数据中提取出报文头向量的片段;将报文头向量的片段组合起来形成新的报文头向量。
可选的,所述解析器获取报文头数据、掩码矩阵和最终匹配表,包括:获取租户树、协议树和报文头数据;根据所述租户树和所述协议树生成最终匹配表和掩码矩阵。
可选的,所述根据租户树和所述协议树生成最终匹配表和掩码矩阵包括:获取租户树与协议树中的协议字段;统一各协议字段的长度形成等宽掩码矩阵;删除等宽掩码矩阵中的单值列、相同列、0X列和1X列后形成掩码矩阵;将掩码矩阵与协议字段进行与运算生成最终匹配表。
基于同一发明构思,本发明还提供了一种支持RMT的逆解析器的逆解析方法,包括:识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;对所述关键匹配位和最终匹配表进行匹配,获取位置数据;根据所述位置数据生成动作数据;从流水级容器中取出报文头向量字段;根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据。
基于同一发明构思,本发明还提出了一种交换机,所述交换机包括:前述中任一项所述的支持RMT的解析器、前述中任一项所述的支持RMT的逆解析器、以及多个流水级。
从上面所述可以看出,本发明提供的技术方案的有益效果是:所述解析器包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器;所述第一报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第一三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第一动作随机存取存储器用于根据所述位置数据生成动作数据;所述向量提取器用于应用逆蝶形网络根据所述动作数据从报文头数据中提取出所需的报文头向量的片段;所述聚合器用于将所需的报文头向量的片段组合起来形成新的报文头向量,并进入流水级;其中,所述掩码矩阵和所述最终匹配表由租户树和协议树生成,能够节省匹配资源、提高解析效率、扩大适配范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的可重构匹配表架构示意图;
图2为本发明实施例中的支持RMT的解析器的结构示意图;
图3为本发明实施例中的支持RMT的解析器的优先级判定示意图;
图4为本发明实施例中的支持RMT的解析器的匹配树生成示意图;
图5为现有技术中的交叉开关矩阵结构示意图;
图6为本发明实施例中的逆蝶形网络的结构示意图;
图7为本发明实施例中的支持RMT的解析器的解析方法的流程示意图;
图8为图7中步骤S11的流程示意图;
图9为本发明实施例中的支持RMT的逆解析器的结构示意图;
图10为本发明实施例中的支持RMT的逆解析器的解析方法的流程示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本发明实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本发明实施例提出了一种支持RMT(Reconfigurable Match Tables,可重构匹配表)的解析器,如图2所示,支持RMT的解析器包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器。
所述第一报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第一三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第一动作随机存取存储器用于根据所述位置数据生成动作数据;所述向量提取器用于应用逆蝶形网络根据所述动作数据从报文头数据中提取出所需的报文头向量的片段;所述聚合器用于将所需的报文头向量的片段组合起来形成新的报文头向量,并进入流水级;其中,所述掩码矩阵和所述最终匹配表由租户树和协议树生成。
在本发明实施例中,当报文数据进入解析器后,首先会进入报文头识别器和向量提取器,报文头识别器识别出报文头数据,和掩码矩阵进行与运算得出关键匹配位之后递送给三态内容寻址储存器;三态内容寻址储存器将关键匹配位与最终匹配表进行一次匹配并得出位置数据,然后将位置数据递送给动作随机存取存储器;之后动作随机存取存储器会根据位置数据产生动作数据;最后向量提取器根据动作数据将报文头数据字段一次提取出来,聚合到容器形成报文头向量,进入流水级。
现已有的解析器设计是对需要匹配的报文头数据逐位逐字进行串行匹配,这意味着无论头数据长度是多少,三态内容寻址储存器都需要对所有数据进行全文匹配,花费时间较长,消耗资源较多。本发明实施例采用有效位匹配方法实现对租户身份标识和私有协议的快速匹配。有效位匹配方法类似通信工程中常用的霍夫曼编码,主要认为区分协议需要匹配的位数不应当由数据位数决定,而是应当与需要区分的数据条数有关。基于此思想,本发明实施例通过匹配树可以计算输入的所有匹配数据并生成匹配表,用于筛选出数据的有效位,可以减少匹配数据的位数和次数,相应的节省设备运行所需要的时间和资源,改善效率。
在本发明实施例中,解析器需要接收所有需要区分的租户身份标识和协议字段作为输入,通过一系列操作在解析器中计算并且生成掩码矩阵和匹配查找表,并储存在固件中用于匹配。可选的,解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,生成掩码矩阵和最终匹配表。对所有的协议字段,统一取最长的字段长度,对于较短的字段在其末尾补齐足够数量的X(表示未知)使其和最长协议字段等长,将补全后的所有协议字段按照优先级(若有)拼接在一起,称为协议字段矩阵。新产生一个和矩阵行数同等长度,值全为1的位串作为掩码,掩码位上的1表示保留,0表示删去。
然后对协议字段矩阵的每一列,若该列上的所有值相同,即只有X,0,1中的一种,则称为单值列。单值列不具备分辨协议字段的能力,故将掩码位串的对应位设为0,表示该位比特不参与协议字段分辨,这一步的操作复杂度是O(n),n是协议字段矩阵的列数。
再检查那些只存在X和0、X和1的协议字段矩阵的列,这样的列被称作0X列和1X列,也不具备强分辨能力。例如01可以同时被0X和X1位串匹配,产生混淆。将0X列、1X列对应的掩码位串位设为0,同样,这一步的操作复杂度是O(n)。
再遍历矩阵剩下的所有列的两两组合,检查是否存在位串值完全相同的列,对所有组的相同列仅保留其中的一列,将剩下的列对应的掩码位串位标记为0,这一步的操作复杂度是O(n2)。
使用矩阵剩余列的靠前的几位比特位生成树直到所有的列被分开为止,剩下的未使用的列对应的掩码位串的位同样标记为0。根据输出协议字段矩阵和掩码位串生成最终匹配表,并写入交换设备的解析器与逆解析器中。
举例说明此掩码矩阵和最终匹配表的生成过程,考虑具备优先级的一系列位串,参考图3,优先级从高到低分别是1011_0001,1011,1011_0010和1000_1000,最长位长为8位,表示为[7:0]。第一步将位长不足的第二个位串补全,成为1011_XXXX,生成的掩码矩阵为八位1111_1111。第二步判断单值列,发现第7位只有1,第6位上只有0,都属于单值列,将对应掩码标记为0。第三步判断0X和1X列,发现第2位只有0和X,不能作为辨别列,对应掩码位亦标记为0。第四步判断相同列,发现第5、4列是相同的,都是1110,删去重复列直到只剩下最后一列,即将第5列对应的掩码位改为0,保留第4列。第五步判断整个掩码矩阵是否全部位都是0,如果是0说明所有列都被标记为删除,生成匹配表失败,需要返回错误。由于需要补全,位串值可以有X表示不确定值,因此生成匹配树时仍然可能出现未定结果,此时需要按照优先级判断,如图4所示。举例说明:默认优先级协议1、协议2、协议3、协议4由高到低。如果报文头向量和掩码与运算后为1010或者1001,按照协议比特树无法识别,此时可以根据预先设定的优先级原则判定为协议2和协议1进行后续操作,也可以对报文做丢弃并存留处理日志。第六步将掩码矩阵与协议位串进行与运算生成最终匹配表,最终输出结果为掩码矩阵和最终匹配表。此例子中对八位长的协议位数只需要匹配四次,只有原本的一半,对于更长的协议比特位数量能够节省更多的运算资源,同时依旧具备较高的匹配准确度。
由于匹配树通过输入的协议计算生成,具有高输入自由度,租户可以通过输入预先定义的协议以及设定协议优先度的方法等生成私有协议树,达到高协议匹配度的效果。
在本发明实施例中,租户可以自定义私有的租户字段和协议字段:定义一系列具有同等性质且需要通过匹配分辨的比特位串的集合为匹配树,匹配树通过计算能够产生用于标记有效比特位串的掩码位串和用于最终查找的最终匹配表,匹配树的根节点即掩码位串中对应的第一个有效比特位,叶节点代表掩码位串中对应的最后一个比特位,树中从根向叶每一个分叉代表下一个有效比特位上可能的值,从根节点到某一个叶节点的一条路径上的比特位值串即为一条关键比特位值串,在最终匹配表中可匹配某一条表项。例如一台交换机上所有的租户字段的集合可以称为租户树,而一个租户管理下的租户网络中可解析的所有协议的集合可以称为协议树。每个协议树的根节点都与对应租户树的叶子节点相连。租户自定义需要匹配的字段时需要在设备本地进行设定,设备会综合匹配字段产生匹配树。
在云数据中心网络中,虚拟网络被部署在实体的服务器上,一台服务器实体可能需要处理复数个网络租户的不同数据流,同时必须具有可编辑的能力以适应租户的变更,还要能够对不同租户的不同业务进行分别处理。现有技术中的可重构匹配表架构网络作为一种协议无关的网络,既支持虚拟局域网也支持虚拟扩展局域网,但不可支持二者在网络中的混合运行。本发明实施例中的解析器与现有的可重构匹配表架构解析器不同,具有匹配树的特点,可适应变长,混合租户标识,达到同时支持虚拟局域网和虚拟扩展局域网两种虚拟网络的效果。本发明实施例的协议字段矩阵中应用12比特或24比特表示租户标识,以支持虚拟局域网和虚拟扩展局域网,如此该解析器也可以通过虚拟网络叠加的方式与非虚拟扩展局域网网络互通。
本发明实施例中的解析器在匹配多租户网络处理时上依然采用类似树分叉的思想,采用虚拟局域身份标识或虚拟扩展局域网身份标识构成独立的租户解析树,通过流表或是其他方式将租户标识在本地进行配置。在硬件上部署解析树时,采用最终匹配表的方法,得到掩码矩阵后,将掩码矩阵与解析位串列表进行与运算、缩合得到最终匹配表并储存在本地,解析时规定位串的前X位为用户位,将输入位串与掩码矩阵进行与运算,取前X位在租户树最终匹配表中进行查找确定租户,将剩下的位与该租户对应的协议树最终匹配表进行查找匹配,最终得到匹配结果。管理解析树时,租户私有的协议树与对应租户在租户树上的叶结点绑定;解析时,将租户树对应的查找表和协议树的查找表拼接在一起进行匹配解析;编辑解析树时,增加时先增加租户叶结点,再初始化协议树;删除时先删除协议树,再移除对应的租户叶结点;修改时需要先删除对应租户的解析树,重新输出需要解析的所有协议并重新生成协议树,与租户树叶结点相连接。
本发明实施例同时可通过预留足够长的租户树查找表位数的方式支持热编辑:例如租户树预留了12比特的查找表位数,现已有的租户数量为16,只需要占用12位中的后4位,故用于匹配租户树的掩码矩阵为0000_0000_1111,再新增租户时,只需要依次将第5位,第6位等加入匹配,更新掩码矩阵,并在租户树查找表中新增新租户对应的租户树代码即完成热编辑,这一操作不会影响原有租户的数据流持续解析,不仅可以支持多租户数据隔离,而且支持多租户对应多协议树,支持多自定义协议和多匹配策略隔离。
在本发明实施例中,当报文数据进入解析器后,首先报文头识别器识别报文头数据,并从中剥离出租户身份标识和协议相关的头数据,然后与掩码矩阵进行一次与运算得到关键匹配位,接着将关键匹配位与最终匹配表在三态内容寻址储存器中依照优先级顺序进行串行匹配,得到位置数据,位置数据包括租户身份、对应的私有协议类型以及后续解析的动作数据,最后依照动作数据将报文头数据在向量提取器中提取报文头向量的片段,并聚合形成报文头向量,进入流水级以进行后续处理。
现有技术中的解析器实现向量提取所采用的是如图5所示的交叉开关矩阵结构,横线表示输入,竖线表示输出,黑点表示横线和竖线连通。此结构允许网络几乎无延迟的将n位的输入映射到n位的输出,且没有路径阻塞,但电路规模为O(n2),随输入位数n的线性增长而呈指数增长,电路规模增长快,资源消耗大,并且在时钟频率较高时容易产生时序违例问题。为了解决可重构匹配表架构解析器的上述问题,本发明实施例的向量提取器采用逆蝶形网络完成对报文头向量的片段的提取,其位置编码只和输出位置有关,与输入位置无关。逆蝶形网络比交叉开关矩阵结构具有更少的寄存器节点、更小的电路规模、更易满足高时钟频率的设计需求,并且其节点不需要外部控制,可通过附加的位置编码实现如表1中所示的数据路径的唯一化和自动控制。逆蝶形网络中的寄存器节点会根据输入数据的位置编码自动向不同支路进行中转发送。
以四路逆蝶形网络为例进行说明,如图6所示,逆蝶形网络的输出位置对应编码从上到下依次为11,01,10,00,并且数据位置编码只和输出位置有关,与输入位置无关,无论数据从哪一个输入口进入,只要带有这样的向量位置编码,逆蝶形网络中的寄存器就能将其发送至正确的位置,从而实现无需外加信号控制的自动数据提取网络。交叉开关矩阵结构中每个节点只能控制一条通路的开断,而逆蝶形网络中的每个节点可以在复数条通路中起到控制作用。高效的控制节点复用使得逆蝶形网络能够大幅降低硬件结构中电路网络的复杂程度。本发明实施例中的逆蝶形网络主要用于作为向量提取器从报文头数据提取数据字段。相比于原本的交叉开关矩阵结构设计,逆蝶形网络能将区域复杂度从O(n2)降低至O(nlog(n))。
表1 与输入位置无关的4路自动路由控制
Figure SMS_1
本发明实施例的支持RMT的解析器包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器,能够提高解析效率,增加解析器的适应性和可扩展性。
基于同一发明构思,本实施例还提供了一种支持RMT的解析器的解析方法,应用于图2所示的支持RMT的解析器,如图7所示,包括如下步骤:
步骤S11:解析器获取报文头数据、掩码矩阵和最终匹配表。
可选的,获取租户树、协议树和报文头数据;根据租户树和协议树生成最终匹配表和掩码矩阵。根据租户树和协议树生成最终匹配表和掩码矩阵的方法如图8所示,包括:
步骤S111:获取租户树与协议树中的协议字段。
解析器接收所有需要区分的租户身份标识和协议字段作为输入。
步骤S112:统一各协议字段的长度形成等宽掩码矩阵。
可选的,所述解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,即等宽掩码矩阵。
步骤S113:删除等宽掩码矩阵中的单值列、相同列、0X列和1X列后形成掩码矩阵。
对等宽掩码矩阵进行删除单值列、0X列、1X列以及相同列的处理,生成掩码矩阵和最终匹配表,具体实现方法参见上一实施例的介绍,在此不再赘述。
步骤S114:将掩码矩阵与协议字段进行与运算生成最终匹配表。
对掩码矩阵与协议字段进行逐位与运算,以生成最终匹配表。由于需要补全,位串值可以有X表示不确定值,因此生成匹配树时仍然可能出现未定结果,此时需要按照优先级判断,具体参见上一实施例的介绍,在此不再赘述。
步骤S12:将报文头数据与掩码矩阵进行与运算得出关键匹配位。
当报文数据进入解析器后,首先识别报文头数据,并从中剥离出租户身份标识和协议相关的头数据,然后与掩码矩阵进行一次与运算得到关键匹配位。
步骤S13:对所述关键匹配位和最终匹配表进行匹配,获取位置数据。
接着将关键匹配位与最终匹配表在第一三态内容寻址储存器中依照优先级顺序进行串行匹配,得到位置数据,包括租户身份、对应的私有协议类型以及位置数据。
步骤S14:根据所述位置数据生成动作数据。
第一三态内容寻址储存器匹配的结果会触发协议的第一动作随机存取存储器进行操作:对解析器状态进行更新、将传入的位置数据移动指定的位数、将其中一个或多个字节数据输出到指定位置。
步骤S15:应用逆蝶形网络根据所述动作数据从报文头数据中提取出报文头向量的片段。
通过向量提取器采用逆蝶形网络完成对报文头向量的片段的提取,其位置编码只和输出位置有关,与输入位置无关。
步骤S16:将报文头向量的片段组合起来形成新的报文头向量。
将向量提取器根据动作数据提取的报文头向量的片段聚合到容器形成报文头向量,进入后面的流水级以进行后续处理。
本发明实施例的支持RMT的解析器的解析方法通过解析器获取报文头数据、掩码矩阵和最终匹配表;将报文头数据与掩码矩阵进行与运算得出关键匹配位;对所述关键匹配位和最终匹配表进行匹配,获取位置数据;根据所述位置数据生成动作数据;应用逆蝶形网络根据所述动作数据从报文头数据中提取出报文头向量的片段;将报文头向量的片段组合起来形成新的报文头向量新的报文头向量,能够用一定的存储空间和可接受的延迟换取较高的性能提升;采用树形结构结合优先级机制进行匹配,减少了匹配时间和耗费的资源,同时更好的支持自定义协议匹配。
基于同一发明构思,本发明实施例提供了一种支持RMT的逆解析器,如图9所示,所述逆解析器包括:第二报文头识别器、第二三态内容寻址存储器、与所述第二三态内容寻址存储器连接的第二动作随机存取存储器、与所述第二动作随机存取存储器连接的向量分散器、以及与所述向量分散器连接的分散器。
所述第二报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第二三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第二动作随机存取存储器用于根据所述位置数据生成动作数据;所述分散器从流水级容器中取出报文头向量字段;所述向量分散器根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据。
逆解析器的结构与解析器类似,区别在于聚合器变为分散器,向量提取器变为向量分散器,逆解析器中的向量分散器采用的是蝶形网络。在流水级中报文头向量字段经历一系列操作并输出更新后的版本,更新后的报文头向量进入逆解析器,其中的分散器会进行和提取器相反的操作,将报文头向量字段从容器中取出,再用第二动作随机存取存储器递送的动作数据进行逆蝶形网络的逆操作,由分散器将新的报文头数据字段发送到报文头数据原本的位置,覆盖旧的数据字段,从而得到处理后的新报文头数据。
在本发明实施例中,掩码矩阵和最终匹配表的生成与解析器中完全相同,不再赘述。逆解析器中的向量分散器使用蝶形网络实现向量的分散。蝶形网络比交叉开关矩阵结构具有更少的寄存器节点、更小的电路规模、更易满足高时钟频率的设计需求,并且其节点不需要外部控制,可通过附加的位置编码实现数据路径的唯一化和自动控制。蝶形网络中的寄存器节点会根据输入数据的位置编码自动向不同支路进行中转发送。蝶形网络的结构与逆蝶形网络的结构类似,蝶形网络用于作为向量分散器分散数据字段,相比于原本的交叉开关矩阵结构设计,能将区域复杂度从O(n2)降低至O(nlog(n))。
本发明实施例的支持RMT的逆解析器包括:第二报文头识别器、第二三态内容寻址存储器、与所述第二三态内容寻址存储器连接的第二动作随机存取存储器、与所述第二动作随机存取存储器连接的向量分散器、以及与所述向量分散器连接的分散器,能够提高解析效率,增加解析器的适应性和可扩展性。
基于同一发明构思,本发明实施例还提供了一种支持RMT的逆解析器的逆解析方法,所述逆解析方法如图10所示,包括:
步骤S21:识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位。
步骤S22:对所述关键匹配位和最终匹配表进行匹配,获取位置数据。
步骤S23:根据所述位置数据生成动作数据。
步骤S24:从流水级容器中取出报文头向量字段。
步骤S25:根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据。
本发明实施例的支持RMT的解析器的逆解析方法通过识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;对所述关键匹配位和最终匹配表进行匹配,获取位置数据;根据所述位置数据生成动作数据;从流水级容器中取出报文头向量字段;根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据,能够支持变长租户标识,同时支持虚拟局域网和虚拟扩展局域网协议,具有较好的适应性和可扩展性,通过产生不同的租户树实现租户网络数据流的空间隔离,通过多租户树与协议树组合成的匹配树来实现对不同租户数据流的操作。
基于同一发明构思,本发明实施例提供了一种交换机,所述交换机包括:前述的支持RMT的解析器和逆解析器、以及连接于所述支持RMT的解析器和所述支持RMT的逆解析器之间的多个流水级。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (9)

1.一种支持RMT的解析器,其特征是,所述解析器包括:第一报文头识别器、第一三态内容寻址存储器、与所述第一三态内容寻址存储器连接的第一动作随机存取存储器、与所述第一动作随机存取存储器连接的向量提取器、以及与所述向量提取器连接的聚合器;
所述第一报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第一三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第一动作随机存取存储器用于根据所述位置数据生成动作数据;所述向量提取器用于应用逆蝶形网络根据所述动作数据从报文头数据中提取出所需的报文头向量的片段;所述聚合器用于将所需的报文头向量的片段组合起来形成新的报文头向量,并进入流水级;其中,所述掩码矩阵和所述最终匹配表由租户树和协议树生成,通过所述解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,新产生一个和矩阵行数同等长度,值全为1的位串作为掩码,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,对应的掩码位串位设为0,掩码位上的1 表示保留,0 表示删去,生成掩码矩阵和最终匹配表。
2.如权利要求1所述的支持RMT的解析器,其特征是,所述协议字段矩阵中应用12比特或24比特表示租户标识,支持虚拟局域网和虚拟扩展局域网。
3.如权利要求1所述的支持RMT的解析器,其特征是,所述向量提取器采用逆蝶形网络完成对报文头向量的片段的提取,其位置编码只和输出位置有关,与输入位置无关。
4.一种支持RMT的逆解析器,其特征是,所述逆解析器包括:第二报文头识别器、第二三态内容寻址存储器、与所述第二三态内容寻址存储器连接的第二动作随机存取存储器、与所述第二动作随机存取存储器连接的向量分散器、以及与所述向量分散器连接的分散器;
所述第二报文头识别器用于识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;所述第二三态内容寻址存储器用于对所述关键匹配位和最终匹配表进行匹配,获取位置数据;所述第二动作随机存取存储器用于根据所述位置数据生成动作数据;所述分散器从流水级容器中取出报文头向量字段;所述向量分散器根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据;其中,通过解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,新产生一个和矩阵行数同等长度,值全为1的位串作为掩码,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,对应的掩码位串位设为0,掩码位上的1 表示保留,0 表示删去,生成掩码矩阵和最终匹配表。
5.一种支持RMT的解析器的解析方法,其特征是,所述解析器的解析方法包括如下步骤:
解析器获取报文头数据、掩码矩阵和最终匹配表,其中,通过解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,新产生一个和矩阵行数同等长度,值全为1的位串作为掩码,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,对应的掩码位串位设为0,掩码位上的1 表示保留,0 表示删去,生成掩码矩阵和最终匹配表;
将报文头数据与掩码矩阵进行与运算得出关键匹配位;
对所述关键匹配位和最终匹配表进行匹配,获取位置数据;
根据所述位置数据生成动作数据;
应用逆蝶形网络根据所述动作数据从报文头数据中提取出报文头向量的片段;
将报文头向量的片段组合起来形成新的报文头向量。
6.如权利要求5所述的支持RMT的解析器的解析方法,其特征是,所述解析器获取报文头数据、掩码矩阵和最终匹配表,包括:
获取租户树、协议树和报文头数据;
根据所述租户树和所述协议树生成最终匹配表和掩码矩阵。
7.如权利要求6所述的支持RMT的解析器的解析方法,其特征是,所述根据所述租户树和所述协议树生成最终匹配表和掩码矩阵包括:
获取租户树与协议树中的协议字段;
统一各协议字段的长度形成等宽掩码矩阵;
删除等宽掩码矩阵中的单值列、相同列、0X列和1X列后形成掩码矩阵;
将掩码矩阵与协议字段进行与运算生成最终匹配表。
8.一种支持RMT的逆解析器的逆解析方法,其特征是,所述逆解析方法包括:
识别报文头数据、并与掩码矩阵进行与运算得出关键匹配位;
对所述关键匹配位和最终匹配表进行匹配,获取位置数据;
根据所述位置数据生成动作数据;
从流水级容器中取出报文头向量字段;
根据所述动作数据对所述报文头向量字段进行逆蝶形网络的逆操作,获取新报文头数据;
其中,通过解析器对租户树和协议树进行拼接和补全形成等宽的协议字段矩阵,新产生一个和矩阵行数同等长度,值全为1的位串作为掩码,对协议字段矩阵进行删除单值列、0X列、1X列以及相同列的处理,对应的掩码位串位设为0,掩码位上的1 表示保留,0 表示删去,生成掩码矩阵和最终匹配表。
9.一种交换机,其特征是,所述交换机包括:如权利要求1-3中任一项所述的支持RMT的解析器、如权利要求4所述的支持RMT的逆解析器、以及连接于所述支持RMT的解析器和所述支持RMT的逆解析器之间的多个流水级。
CN202310426812.1A 2023-04-20 2023-04-20 一种支持rmt的解析器、逆解析器、解析方法及交换机 Active CN116156026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310426812.1A CN116156026B (zh) 2023-04-20 2023-04-20 一种支持rmt的解析器、逆解析器、解析方法及交换机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310426812.1A CN116156026B (zh) 2023-04-20 2023-04-20 一种支持rmt的解析器、逆解析器、解析方法及交换机

Publications (2)

Publication Number Publication Date
CN116156026A CN116156026A (zh) 2023-05-23
CN116156026B true CN116156026B (zh) 2023-07-04

Family

ID=86374006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310426812.1A Active CN116156026B (zh) 2023-04-20 2023-04-20 一种支持rmt的解析器、逆解析器、解析方法及交换机

Country Status (1)

Country Link
CN (1) CN116156026B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117376453A (zh) * 2023-10-31 2024-01-09 中科驭数(北京)科技有限公司 报文字段提取和传输方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739445B1 (en) * 2004-06-11 2010-06-15 Srinivasan Venkatachary Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
CN107896194A (zh) * 2018-01-02 2018-04-10 盛科网络(苏州)有限公司 一种路由查找方法、装置和存储介质
CN111526134A (zh) * 2020-04-13 2020-08-11 杭州迪普信息技术有限公司 一种报文检测系统、方法及装置
CN112732241A (zh) * 2021-01-08 2021-04-30 烽火通信科技股份有限公司 一种多级并行高速处理下的可编程解析器及其解析方法
CN112837720A (zh) * 2021-01-22 2021-05-25 之江实验室 一种高密度三态内容寻址存储器及其寻址方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7782853B2 (en) * 2002-12-06 2010-08-24 Stmicroelectronics, Inc. Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine
CN101350771B (zh) * 2008-07-07 2010-12-29 中国人民解放军国防科学技术大学 三态内容可寻址存储器条目免排序存储方法及其系统
CN102377664B (zh) * 2010-08-27 2015-06-10 武汉烽火网络有限责任公司 一种基于tcam的区域匹配装置和方法
US8934278B2 (en) * 2012-12-28 2015-01-13 Qualcomm Incorporated Hybrid ternary content addressable memory
US20170195253A1 (en) * 2015-12-31 2017-07-06 Fortinet, Inc. Flexible pipeline architecture for multi-table flow processing
CN107528782A (zh) * 2016-06-20 2017-12-29 中兴通讯股份有限公司 一种tcam表项的更新方法、装置及tcam
CN107818151B (zh) * 2017-10-24 2020-12-11 湖南恒茂高科股份有限公司 数据查找方法、装置、计算机设备和存储介质
CN108075979B (zh) * 2017-12-20 2020-10-13 盛科网络(苏州)有限公司 实现最长掩码匹配的方法及系统
CN108337172B (zh) * 2018-01-30 2020-09-29 长沙理工大学 大规模OpenFlow流表加速查找方法
WO2020107484A1 (zh) * 2018-11-30 2020-06-04 华为技术有限公司 一种acl的规则分类方法、查找方法和装置
US11232038B2 (en) * 2019-06-05 2022-01-25 Samsung Electronics Co., Ltd. Ternary content addressable memory and operating method thereof
CN114363258B (zh) * 2022-03-17 2022-12-06 中国人民解放军国防科技大学 一种报文处理装置
CN115834478A (zh) * 2022-11-17 2023-03-21 江苏信息职业技术学院 一种利用tcam实现pbr高速转发的方法
CN115883681B (zh) * 2023-02-08 2023-06-23 天翼云科技有限公司 报文解析方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739445B1 (en) * 2004-06-11 2010-06-15 Srinivasan Venkatachary Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
CN107896194A (zh) * 2018-01-02 2018-04-10 盛科网络(苏州)有限公司 一种路由查找方法、装置和存储介质
CN111526134A (zh) * 2020-04-13 2020-08-11 杭州迪普信息技术有限公司 一种报文检测系统、方法及装置
CN112732241A (zh) * 2021-01-08 2021-04-30 烽火通信科技股份有限公司 一种多级并行高速处理下的可编程解析器及其解析方法
CN112837720A (zh) * 2021-01-22 2021-05-25 之江实验室 一种高密度三态内容寻址存储器及其寻址方法

Also Published As

Publication number Publication date
CN116156026A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
JP3735471B2 (ja) パケット中継装置およびlsi
RU2608464C2 (ru) Устройство, способ и сетевой сервер для обнаружения структур данных в потоке данных
JP2012524932A (ja) アドレス検索のためのデータ構造、方法、及びシステム
CN110381054A (zh) 报文解析方法、装置、设备及计算机可读存储介质
EP0833257A2 (en) Apparatus and method for concurrent search content addressable memory circuit
CN116156026B (zh) 一种支持rmt的解析器、逆解析器、解析方法及交换机
CN105049359A (zh) 用于分布式路由表查找的技术
US9667440B2 (en) Method and system for identifying an incoming interface using openflow protocol
Pontarelli et al. Stateful openflow: Hardware proof of concept
Pontarelli et al. Parallel d-pipeline: a cuckoo hashing implementation for increased throughput
CN105376159A (zh) 报文处理转发装置及方法
CN115426312B (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
CN115883681B (zh) 报文解析方法、装置、电子设备及存储介质
CN114640557B (zh) 网关以及云网络系统
CN111131050A (zh) 流表的匹配方法及装置
CN112491572B (zh) 终端之间连接状态的预测方法、装置和分析设备
US11140078B1 (en) Multi-stage prefix matching enhancements
US8798057B1 (en) Methods and apparatus to implement except condition during data packet classification
US20100138599A1 (en) System and method for matching patterns
CN114143195A (zh) 一种数据包处理装置及方法
CN109905322B (zh) 一种报文匹配信息预处理的方法及装置
KR20100063640A (ko) 패턴 매칭 장치 및 방법
Bianchi et al. On the feasibility of “breadcrumb” trails within OpenFlow switches
US7792055B2 (en) Method and system for determining the topology of a network
CN118282696A (zh) Acl处理装置及方法、转发芯片、网络设备

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