报文处理方法及装置制造方法及图纸

技术编号:14577335 阅读:228 留言:0更新日期:2017-02-07 19:44
本申请提供报文处理方法、流表生成方法及装置。转发装置接收第一报文,从所述第一报文的第一首部获取第一字段,从所述第一报文的第二首部获取第二字段,通过一个第一查找请求在第一流表中查找是否存在与第一查找关键字匹配的表项。根据匹配的表项对所述第一报文进行处理。所述第一字段用于标识所述第一报文是否包含所述第一首部的下一个首部。第二字段用于标识所述第一报文是否包含所述第二首部的下一个首部。所述第一查找请求携带所述第一查找关键字。所述第一查找关键字包含所述第一字段和所述第二字段。上述方案可以减少开销。

【技术实现步骤摘要】

本专利技术涉及通信技术,尤其涉及报文处理方法、流表(flowtable)生成方法及装置。
技术介绍
现有技术中,转发装置可以接收的不同报文。不同的报文的数据格式可能并不相同。例如,不同的报文可能包括不同协议的首部(header)。举例来说,转发装置接收两个以太网帧(Ethernetframe)。一个Ethernetframe可能包括网际协议第四版(internetprotocolversion4,IPv4)首部。另一个Ethernetframe可能包括网际协议第六版(internetprotocolversion6,IPv6)首部。进一步地,所述两个Ethernetframe中所述IPv4首部或IPv6首部的下一个首部,可能是传输控制协议(transmissioncontrolprotocol,TCP)首部,也可能是用户数据报协议(userdatagramprotocol,UDP)首部。对于包括不同首部的报文,转发装置需要按照不同的方式进行处理。当报文中包含多个首部时,需要对存储器进行多次访问,才能确定报文中包含了哪些首部,从而确定如何对报文进行处理。上述技术方案的开销比较大。
技术实现思路
本专利技术实施例提供了一种报文处理方法、流表生成方法及装置,有助于减少对存储器访问的次数,降低开销。本专利技术实施例提供的技术方案如下:第一方面,提供了一种报文处理方法,包括:转发装置接收第一报文,所述第一报文包括第一首部和第二首部,所述第二首部是所述第一首部的下一个首部,所述第一首部的协议是第一协议,所述第二首部的协议是第二协议。所述转发装置根据第一位置参数从所述第一首部获取第一字段,根据第二位置参数从所述第二首部获取第二字段,所述第一字段用于标识所述第一报文是否包含所述第一首部的下一个首部以及当所述第一报文包含所述第一首部的下一个首部时所述第一首部的下一个首部的协议,所述第二字段用于标识所述第一报文是否包含所述第二首部的下一个首部以及当所述第一报文包含所述第二首部的下一个首部时所述第二首部的下一个首部的协议。所述转发装置通过一个第一查找请求,在第一流表中查找是否存在与第一查找关键字匹配的表项,所述第一查找请求携带所述第一查找关键字,所述第一查找关键字包括所述第一字段和所述第二字段。所述转发装置确定所述第一流表中存在与所述第一查找关键字匹配的第一表项后,根据所述第一表项对所述第一报文进行处理,所述第一表项的匹配域包括第一比特串以及第一掩码,所述第一比特串包括第一子比特串和第二子比特串,所述第一掩码包括第一子掩码和第二子掩码。所述第一子比特串与所述第一子掩码进行位与运算的结果等于所述第一字段与所述第一子掩码进行位与运算的结果,所述第二子比特串与所述第二子掩码进行位与运算的结果等于所述第二字段与所述第二子掩码进行位与运算的结果,所述第一子掩码和所述第二子掩码的每一比特为1。或者所述第一子比特串与所述第一子掩码进行位或运算的结果等于所述第一字段与所述第一子掩码进行位或运算的结果,所述第二子比特串与所述第二子掩码进行位或运算的结果等于所述第二字段与所述第二子掩码进行位或运算的结果,所述第一子掩码和所述第二子掩码的每一比特为0。通过上述方案,转发装置从第一报文中获取第一查找关键字。第一查找关键字包含了来自第一首部的第一字段以及来自第二首部的第二字段。所述第一字段用于标识所述第一报文是否包含所述第一首部的下一个首部以及当所述第一报文包含所述第一首部的下一个首部时所述第一首部的下一个首部的协议。第二字段用于标识所述第一报文是否包含所述第二首部的下一个首部以及所述第一报文包含所述第二首部的下一个首部时所述第二首部的下一个首部的协议。所述转发装置通过一个第一查找请求在第一流表中确定与所述第一查找关键字匹配的第一表项,从而确定如何对报文进行处理。为确定如何对包含第一首部和第二首部的报文进行处理,所述转发装置不需要执行如下操作:对第一首部进行解析。根据对第一首部进行解析的结果,对第二首部进行解析。对第一首部进行解析需要执行一次查找。根据对第一首部进行解析的结果,对第二首部进行解析需要执行另一次查找。因此,第一方面提供的技术方案不需要针对第一首部和第二首部执行多次查找。例如,所述转发装置不需要先以第一字段为查找关键字通过访问存储器在一个流表中查找与所述第一字段匹配的表项。然后根据与所述第一字段匹配的表项从报文中获取第二字段,并以第二字段为查找关键字通过访问存储器在另一个流表中查找与所述第二字段匹配的表项。从而确定如何对报文进行处理。执行多次查找意味着转发装置需要多次访问存储器。因此,相对于需要对报文中的多个首部分别执行多次查找才能确定如何对报文进行处理的技术方案,本专利技术实施例提供的技术方案有助于减小开销,提高处理效率。可选地,所述转发装置接收所述第一报文之后,以及所述转发装置通过所述第一查找请求在所述第一流表中查找是否存在与所述第一查找关键字匹配的表项之前,所述方法还包括:所述转发装置根据第三位置参数从所述第一报文中获取第三字段,所述第一查找关键字还包括所述第三字段,所述第一比特串还包括第三子比特串,所述第一掩码还包括第三子掩码;其中所述第三子比特串与所述第三子掩码进行位与运算的结果等于所述第三字段与所述第三子掩码进行位与运算的结果,所述第三子掩码的每一比特为0;或者所述第三子比特串与所述第三子掩码进行位或运算的结果等于所述第三字段与所述第三子掩码进行位或运算的结果,所述第三子掩码的每一比特为1。可选地,所述转发装置接收第二报文,所述第二报文包括第三首部和第四首部,所述第四首部是所述第三首部的下一个首部,所述第三首部的协议是所述第一协议,所述第四首部的协议是第三协议。所述转发装置根据所述第一位置参数从所述第三首部获取第四字段,根据所述第二位置参数从所述第二报文中获取第五字段,根据所述第三位置参数从所述第四首部获取第六字段,所述第四字段用于标识所述第二报文是否包含所述第三首部的下一个首部以及当所述第二报文包含所述第三首部的下一个首部时所述第三首部的下一个首部的协议,所述第六字段用于标识所述第二报文是否包含所述第四首部的下一个首部以及当所述第二报文包含所述第四首部的下一个首部时所述第四首部的下一个首部的协议。所述转发装置通过一个第二查找请求,在所述第一流表中查找是否存在与第二查找关键字匹配的表项,所述第二查找请求中携带所述第二查找关键...
<a href="http://www.xjishu.com/zhuanli/62/201510868876.html" title="报文处理方法及装置原文来自X技术">报文处理方法及装置</a>

