基于任意字段匹配的数据报文转发方法技术

技术编号:10356402 阅读:188 留言:0更新日期:2014-08-27 12:40
本发明专利技术提出了基于任意字段匹配的数据报文转发方法。该方法是在同一个转发表中同时容纳不同格式的用户任意指定字段的转发规则。用户通过基址、偏移量、长度三元组来指定匹配报文任意字段,通过多个三元组或者普通知名字段组成所需键值,一条转发表项包含静态字段表区和动态字段表区。同时,还给出用户配置增加转发表项的方法以及报文转发查表方法。

【技术实现步骤摘要】

本专利技术涉及一种,属于报文转发

技术介绍
传统路由器和交换机中的路由表(MAC转发表或者流表)由若干表项构成,所有表项长度相同(均包含相同数目的比特位),所有表项的相应比特位代表的含义均相同,譬如以太网二层交换机上的MAC转发表,每一条表项均为48比特,其含义是计算机网络二层MAC地址。又如openf low交换机上的流表,一个流表项目虽然可以包括多个字段,譬如入端口、源IP地址、目的IP地址、源MAC地址、目的MAC地址等等,但是同一个流表中所有流表项的格式,包含的字段,以及字段的长度、位置都是固定不变的。基于这种固定格式的转发表,传统路由器和交换机对数据报文进行查表前均需要根据转发表所规定的格式从到达的数据报文中提取相应字段,并按照转发表规定的格式组织成键值,用来进行查表匹配使用。参见附图1中描述的openflow交换机报文字段提取流程图,这种报文处理方法的优势在于成本低廉,由于所有表项共享相同的格式,因此只需要进行一次报文字段提取,得到的键值即可以与所有表项之间进行比较。而且,由于处理流程简单,所以一般可以通过ASIC硬件实现。然而,其缺陷也是明显的,这种固定格式的转发表不支持同一个转发表中存在不同格式的表项。譬如,一个交换机上配置了三条转发规则,第一条规则只包含目的MAC地址字段,第二条规则包含源IP地址和目的IP地址,第三条规则是用户自定义的从报文荷载开始的前100比特的内容。在现有交换机上同时实现以上三条规则有两种方法,一是使用TCAM通配,每一条表项同时包含所有可能的字段,但是只对自身关注的部分字段赋值,其余部分设置为通配。那么,第一条规则所占用的长度为目的MAC地址字段(48比特),加上源IP (32比特)、目的IP (32比特)和报文荷载(100比特),共212比特,其中有效位占比仅为22%。随着其他表项需要用到的字段种类增加,这个比例将进一步减小。因此使用TCAM通配的方式会导致非常低的存储空间利用率。第二种方式是使用多级转发表,即三条规则分别放在三张不同格式的转发表中。当数据报文到达时,先在第一张转发表中进行匹配查找,如果不匹配,则跳至第二张表进行匹配,如果仍不匹配,再跳至第三张表。每次查表前均需要根据表的规定从数据报文进行相应字段键值提取。这种实现方式的弊端在于转发表数目随表项类型增加而增加,而且随着转发表级数增多,报文处理延迟增大,影响网络性能。
技术实现思路
为了解决现有技术中的技术问题,本专利技术提出了。简单来说,该方法是在同一个转发表中同时容纳不同格式的用户任意指定字段的转发规则。具体地,本专利技术采用如下技术方案:一种,其特征在于:用户通过基址、偏移量、长度三元组来指定匹配报文任意字段,通过多个三元组或者普通知名字段组成所需键值;一条转发表项包含静态字段表区和动态字段表区,静态字段区的字段类型和数目在转发表初始化阶段由静态字段描述符设定,所有转发表项的静态字段区的字段类型和数目均相同,动态字段区中的字段类型和数目是在转发表项增加时由新增对应的动态字段描述符设定,同一张转发表中不同表项的动态字段区相互独立。静态字段描述符和动态字段描述符均是由一个或多个知名字段或者三元组组成的序列串。静态字段表区是以静态字段提取器获得的待匹配值作为输入,进行通配查表,并输出匹配表项序号或者无表项命中信号。静态字段表区由静态字段表项组成,每一条静态字段表项包含三部分,分别是静态字段键值、静态字段掩码和动态字段表项首地址。静态字段键值和静态字段掩码的长度相等且均由静态字段描述符所规定。动态字段表区是对静态表区的扩展,动态字段表区的地址存储在静态字段表区的动态字段地址区中。动态字段表区包括三部分,分别是动态字段描述符区、动态字段键值区和动态字段掩码区。每张转发表只有一个静态字段描述符,在转发表初始化阶段由用户通过配置脚本或者配置命令的方式来设置该转发表的静态字段描述符。采用字段提取器,字段提取器每次能从字段描述符所指定的报文位置提取出相应全部字段内容,并且将字段内容按照字段描述符中字段的先后次序组合成待匹配值供字段区进行查找匹配。采用进行用户配置增加转发表项的方法:其特征在于:(I)依据转发表静态字段描述符包含字段及其先后次序,向表项中静态字段表区填入静态字段键值和静态字段掩码,用户没有指定的静态字段设置为缺省通配;(2)若表项需要匹配静态字段描述符以外的动态字段,则包括三步操作:a)根据动态字段的类型和数目为动态字段表区分配空间;b)根据用户配置的动态字段,构造动态字段描述符以及配置动态字段键值区和动态字段掩码区;c)将动态字段表区的地址写到静态字段表区中的动态字段表地址,实现动态字段表区关联。配置该条表项工作流程如下:(I)配置静态字段区;(2)为动态字段区分配空间;(3)配置动态字段区;(4)关联动态字段,将动态字段表区的地址写入到静态字段表区,完成表项关联。—种报文转发查表方法,其特征在于:报文转发查表大致流程分为两阶段,第一阶段是静态字段表区查找,找出报文静态字段命中的全部表项,作为候选命中表项;第二阶段,把各个候选表项按优先级自高向低逐一与报文进行动态字段匹配。第一阶段,静态字段表区匹配查找,包含以下步骤:(I)静态字段提取,根据静态字段描述符对字段提取器进行配置,字段提取器从数据报文中指定位置提取出全部静态字段,并且合并成待匹配值;(2)静态字段查表,将带匹配值与静态字段表区的所有表项逐一进行匹配,若匹配成功则将表项加入到候选命中表项序列中;(3)若查找结束后,候选命中表项序列不为空,即至少有一条表项的静态字段区命中,则进行第二阶段动态字段匹配;否则,表示没有一条表项的静态字段区被命中,即转发表中没有可以匹配的表项,查表结束并输出无命中。第二阶段,动态字段表区匹配,按照候选命中表项序列中次序,用每一个候选表项对数据报文进行如下匹配:(I)判断候选表项静态字段表区中的动态字段区地址是否被赋值,是否关联动态字段表区,若没有关联,表示该表项仅包含静态字段表区,且已经命中,因此该表项被命中,第二阶段匹配结束,输入当前候选命中表项的序号;若该表项有关联动态字段表区,执行(2);(2)通过动态字段区地址找到动态字段表区,根据动态字段描述符对字段提取器进行配置并从数据报文中提出待匹配动态字段值;(3)将待匹配动态字段值与动态字段表区中动态字段键值和动态字段掩码进行匹配,若匹配成功,表不表项的动态字段表区与数据报文匹配,同时由于第一阶段静态报文查找中已经确认该表项静态字段与报文匹配,因此该表项与报文匹配成功,查找结束,输出当前命中表项;否则,查看下一条候选命中表项,执行(I);(4)若全部候选命中表项均不能与数据报文动态字段匹配,则查找结束,输出无命中。本方法的创新点主要有两处:1.引入基址,偏移量,长度三元组灵活定义任意字段,便于支持新型网络协议开发部署。2.引入动态字段区,通过定义动态字段区,同一个转发表中不同表项可灵活配置不同的任意字段,能够解决传统交换机转发表数量膨胀问题和多级查表转发延迟变大问题;本方法中不同表项的动态字段区相互独立,无需冗余字段,能够解决传统交换机静态字段转发表方式由于字段类型的多样性导致的字段利用效率低下问题。【附图说明】图1是【
技术介绍
本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201410174192.html" title="基于任意字段匹配的数据报文转发方法原文来自X技术">基于任意字段匹配的数据报文转发方法</a>

