CN109450797B - 一种报文转发方法、装置和计算机设备 - Google Patents
一种报文转发方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN109450797B CN109450797B CN201811371901.6A CN201811371901A CN109450797B CN 109450797 B CN109450797 B CN 109450797B CN 201811371901 A CN201811371901 A CN 201811371901A CN 109450797 B CN109450797 B CN 109450797B
- Authority
- CN
- China
- Prior art keywords
- flow table
- forwarded
- message
- matched
- function
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Abstract
本申请提供了一种报文转发方法、装置和计算机设备,该方法包括:接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种报文转发方法、装置和计算机设备。
背景技术
虚拟交换机用于连接虚拟机网络,能够实现物理交换机所具有的大部分功能,生成流表就是其中一项。由于虚拟交换机需要转发的不同的报文的功能可能不同,因此,该虚拟交换机中流表的数目与需要转发的报文总共具有的功能的数目相同,每种功能对应一个流表。
若虚拟交换机需要转发的报文总共具有N种功能,虚拟交换机在生成流表时,无论该虚拟交换机能够转发的报文具有几种功能,系统均会生成N个流表,若虚拟交换机需要转发的报文具有M种功能(M小于N),虚拟交换机在接收到报文后,比对该报文和N个流表,若M种功能能够与N个流表匹配,则转发报文,若报文中具有一种功能与流表中功能不匹配,则丢弃该报文。但是,若报文期望成功转发,需要比对完虚拟交换机中所有的流表才可以转发,大大影响报文的转发性能,而且多级流表的管理比较复杂。
发明内容
有鉴于此,本申请的目的在于提供一种报文转发方法、装置和计算机设备,用于解决现有技术中转发报文性能差的问题。
第一方面,本申请实施例提供了一种报文转发方法,该方法包括:
接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列;
当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
可选地,所述待转发报文与高优先级的功能的流表项匹配成功,包括:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
可选地,所述高优先级的功能的流表项中包含的匹配域包括:第一匹配条件,所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,包括:
若所述待转发报文与所述第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与所述第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
可选地,所述高优先级的功能的流表项中包含的匹配域还包括:第二匹配条件,在所述确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配之后,所述方法还包括:
若所述待转发报文与所述第二匹配条件相匹配,则基于匹配的所述第二匹配条件的流表项中的动作域,丢弃所述待转发报文;
若所述待转发报文与所述第二匹配条件不匹配,进一步匹配低优先级的功能的流表项。
可选地,所述方法还包括:
若获取的值与所述高优先级的功能的流表项中的标志位的值不相同,进一步匹配低优先级的功能的流表项。
可选地,在所述通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位之后,所述方法还包括:
在丢弃所述待转发报文后或转发所述待转发报文后,对所述标志寄存器对应功能的标志位进行复位。
第二方面,本申请实施例提供了一种报文转发装置,该装置包括:
确定模块,用于接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列;
转发模块,用于当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
可选地,所述确定模块具体用于:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
可选地,高优先级的功能的流表项中包含的匹配域包括:第一匹配条件,所述确定模块具体用于:
若所述待转发报文与所述第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与所述第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
第三方面,本申请实施例提供了一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请实施例提供的报文转发方法,预设的流表中包含有能够处理一种或多种功能的流表项,在接收到待转发报文后,根据待转发报文包含的内容,确定待转发报文是否与流表中各流表项匹配,待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对待转发报文进行处理,若基于匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器中对应功能的标志位进行置位,并再次将待转发报文提交到流表进行匹配处理,只有待转发报文能够匹配流表项中各功能的流表项,才得以成功转发,从而不需要比对虚拟交换机中所有的流表,提高了待转发报文的转发性能。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种报文转发方法的流程示意图;
图2为本申请实施例提供的一种报文转发装置的结构示意图;
图3为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种报文转发方法,如图1所示,该方法应用于虚拟交换机中,该方法包括以下步骤:
S101,接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列。
这里,待转发报文可以为IP报文、TCP报文、ARP报文等等;虚拟交换机中一般预先存储流表,虚拟交换机中每个接收端口对应一个流表,每个端口接收到的报文具有的功能是预先设定好的,该流表中包括多个流表项,每个流表项包含有匹配域和动作域,每个流表项包含有与虚拟交换机接收到的报文具有的功能对应的匹配域,虚拟交换机的网卡可以配置一个或一个以上的功能,也可以不配置功能,流表中各流表项一般是按照功能的优先级由高到低的顺序进行排序,功能优先级越高的排序越靠前,可根据实际情况确定;虚拟交换机的网卡配置的功能可以为绑定互联网协议(Internet Protocol,IP)地址、入口方向的访问控制列表(Access Control List,ACL)、指定目的IP地址等等。
S102,当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
这里,动作域中包含有使得报文重新提交到流表进行比对的动作和丢弃报文的动作等;标志寄存器中包含有与网卡配置的功能对应的标志位,标志位一般通过设定字段进行标识,如,标志位通过flag1、flag2等进行表示。
在待转发报文与流表进行比对时,包括以下步骤:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若获取的值与所述高优先级的功能的流表项中的标志位的值不相同,进一步匹配低优先级的功能的流表项;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
在确定待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配时,包括以下步骤:
若所述待转发报文与第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
在所述确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配之后,所述方法还包括:
若所述待转发报文与第二匹配条件相匹配,则基于匹配的第二匹配条件的流表项中的动作域,丢弃所述待转发报文;
若所述待转发报文与所述第二匹配条件不匹配,进一步匹配低优先级的功能的流表项。
其中,高优先级的功能的流表项中包含的匹配域包括:第一匹配条件和第二匹配条件。
这里,流表中每种功能对应至少两个流表项,每个流表项包含的匹配域中可以为第一匹配条件,或者第二匹配条件,每种功能对应的第一匹配条件或第二匹配条件中均包括有与该功能对应的标志位,不同功能对应的标志位不同;第一匹配条件一般为确定匹配条件,也就是说,当待转发报文的封装报头中的内容与第一匹配条件匹配时,说明待转发报文具有当前流表项对应的功能,此时,执行包含有第一匹配条件的匹配域对应的动作域,也就是,执行将报文重新提交到流表的动作,使得报文与各流表项继续进行比对;第二匹配条件一般为否定匹配条件,也就是说,当待转发报文的封装报头中的内容与第二匹配条件匹配时,说明待转发报文不具有当前流表项对应的功能,此时,执行包含有第二匹配条件的匹配域对应的动作域,也就是,丢弃转发报文。
第一匹配条件和第二匹配条件在流表中的位置可以根据实际情况确定,一般地,在流表中每个功能对应的包含第二匹配条件的流表项位于包含第一匹配条件的流表项之后,也可以根据实际情况确定流表项的排序;流表中最后一个流表项设置的匹配条件一般为空,即,所有报文的内容均可以满足最后一个流表项的匹配域,也就是说,能够匹配到流表中最后一项的匹配条件的报文都可以进行转发。在实际应用中,流表中的功能的排序是按照功能优先级由高到低的顺序,而每种功能对应的流表项的排序可以随机进行排序,如,流表包括f1功能和f2功能,f1的优先级高于f2的优先级,f1对应的标志位为flag1,f2对应的标志位为flag2,f1对应的包含第一匹配条件的流表项位于包含第二匹配条件的流表项之前,f2对应的流表项的排序与f1对应的流表项的排序方式相同;每种功能对应的匹配域中均包括标志位,在设置完每个功能对应的匹配域中的匹配条件后,流表中最后一项对应的匹配域为空(也就是下表中的E行),流表可以参考下表:
标志寄存器中的标志位一般是根据流表中的功能设置的,标志寄存器中标志位的初始值一般为0,标志寄存器中标志位的数目与流表中包含的功能的数目相同。
虚拟交换机中的每个接收端口在接收到待转发报文后,对待转发报文进行解析,得到待转发报文封装报头的内容,将待转发报文提交到与当前接收端口对应的流表,比对待转发报文封装报头的内容与流表中各流表项。
若待转发报文封装报头的内容能够与流表中各功能的匹配域中的第一匹配条件匹配,虚拟交换机转发该待转发报文,若待转发报文封装报头的内容仅能够与流表中部分功能对应的第一匹配条件匹配,且与流表中部分功能对应的第二匹配条件匹配,则根据动作域,丢弃该待转发报文;若接收到的待转发报文不具有功能时,接收到的待转发报文不满足流表中各功能对应的第一匹配条件或第二匹配条件,也就是说,与流表中最后一个流表中的匹配域匹配,则执行该匹配域对应的动作域,即,转发待转发报文。
以流表包含两种功能,两种功能对应两个匹配条件(一个为第一匹配条件,一个为第二匹配条件),第一种功能的优先级高于第二种功能,且第一种功能对应的包含第一匹配条件的流表项位于包含第二匹配条件的流表项之前,第二种功能对应的包含包含第一匹配条件的流表项位于包含第二匹配条件的流表项之前;以上述包括两种功能的流表为例说明,在接收到待转发报文后,解析待转发报文,得到待转发报文封装报头的内容,与流表中第一种功能对应的第一匹配条件进行比对,在与第一种功能对应的第一匹配条件进行比对时,判断第一种功能对应的第一匹配条件中是否包含标志位,若第一种功能对应的第一匹配条件中包含有标志位,则从标志寄存器获取对应标志位的值,判断从标志寄存器获取的值与第一种功能对应的第一匹配条件中包含的标志位的值是否相同。
若从标志寄存器获取的值与第一种功能对应的第一匹配条件中包含的标志位的值相同,则判断待转发报文封装报头的内容是否满足流表中第一种功能对应的第一匹配条件,若待转发报文封装报头的内容满足流表中第一种功能对应的第一匹配条件,则在标志寄存器中对第一种功能对应的标志位进行置位,执行第一种功能对应的包含第一匹配条件的匹配域对应的动作域,也就是,将待转发报文重新提交到流表,与流表进行比对,重新执行确定第一种功能对应的第一匹配条件中是否包含有标志位的步骤。
这里需要说明,在标志寄存器中对第一种功能对应的标志位进行置位(如,置位后的标志位为1)后,该待转发报文会重新与流表中第一个功能对应的第一匹配条件进行比对,由于置位后的标志位为1,因此,重新比对时,置位后的标志位与流表中的第一匹配条件中的标志位不一致,会进入第一种功能对应的下一个匹配条件进行比对,也就是,与第一种功能对应的第二匹配条件进行比对。
重新比对待转发报文封装报头的内容与第一种功能对应的第一匹配条件时,由于第一匹配条件包含的标志位的值与标志寄存器中的值不相同,会跳转到第一种功能对应的下一个匹配域,下一个匹配域一般包含有第二匹配条件,待转发报文封装报头的内容与第二匹配条件不匹配时,此时,待转发报文封装报头的内容不满足流表中第一个功能对应的第一匹配条件和第二匹配条件,会跳转到第二个功能,比对待转发报文封装报头的内容和第二钟功能的匹配条件时,与第一种功能的过程相同,此处不再进行过多说明,直至流表中所有功能的匹配域的匹配操作执行完毕,也就是,确定待转发报文与流表中各功能所对应的包含第一匹配条件的匹配域匹配,执行流表中最后一个流表项中的动作域,转发待转发报文。
在转发待转发报文时,根据待转发报文中的目的MAC地址查找转发表,在转发表中查找到与目的MAC地址匹配的MAC地址后,根据匹配的MAC地址对应的出端口进行报文转发,现有技术已有详细介绍,此处不再进行过多说明。
若待转发报文封装报头的内容不满足流表中第一种功能对应的第一匹配条件,则跳转到第一种功能对应的下一个匹配条件,也就是,第一种功能对应的第二匹配条件,从标志寄存器获取的值与第二匹配条件包含的标志位的值相同,则确定待转发报文封装报头的内容是否与第一个功能对应的第二匹配条件匹配,若待转发报文与第一个功能对应的第二匹配条件匹配,则执行第一个功能对应的包含第二匹配条件的匹配域对应的动作域,即,丢弃该待转发报文。
若从标志寄存器获取的值与第一种功能对应的第一匹配条件中包含的标志位的值不相同,则跳转到与第一种功能对应的下一个匹配域中,直到从流表中的流表项中查找到的相应标志位的值与从标志寄存器获取的值相同后,进一步,确定待转发报文封装报头的内容是否满足匹配域中的第一匹配条件或第二匹配条件,若从流表中各功能对应的流表项中查找不到与从标志寄存器获取的值相同的标志位,则执行表征优先级最低的功能的流表项中的动作域,也就是,流表中的最后一个流表项中的动作域,即,转发待转发报文。
本申请以虚拟交换机中的网卡配置两个功能为例进行说明,虚拟交换机中的网卡配置一个功能的情况与两个功能的情况相同,不进行一一赘述。由于在网卡配置的功能大于两个时,通过一个流表进行比对也会对报文的转发产生一定影响,优选地,本申请的流表中包括两种功能和每种功能对应的匹配域。
例如,虚拟交换机中的接收端口为22,接收端口22接收的报文具有的功能为绑定IP和入方向ACL。绑定IP为172.16.72.146,入方向acl为丢弃到172.16.70.2的报文,允许其它通过。
流表为L1,L1流表中具有绑定IP和入方向ACL,绑定IP对应有一个第一匹配条件和一个第二匹配条件,入方向ACL对应的一个第一匹配条件和一个第二匹配条件,标志寄存器中与绑定IP对应的标志位对应的标志位的初始值为flag1=0,与入方向ACL对应的标志位对应的标志位的初始值为flag2=0,默认流表L1如下表所示:
其中,在标识B中的第二匹配条件中,all ip指代所有的ip。
若虚拟机发出的待转发报文的源IP地址为:192.168.2.146,目的IP地址为192.168.10.91,接收端口22接收到此待转发报文后,流表中A标识对应的匹配域中的标志位flag1的值与寄存器中的对应标志位的值相同,该待转发报文的源IP地址不满足标识A对应的第一匹配条件,跳转到B标识行,流表中B标识对应的匹配域中的标志位flag1的值与标志寄存器中的对应的标志位的值相同,该待转发报文的源IP地址满足标识B对应的第二匹配条件,此时,执行标识B中的动作域,也就是,丢弃该待转发报文。
若虚拟机发出的待转发报文的源IP地址为:172.16.72.146,目的IP地址为172.16.70.2,接收端口22接收到此待转发报文后,比对流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中对应的标志位的值,此时,流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值相同,该待转发报文的源IP地址满足标识A对应的第一匹配条件,将标志寄存器中对应标志位的值置位为1,重新比对流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中的对应标志位的值,此时,流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值不同,跳转到B标识行,流表中B标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值不同,跳转到C标识行,比对流表中C标识对应的匹配域的标志位flag2的值与标志寄存器中的对应标志位的值,此时,流表中C标识对应的匹配域中的标志位flag2的值与寄存器中的对应标志位的值相同,该待转发报文的目的IP地址满足标识C对应的第二匹配条件,执行标识C中的动作域,也就是,丢弃该待转发报文。
若虚拟机发出的待转发报文的源IP地址为:172.16.72.146,目的IP地址为172.16.70.3,接收端口22接收到此待转发报文后,比对流表中A标识对应的匹配域中的标志位flag1的值与寄存器中的对应标志位的值,此时,流表中A标识对应的匹配条件中的标志位flag1的值与标志寄存器中的对应标志位的值相同,该待转发报文的源IP地址满足标识A对应的第一匹配条件,将标志寄存器中相应标志位的值置位为1,重新比对流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值,此时,流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中的对应标志位的值不同,跳转到B标识行,流表中B标识对应的匹配域的标志位flag1的值与标志寄存器中对应标志位的值不同,跳转到C标识行,比对流表中C标识对应的匹配域中的标志位flag2的值与标志寄存器中对应标志位的值,此时,流表中C标识对应的匹配域中的标志位flag2的值与标志寄存器中对应标志位的值相同,但是该待转发报文的目的IP地址不满足标识C对应的第二匹配条件,跳转到D标识行,流表中D标识对应的匹配域中的标志位flag2的值与标志寄存器中对应标志位的值相同,该待转发报文封装报头的内容满足标识D对应的第一匹配条件,此时,将标志寄存器中相应标志位的值置位为1,重新比对流表中A标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值,此时,流表中A标识、B标识对应的匹配域中的标志位flag1的值与标志寄存器中对应标志位的值不同,流表中C标识、D标识对应的匹配域中的标志位flag2的值与标志寄存器中对应标志位的值不同,跳转到E行,即,确定待转发报文与流表中各功能所对应的包含第一匹配条件的匹配域匹配,执行标识E行中的动作域,也就是,转发待转发报文。
在丢弃所述待转发报文后或转发所述待转发报文后,对所述标志寄存器对应功能的标志位进行复位。由于流表中标志位的值与寄存器中的初始值相同,因此,当待转发报文封装报头的内容能够与流表中对应的功能的包含第一匹配条件的匹配域匹配时,转发该待转发报文。在转发待转发报文后,对寄存器中各标志位进行复位,也就是,将标志位的值由1变更为0。
在现有技术中,虚拟交换机能够转发的多种报文总共具有的功能为N种,那么,系统在虚拟交换机中下发有N个流表,一种功能对应一个流表,每个流表设置有功能的匹配条件。由于进入虚拟交换机的报文同时具有N种功能的概率比较小,因此,考虑进入虚拟交换机的报文具有M(M小于N)种功能的情况。虚拟交换机在接收到报文后,依次比对报文和N个流表,若该报文的内容满足当前流表中的第二匹配条件,则丢弃该报文,若该报文的内容满足当前流表中的第一匹配条件,则报文进入下一个流表进行匹配,若该报文的内容不满足当前流表中的第一匹配条件或第二匹配条件,则该报文进入下一个流表进行匹配。也就说,只有报文能够匹配到第N个流表时,才验证报文具备了M种功能,才会对该报文进行转发。但是,对于以上情况,无论报文具有几种功能,若期望该报文成功转发,都需要比对完虚拟交换机中所有的流表才可以转发,大大影响影响报文的转发性能,而且多级流表的管理比较复杂。而本申请虚拟交换机中仅设置一个流表,该一个流表包括各接收端口配置的各个功能,以及与各个功能对应的匹配域,每个接收端口接收到的待转发报文在满足流表中各功能的匹配域中的第一匹配条件后,才得以成功转发,从而不需要比对虚拟交换机中所有的流表,提高了待转发报文的转发性能。
本申请实施例提供了一种报文转发装置,如图2所示,该装置包括:
确定模块21,用于接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列;
处理模块22,用于当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
可选地,所述确定模块21具体用于:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
可选地,高优先级的功能的流表项中包含的匹配域包括:第一匹配条件,所述确定模块21具体用于:
若所述待转发报文与所述第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与所述第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
可选地,所述高优先级的功能的流表项中包含的匹配域还包括:第二匹配条件,所述处理模块22还用于:
若所述待转发报文与所述第二匹配条件相匹配,则基于匹配的所述第二匹配条件的流表项中的动作域,丢弃所述待转发报文;
若所述待转发报文与所述第二匹配条件不匹配,进一步匹配低优先级的功能的流表项。
可选地,所述处理模块22还用于:
若获取的值与所述高优先级的功能的流表项中的标志位的值不相同,进一步匹配低优先级的功能的流表项。
可选地,所述装置还包括:复位模块23,所述复位模块23用于:
在丢弃所述待转发报文后或转发所述待转发报文后,对所述标志寄存器对应功能的标志位进行复位。
如图3所示,本申请一实施例提供了一种计算机设备,用于执行图1中的报文转发方法,该设备包括存储器301、处理器302及存储在该存储器301上并可在该处理器302上运行的计算机程序,其中,上述处理器302执行上述计算机程序时实现上述报文转发方法的步骤。
具体地,上述存储器301和处理器302能够为通用的存储器和处理器,这里不做具体限定,当处理器302运行存储器301存储的计算机程序时,能够执行上述报文转发方法,用于解决现有技术中转发报文性能差的问题,本申请预设的流表中包含有能够处理一种或多种功能的流表项,在接收到待转发报文后,根据待转发报文包含的内容,确定待转发报文是否与流表中各流表项匹配,待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对待转发报文进行处理,若基于匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器中对应功能的标志位进行置位,并再次将待转发报文提交到流表进行匹配处理,只有待转发报文能够匹配流表项中各功能的流表项,才得以成功转发,从而不需要比对虚拟交换机中所有的流表,提高了待转发报文的转发性能。
对应于上述报文转发方法,本申请实施例还提供了一种计算机设备可读存储介质,该计算机设备可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述报文转发方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述报文转发方法,用于解决现有技术中转发报文性能差的问题,本申请预设的流表中包含有能够处理一种或多种功能的流表项,在接收到待转发报文后,根据待转发报文包含的内容,确定待转发报文是否与流表中各流表项匹配,待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对待转发报文进行处理,若基于匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器中对应功能的标志位进行置位,并再次将待转发报文提交到流表进行匹配处理,只有待转发报文能够匹配流表项中各功能的流表项,才得以成功转发,从而不需要比对虚拟交换机中所有的流表,提高了待转发报文的转发性能。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种报文转发方法,其特征在于,该方法包括:
接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列;所述流表包括各接收端口配置的各个功能对应的匹配域的流表项;
当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
2.如权利要求1所述的方法,其特征在于,所述待转发报文与高优先级的功能的流表项匹配成功,包括:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
3.如权利要求2所述的方法,其特征在于,所述高优先级的功能的流表项中包含的匹配域包括:第一匹配条件,所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,包括:
若所述待转发报文与所述第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与所述第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
4.如权利要求3所述的方法,其特征在于,所述高优先级的功能的流表项中包含的匹配域还包括:第二匹配条件,在所述确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配之后,所述方法还包括:
若所述待转发报文与所述第二匹配条件相匹配,则基于匹配的所述第二匹配条件的流表项中的动作域,丢弃所述待转发报文;
若所述待转发报文与所述第二匹配条件不匹配,进一步匹配低优先级的功能的流表项。
5.如权利要求2所述的方法,其特征在于,所述方法还包括:
若获取的值与所述高优先级的功能的流表项中的标志位的值不相同,进一步匹配低优先级的功能的流表项。
6.如权利要求1所述的方法,其特征在于,在所述通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位之后,所述方法还包括:
在丢弃所述待转发报文后或转发所述待转发报文后,对所述标志寄存器对应功能的标志位进行复位。
7.一种报文转发装置,其特征在于,该装置包括:
确定模块,用于接收待转发报文,判断所述待转发报文是否与流表中用于处理一种或多种功能的流表项匹配;其中,所述流表中包含用于对一种或多种功能的报文进行处理的流表项且所述流表项按功能的优先级从高到低排列;所述流表包括各接收端口配置的各个功能对应的匹配域的流表项;
处理模块,用于当所述待转发报文与高优先级的功能的流表项匹配成功后,根据匹配的流表项的动作域对所述待转发报文进行处理,若基于所述匹配的流表项的动作域确定需要进一步匹配低优先级的功能的流表项,则通过高优先级功能的流表项的动作域对标志寄存器对应功能的标志位进行置位,并再次将所述待转发报文提交到所述流表进行匹配处理;其中,所述标志寄存器包含与所述一种或多种功能对应的标志位,用于实现对匹配不同功能流表项的报文按功能优先级进行分级匹配互斥处理。
8.如权利要求7所述的装置,其特征在于,所述确定模块具体用于:
若所述高优先级的功能的流表项中包含标志位,从寄存器中获取所述标志位对应的值;
若获取的值与所述高优先级的功能的流表项中的标志位的值相同,则确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域是否匹配;
若所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配,确定所述待转发报文与高优先级的功能的流表项匹配成功。
9.如权利要求8所述的装置,其特征在于,高优先级的功能的流表项中包含的匹配域包括:第一匹配条件,所述确定模块具体用于:
若所述待转发报文与所述第一匹配条件相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域相匹配;
若所述待转发报文与所述第一匹配条件不相匹配,确定所述待转发报文与所述高优先级的功能的流表项中包含的匹配域不匹配。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811371901.6A CN109450797B (zh) | 2018-11-15 | 2018-11-15 | 一种报文转发方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811371901.6A CN109450797B (zh) | 2018-11-15 | 2018-11-15 | 一种报文转发方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109450797A CN109450797A (zh) | 2019-03-08 |
CN109450797B true CN109450797B (zh) | 2021-06-08 |
Family
ID=65552502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811371901.6A Active CN109450797B (zh) | 2018-11-15 | 2018-11-15 | 一种报文转发方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450797B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912935A (zh) * | 2019-12-18 | 2020-03-24 | 盛科网络(苏州)有限公司 | 基于芯片实现tcp/udp会话识别的方法及装置 |
CN113347100B (zh) * | 2021-05-31 | 2022-06-17 | 平安科技(深圳)有限公司 | 数据流传输方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954258A (zh) * | 2014-03-26 | 2015-09-30 | 中兴通讯股份有限公司 | 数据报文处理方法、装置及开放流交换机 |
CN105099920A (zh) * | 2014-04-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种设置sdn流表项的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263914B2 (en) * | 2015-09-21 | 2019-04-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to speed up flow routing in SDN network |
-
2018
- 2018-11-15 CN CN201811371901.6A patent/CN109450797B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954258A (zh) * | 2014-03-26 | 2015-09-30 | 中兴通讯股份有限公司 | 数据报文处理方法、装置及开放流交换机 |
CN105099920A (zh) * | 2014-04-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种设置sdn流表项的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109450797A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1754349B1 (en) | Hardware filtering support for denial-of-service attacks | |
US10742722B2 (en) | Server load balancing | |
US8854996B2 (en) | Accelerating data packet parsing | |
CN109617996B (zh) | 文件上传及下载方法、服务器及计算机可读存储介质 | |
US8555374B2 (en) | High performance packet processing using a general purpose processor | |
CN112468413B (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN106790170B (zh) | 一种数据包过滤方法及装置 | |
CN109450797B (zh) | 一种报文转发方法、装置和计算机设备 | |
CN106603736B (zh) | Mac地址处理方法及装置 | |
US9755978B1 (en) | Method and system for enforcing multiple rate limits with limited on-chip buffering | |
CN111866202B (zh) | 报文发送方法、装置、电子设备和存储介质 | |
US20200244578A1 (en) | Search Apparatus and Method | |
CN106789671B (zh) | 一种业务报文转发方法及设备 | |
CN106789450B (zh) | 一种报文的特征统计方法及装置 | |
CN115801927A (zh) | 报文解析方法及装置 | |
CN106453144B (zh) | 软件定义网络中的报文处理方法和设备 | |
CN111683036B (zh) | 数据存储方法、装置以及报文识别方法和装置 | |
CN110852391A (zh) | 一种基于多种分类器的以太网报文分类方法和装置 | |
CN112073357A (zh) | 一种访问控制列表下发方法及装置 | |
CN111147473A (zh) | 网络报文的转发方法、装置及系统 | |
CN114095231B (zh) | 一种报文过滤方法、装置、设备及介质 | |
CN110471702B (zh) | 任务处理方法、装置、存储介质及计算机设备 | |
CN112688985B (zh) | 通信方法及装置 | |
CN111106982B (zh) | 一种信息过滤方法、装置、电子设备及存储介质 | |
WO2016000627A1 (en) | Message processing |
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 |