【技术保护点】
一种报文处理方法,其特征在于,包括:转发装置接收第一报文,所述第一报文包括第一首部和第二首部,所述第二首部是所述第一首部的下一个首部,所述第一首部的协议是第一协议,所述第二首部的协议是第二协议;所述转发装置根据第一位置参数从所述第一首部获取第一字段,根据第二位置参数从所述第二首部获取第二字段,所述第一字段用于标识所述第一报文是否包含所述第一首部的下一个首部以及当所述第一报文包含所述第一首部的下一个首部时所述第一首部的下一个首部的协议,所述第二字段用于标识所述第一报文是否包含所述第二首部的下一个首部以及当所述第一报文包含所述第二首部的下一个首部时所述第二首部的下一个首部的协议;所述转发装置通过一个第一查找请求,在第一流表中查找是否存在与第一查找关键字匹配的表项,所述第一查找请求携带所述第一查找关键字,所述第一查找关键字包括所述第一字段和所述第二字段;以及所述转发装置确定所述第一流表中存在与所述第一查找关键字匹配的第一表项后,根据所述第一表项对所述第一报文进行处理,所述第一表项的匹配域包括第一比特串以及第一掩码,所述第一比特串包括第一子比特串和第二子比特串,所述第一掩码包括第一子掩码和第二子掩码;其中所述第一子比特串与所述第一子掩码进行位与运算的结果等于所述第一字段与所述第一子掩码进行位与运算的结果,所述第二子比特串与所述第二子掩码进行位与运算的结果等于所述第二字段与所述第二子掩码进行位与运算的结果,所述第一子掩码和所述第二子掩码的每一比特为1;或者所述第一子比特串与所述第一子掩码进行位或运算的结果等于所述第一字段与所述第一子掩码进行位或运算的结果,所述第二子比特串与所述第二子掩码进行位或运算的结果等于所述第二字段与所述第二子掩码进行位或运算的结果,所述第一子掩码和所述第二子掩码的每一比特为0。...