【技术保护点】
一种基于任意字段匹配的数据报文转发方法,其特征在于:用户通过基址、偏移量、长度三元组来指定匹配报文任意字段,通过多个三元组或者普通知名字段组成所需键值;一条转发表项包含静态字段表区和动态字段表区,静态字段区的字段类型和数目在转发表初始化阶段由静态字段描述符设定,所有转发表项的静态字段区的字段类型和数目均相同,动态字段区中的字段类型和数目是在转发表项增加时由新增对应的动态字段描述符设定,同一张转发表中不同表项的动态字段区相互独立。

【技术特征摘要】
1.一种基于任意字段匹配的数据报文转发方法,其特征在于:用户通过基址、偏移量、长度三元组来指定匹配报文任意字段,通过多个三元组或者普通知名字段组成所需键值;一条转发表项包含静态字段表区和动态字段表区,静态字段区的字段类型和数目在转发表初始化阶段由静态字段描述符设定,所有转发表项的静态字段区的字段类型和数目均相同,动态字段区中的字段类型和数目是在转发表项增加时由新增对应的动态字段描述符设定,同一张转发表中不同表项的动态字段区相互独立。2.如权利要求1所述的基于任意字段匹配的数据报文转发方法,其特征在于:静态字段描述符和动态字段描述符均是由一个或多个知名字段或者三元组组成的序列串。3.如权利要求2所述的基于任意字段匹配的数据报文转发方法,其特征在于:静态字段表区是以静态字段提取器获得的待匹配值作为输入,进行通配查表,并输出匹配表项序号或者无表项命中信号。静态字段表区由静态字段表项组成,每一条静态字段表项包含三部分,分别是静态字段键值、静态字段掩码和动态字段表项首地址。4.如权利要求3所述的基于任意字段匹配的数据报文转发方法,其特征在于:静态字段键值和静态字段掩码的长度相等且均由静态字段描述符所规定。5.如权利要求2所述的基于任意字段匹配的数据报文转发方法,其特征在于:动态字段表区是对静态表区的扩展,动态字段表区的地址存储在静态字段表区的动态字段地址区中。6.如权利要求5所述的基于任意字段匹配的数据报文转发方法,其特征在于:动态字段表区包括三部分,分别是动态字段描述符区、动态字段键值区和动态字段掩码区。7.如权利要求2所述的基于任意字段匹配的数据报文转发方法,其特征在于:每张转发表只有一个静态字段描述符,在转发表初始化阶段由用户通过配置脚本或者配置命令的方式来设置该转发表的静态字段描述符。8.如权利要求1-3中任一项所述的基于任意字段匹配的数据报文转发方法,其特征在于:采用字段提取器,字段提取器每次能从字段描述符所指定的报文位置提取出相应全部字段内容,并且将字段内容按照字段描述符中字段的先后次序组合成待匹配值供字段区进行查找匹配。9.一种采用权利要求1-8任一项所述的基于任意字段匹配的数据报文转发方法进行用户配置增加转发表项的方法:其特征在于: (1)依据转发表静态字段描述符包含字段及其先后次序,向表项中静态字段表区填入静态字段键值和静态字段掩码,用户没有指定的静态字段设置为缺省通配; (2)若表项需要匹配静态字段描述符以外的动态字段,则包括三步操作: a)根据动态字段的类型和数目为动态字段表区分配空间; b)根...

【专利技术属性】
技术研发人员:李丹唐勇
申请(专利权)人:开网科技北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1