【技术特征摘要】
1.一种报文处理方法,其特征在于,包括:
转发装置接收第一报文,所述第一报文包括第一首部和第二首部,所述
第二首部是所述第一首部的下一个首部,所述第一首部的协议是第一协议,
所述第二首部的协议是第二协议;
所述转发装置根据第一位置参数从所述第一首部获取第一字段,根据第
二位置参数从所述第二首部获取第二字段,所述第一字段用于标识所述第一
报文是否包含所述第一首部的下一个首部以及当所述第一报文包含所述第一
首部的下一个首部时所述第一首部的下一个首部的协议,所述第二字段用于
标识所述第一报文是否包含所述第二首部的下一个首部以及当所述第一报文
包含所述第二首部的下一个首部时所述第二首部的下一个首部的协议;
所述转发装置通过一个第一查找请求,在第一流表中查找是否存在与第
一查找关键字匹配的表项,所述第一查找请求携带所述第一查找关键字,所
述第一查找关键字包括所述第一字段和所述第二字段;以及
所述转发装置确定所述第一流表中存在与所述第一查找关键字匹配的第
一表项后,根据所述第一表项对所述第一报文进行处理,所述第一表项的匹
配域包括第一比特串以及第一掩码,所述第一比特串包括第一子比特串和第
二子比特串,所述第一掩码包括第一子掩码和第二子掩码;其中
所述第一子比特串与所述第一子掩码进行位与运算的结果等于所述第一
字段与所述第一子掩码进行位与运算的结果,所述第二子比特串与所述第二
子掩码进行位与运算的结果等于所述第二字段与所述第二子掩码进行位与运
算的结果,所述第一子掩码和所述第二子掩码的每一比特为1;或者
所述第一子比特串与所述第一子掩码进行位或运算的结果等于所述第一
字段与所述第一子掩码进行位或运算的结果,所述第二子比特串与所述第二
子掩码进行位或运算的结果等于所述第二字段与所述第二子掩码进行位或运
算的结果,所述第一子掩码和所述第二子掩码的每一比特为0。
2.根据权利要求1所述的方法,其特征在于,所述转发装置接收所述第
一报文之后,以及所述转发装置通过所述第一查找请求在所述第一流表中查
找是否存在与所述第一查找关键字匹配的表项之前,所述方法还包括:
所述转发装置根据第三位置参数从所述第一报文中获取第三字段,所述
第一查找关键字还包括所述第三字段,所述第一比特串还包括第三子比特串,
所述第一掩码还包括第三子掩码;其中
所述第三子比特串与所述第三子掩码进行位与运算的结果等于所述第三
字段与所述第三子掩码进行位与运算的结果,所述第三子掩码的每一比特为
0;或者
所述第三子比特串与所述第三子掩码进行位或运算的结果等于所述第三
字段与所述第三子掩码进行位或运算的结果,所述第三子掩码的每一比特为
1。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述转发装置接收第二报文,所述第二报文包括第三首部和第四首部,
所述第四首部是所述第三首部的下一个首部,所述第三首部的协议是所述第
一协议,所述第四首部的协议是第三协议;
所述转发装置根据所述第一位置参数从所述第三首部获取第四字段,根
据所述第二位置参数从所述第二报文中获取第五字段,根据所述第三位置参
数从所述第四首部获取第六字段,所述第四字段用于标识所述第二报文是否
包含所述第三首部的下一个首部以及当所述第二报文包含所述第三首部的下
一个首部时所述第三首部的下一个首部的协议,所述第六字段用于标识所述
第二报文是否包含所述第四首部的下一个首部以及当所述第二报文包含所述
第四首部的下一个首部时所述第四首部的下一个首部的协议;
所述转发装置通过一个第二查找请求,在所述第一流表中查找是否存在
与第二查找关键字匹配的表项,所述第二查找请求中携带所述第二查找关键
字,所述第二查找关键字包括所述第四字段、所述第五字段以及所述第六字
段;以及
所述转发装置确定所述第一流表中存在与所述第二查找关键字匹配的第
二表项后,根据所述第二表项对所述第二报文进行处理,所述第二表项的匹
配域包括第二比特串以及第二掩码,所述第二比特串包括第四子比特串、第
五子比特串以及第六子比特串,所述第二掩码包括第四子掩码、第五子掩码
以及第六子掩码;其中
所述第四子比特串与所述第四子掩码进行位与运算的结果等于所述第四
字段与所述第四子掩码进行位与运算的结果,所述第五子比特串与所述第五
子掩码进行位与运算的结果等于所述第五字段与所述第五子掩码进行位与运
算的结果,所述第六子比特串与所述第六子掩码进行位与运算的结果等于所
述第六字段与所述第六子掩码进行位与运算的结果,所述第四子掩码和所述
第六子掩码的每一比特为1,所述第五子掩码的每一比特为0;或者
所述第四子比特串与所述第四子掩码进行位或运算的结果等于所述第四
字段与所述第四子掩码进行位或运算的结果,所述第五子比特串与所述第五
子掩码进行位或运算的结果等于所述第五字段与所述第五子掩码进行位或运
算的结果,所述第六子比特串与所述第六子掩码进行位或运算的结果等于所
述第六字段与所述第六子掩码进行位或运算的结果,所述第四子掩码和所述
第六子掩码的每一比特为0,所述第五子掩码的每一比特为1。
4.根据权利要求1至3中任一所述的方法,其特征在于:
所述第一位置参数包括第一偏移和第一长度,所述第一偏移为所述第一
字段的起始位置距所述第一首部的起始位置的偏移,所述第一长度为所述第
一字段的长度;
所述第二位置参数包括第二偏移和第二长度,所述第二偏移为所述第二
字段的起始位置距所述第一首部的起始位置的偏移,所述第二长度为所述第
二字段的长度。
5.根据权利要求1至3中任一所述的方法,其特征在于:
所述第一位置参数包括第一基本偏移、第一具体偏移和第一长度,所述
第一基本偏移为零,所述第一具体偏移为所述第一字段的起始位置距所述第
一首部的起始位置的偏移,所述第一长度为所述第一字段的长度;
所述第二位置参数包括第二基本偏移、第二具体偏移和第二长度,所述
第二长度为所述第二字段的长度,所述第二基本偏移为所述第一首部起始位
置距所述第二首部的起始位置的偏移,所述第二具体偏移为所述第二字段起
始位置距所述第二首部的起始位置的偏移。
6.一种流表生成方法,其特征在于,包括:
处理器获取第一流表和第二流表,所述第一流表包括第一表项,所述第
一表项包括匹配域和跳转指令,所述第一表项中的跳转指令指向所述第二流
表,指向所述第二流表的跳转指令的数量等于1,所述第二流表包括第二表
项,所述第二表项包括匹配域;以及
所述处理器生成一个第三流表,所述第三流表包括第三表项,所述第三
表项包括匹配域,所述第三表项的匹配域包括第一子匹配域和第二子匹配域,
所述第一子匹配域包括第一子比特串和第一子掩码,所述第二子匹配域包括
第二子比特串和第二子掩码,所述第一子比特串和所述第一表项的匹配域相
等,所述第二子比特串和所述第二表项的匹配域相等,其中
所述第一子掩码和所述第二子掩码的每一比特为1,所述第一子匹配域
和所述第二子匹配域的掩码匹配算法为位与运算;或者
所述第一子掩码和所述第二子掩码的每一比特为0,所述第一子匹配域
和所述第二子匹配域的掩码匹配算法为位或运算。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述处理器获取第四流表,所述第四流表包括第四表项,所述第四表项
包括匹配域,所述第一流表还包括第五表项,所述第五表项包括匹配域和跳
转指令,所述第五表项中的跳转指令指向所述第四流表,指向所述第四流表
的跳转指令的数量等于1;
所述第三表项的匹配域还包括第三子匹配域,所述第三子匹配域包括第
三子比特串和第三子掩码,其中,
所述第三子掩码的每一比特为0并且所述第三子匹配域的掩码匹配算法
为位与运算,或者,所述第三子掩码的每一比特为1并且所述第三子匹配域
的掩码匹配算法为位或运算;
所述第三流表还包括第六表项,所述第六表项包括匹配域,所述第六表
项的匹配域包括第四子匹配域,第五子匹配域和第六子匹配域,所述第四子
匹配域包括第四子比特串和第四子掩码,所述第五子匹配域包括第五子比特
串和第五子掩码,所述第六子匹配域包括第六子比特串和第六子掩码,所述
第四子比特串与所述第五表项的匹配域相等,所述第六子比特串与所述第四

\t表项的匹配域相等,其中,
所述第四子掩码的每一比特为1,所述第五子掩码的每一比特为0,所述
第六子掩码的每一比特为1,所述第四子匹配域,所述第五子匹配域和所述
第六子匹配域的掩码匹配算法为位与运算;或者
所述第四子掩码的每一比特为0,所述第五子掩码的每一比特为1,所述
第六子掩码的每一比特为0,所述第四子匹配域,所述第五子匹配域和所述
第六子匹配域的掩码匹配算法为位或运算。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述处理器获取第一位置参数和第二位置参数,所述第一位置参数用于
标识第一字段在转发装置接收的第一报文中的位置,所述第一字段是所述第
一报文中第一协议的首部中的字段,所述第一字段用于与所述第一表项的匹
配域进行匹配,所述第二位置参数用于标识第二字段在所述第一报文中的位
置,所述第二字段是所述第一报文中第二协议的首部中的字段,所述第二字
段用于与所述第二表项的匹配域进行匹配,所述第一报文中所述第二协议的
首部是所述第一报文中所述第一协议的首部的下一个首部;以及
所述处理器根据所述第一位置参数和所述第二位置参数,生成第三位置
参数和第四位置参数,所述第三位置参数用于标识第三字段在转发装置接收
的第二报文中的位置,所述第三字段是所述第二报文中所述第一协议的首部
中的字段,所述第三字段用于与所述第三表项的第一子匹配域进行匹配,所
述第四位置参数用于标识第四字段在所述第二报文中的位置,所述第四字段
是所述第二报文中所述第二协议的首部中的字段,所述第四字段用于与所述
第三表项的第二子匹配域进行匹配,所述第二报文中所述第二协议的首部是
所述第二报文中所述第一协议的首部的下一个首部;
所述第三字段的起始位置距所述第二报文中所述第一协议的首部的起始
位置的偏移等于所述第一字段的起始位置距所述第一报文中所述第一协议的
首部的起始位置的偏移,所述第四字段的起始位置距所述第二报文中所述第
二协议的首部的起始位置的偏移等于所述第二字段的起始位置距所述第一报
文中所述第二协议的首部的起始位置的偏移。
9.根据权利要求8所述的方法,其特征在于,所述第一位置参数和所述
第二位置参数中的每一个位置参数分别包括偏移和长度,所述第三位置参数
和所述第四位置参数中的每一个位置参数分别包括基本偏移、具体偏移和长
度,所述第三位置参数中的基本偏移为零,所述第三位置参数中的具体偏移
与所述第一位置参数中的偏移相等,所述第三位置参数中的长度与所述第一
位置参数中的长度相等,所述第四位置参数的基本偏移等于所述第二报文中
所述第一协议的首部的长度,所述第四位置参数中的具体偏移与所述第二位
置参数中的偏移相等,所述第四位置参数中的长度与所述第二位置参数中的
长度相等。
10.根据权利要求6至9中任一所述的方法,其特征在于,指向所述第
一流表的跳转指令的数量大于1,或者没有跳转指令指向所述第一流表。
11.一种报文处理的装置,其特征在于,包括接收单元,获取单元,查
找单元和处理单元:
所述接收单元,用于接收第一报文,所述第一报文包括第一首部和第二
首部,所述第二首部是所述第一首部的下一个首部,所述第一首部的协...

【专利技术属性】
技术研发人员:喻径舟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1