CN119603312A - 镜像流表卸载方法、设备及介质 - Google Patents
镜像流表卸载方法、设备及介质 Download PDFInfo
- Publication number
- CN119603312A CN119603312A CN202411722209.9A CN202411722209A CN119603312A CN 119603312 A CN119603312 A CN 119603312A CN 202411722209 A CN202411722209 A CN 202411722209A CN 119603312 A CN119603312 A CN 119603312A
- Authority
- CN
- China
- Prior art keywords
- flow table
- mirror
- message
- reference flow
- message editing
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及计算机技术领域,尤其涉及一种镜像流表卸载方法、设备及介质。可以灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种镜像流表卸载方法、设备及介质。
背景技术
随着云计算网络、大数据、人工智能等技术的发展,催生出广泛的业务需求,致使数据中心快速增长,数据流量剧增,为此,需要实现高性能业务转发需求。有时候需要提供多出口镜像并利用硬件加速卸载技术将多出口镜像流表卸载到专用硬件上。但是,现有技术中,考虑到报文转发过程中需要进行各种编辑动作和校验,因此在卸载用于多出口镜像报文转发的镜像流表时面临动作数量较多、流表卸载失败等问题,也可能面临编辑动作较多的流表,从而可能消耗大量的资源来实现数据移动和校验操作,不利于提高镜像报文的转发效率。
为此,本申请提供了一种镜像流表卸载方法、设备及介质,可以灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
发明内容
第一方面,本申请提供了一种镜像流表卸载方法。所述镜像流表卸载方法包括:确定参考流表和与所述参考流表之间存在第一镜像关系的至少一个镜像流表,其中,所述参考流表定义了至少一个报文编辑动作,所述至少一个镜像流表各自定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系来执行报文编辑动作;生成组播复制组来代表所述至少一个镜像流表中的所有成员,基于所述参考流表与所述至少一个镜像流表之间的所述第一镜像关系,来构建所述参考流表与所述组播复制组之间的第二镜像关系,其中,所述组播复制组定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第二镜像关系来执行报文编辑动作,以便使用所述组播复制组的组播复制功能来实现所述至少一个镜像流表中的所有成员的镜像流表功能;卸载所述参考流表和所述组播复制组到报文转发硬件。
通过本申请的第一方面,可以灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
在本申请的第一方面的一种可能的实现方式中,所述参考流表所定义的所述至少一个报文编辑动作包括,对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。
在本申请的第一方面的一种可能的实现方式中,所述至少一个镜像流表各自所定义的报文编辑动作包括,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系,来对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。
在本申请的第一方面的一种可能的实现方式中,所述至少一个镜像流表各自所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。
在本申请的第一方面的一种可能的实现方式中,所述组播复制组所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。
在本申请的第一方面的一种可能的实现方式中,所述参考流表定义了在所述参考流表所定义的所述至少一个报文编辑动作中的每一个报文编辑动作完成后执行一次校验和计算。
在本申请的第一方面的一种可能的实现方式中,所述至少一个镜像流表中的每一个镜像流表定义了在该镜像流表所定义的每一个报文编辑动作完成后执行一次校验和计算。
在本申请的第一方面的一种可能的实现方式中,所述至少一个镜像流表各自所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。
在本申请的第一方面的一种可能的实现方式中,所述组播复制组定义了在所述组播复制组所定义的每一个报文编辑动作完成后执行一次校验和计算,并且,所述组播复制组所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。
在本申请的第一方面的一种可能的实现方式中,所述参考流表用于从第一物理功能的第一虚拟功能到所述第一物理功能的第二虚拟功能的报文流量转发,所述至少一个镜像流表用于对从所述第一物理功能的所述第一虚拟功能到所述第一物理功能的所述第二虚拟功能的原始报文进行报文字段修改和校验和计算,以便实现镜像报文转发到所述第一物理功能的除了所述第一虚拟功能和所述第二虚拟功能以外的其它虚拟功能。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种镜像流表卸载方法的流程示意图;
图2为本申请实施例提供的一种虚拟交换机的示意图;
图3为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种镜像流表卸载方法的流程示意图。如图1所示,所述镜像流表卸载方法包括以下步骤。
步骤S101:确定参考流表和与所述参考流表之间存在第一镜像关系的至少一个镜像流表,其中,所述参考流表定义了至少一个报文编辑动作,所述至少一个镜像流表各自定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系来执行报文编辑动作。
步骤S103:生成组播复制组来代表所述至少一个镜像流表中的所有成员,基于所述参考流表与所述至少一个镜像流表之间的所述第一镜像关系,来构建所述参考流表与所述组播复制组之间的第二镜像关系,其中,所述组播复制组定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第二镜像关系来执行报文编辑动作,以便使用所述组播复制组的组播复制功能来实现所述至少一个镜像流表中的所有成员的镜像流表功能。
步骤S105:卸载所述参考流表和所述组播复制组到报文转发硬件。
图1所示的镜像流表卸载方法,应用于云计算网络、大数据、人工智能等技术领域,可以满足高性能业务转发需求,特别是满足多出口镜像报文转发和镜像流表卸载,还可以灵活地适配各种数量的镜像流表的硬件卸载需求,这样可以更好地结合虚拟交换机等虚拟化产品和服务来满足入端口和出端口之间的流量转发需求,并且,在硬件卸载的镜像流表的数量较多的情况下,仍可以通过对报文字段修改和校验操作的优化设计来保持较低的资源占用,并且,面对较多的报文编辑动作的数量,仍可以通过镜像流表功能实现过程的优化设计来节省资源和提高资源利用率,实现了灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。下面详细说明这些。
参考图1,在步骤S101,确定参考流表和与所述参考流表之间存在第一镜像关系的至少一个镜像流表,其中,所述参考流表定义了至少一个报文编辑动作,所述至少一个镜像流表各自定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系来执行报文编辑动作。这里,参考流表用于从一个端口到另一个端口的报文转发,参考流表的数据格式定义了各种信息,例如源网络协议地址、源机器物理地址、源端口、目的端口等。取决于具体的报文封装格式和通信协议规范,可以对多个不同字段的组合进行修改,这样可以实现从一个端口到另一个端口的报文转发。以参考流表为基准,可以存在一个或者更多个镜像流表,这些镜像流表与所述参考流表之间存在第一镜像关系。这些镜像流表各自的数据格式也定义了对多个字段的组合进行修改。例如,参考流表的数据格式定义了对源网络协议地址、源机器物理地址、源端口、目的端口进行修改,则镜像流表的数据格式也可以要求对源网络协议地址、源机器物理地址、源端口、目的端口进行修改。考虑到要卸载的镜像流表的数量是难以预先确定的,而且参考流表所定义的报文编辑动作的数量和复杂度也是难以确定的,因此,如果将参考流表和存在镜像关系的镜像流表都整合到一个流表用于硬件卸载,则可能造成需要占用大量的资源来存储动作字段,以及可能导致大量的字段修改操作和校验和计算操作。
例如,假设参考流表是从pf1vf1到pf1vf2,然后镜像流表则是转发镜像报文到pf1vf3,pf1vf4,pf1vf5,pf1vf6,pf1vf7,pf1vf8,一共六个镜像报文。这里,pf1vf1,pf1vf2,pf1vf3,pf1vf4,pf1vf5,pf1vf6,pf1vf7,pf1vf8分别用于表示第一物理功能pf1的第一虚拟功能pf1vf1,第二虚拟功能pf1vf2,直到第八虚拟功能pf1vf8。这里,假设下面的流表定义了对原始报文和镜像报文进行报文转发过程中的报文编辑动作:
“Key:smac=11:22:33:44:55:66,dmac=99:88:77:66:55:44,sip=1.1.1.1,dip=1.1.1.2,sport=1000,dport=2000;inport=pf1vf1_rep;action=mod_sip=2.2.2.1,mod_smac=66:55:44:33:22:11,mod_sport=3000,mod_dport=4000,pf1vf2_rep,pf1vf3_rep,pf1vf4_rep,pf1vf5_rep,pf1vf6_rep,pf1vf7_rep,pf1vf8_rep”。
这里,Key表明是键值字段,其中,smac是源机器物理地址,dmac是目的机器物理地址,sip是源网络协议地址,dip是目的网络协议地址,sport是源端口,dport是目的端口,inport是入端口。Action表明是动作字段,这里,动作字段定义了对sip也即源网络协议地址进行报文字段修改,对smac也即源机器物理地址进行报文字段修改,对sport也即源端口进行报文字段修改,对dport也即目的端口进行报文字段修改。另外,上面的流表还示出了,参考流表定义了四个动作字段也即依次对源网络协议地址、源机器物理地址、源端口和目的端口进行报文字段修改的基础上,而面临总计六个镜像报文也即“pf1vf2_rep,pf1vf3_rep,pf1vf4_rep,pf1vf5_rep,pf1vf6_rep,pf1vf7_rep,pf1vf8_rep,”每一个镜像报文都需要依次对源网络协议地址、源机器物理地址、源端口和目的端口进行报文字段修改。因此,从pf1vf1到pf1vf2的原始报文以及存在镜像关系的6个镜像报文,总共7个报文,需要进行总计7乘以4为28次的报文字段修改。并且,原始报文和镜像报文,每一次进行报文字段修改后还需要进行报文校验和计算,因此,也需要进行总计28次的校验和计算,这样意味着需要执行总计56次的报文字段修改和校验和计算。
可以看出,当要卸载的镜像流表的数量进一步增加时,例如从六个镜像流表增加到100个镜像流表,如果将参考流表和存在镜像关系的镜像流表都整合到一个流表用于硬件卸载,这意味着大幅增加需要进行数据修改和校验和计算的次数,不利于提高网卡性能。另外,当参考流表所定义的报文编辑动作的数量进一步增加时,则会进一步增加需要占用的动作字段的数据长度,上面的示例中一共使用了11个动作字段,当需要使用16个或者更多的动作字段时,则可能导致超出了流表项的最大数据长度,从而可能导致流表卸载失败。另外,用于镜像流表的数据规格一般是有限的,因此,当云设备较多时,可能用完了所有分配给镜像流表的数据规格,导致多出来的数据业务需求无法通过专用硬件来满足,而只能走报文软转,也不利于提高网卡性能。因此,随着镜像报文和存在镜像关系的出端口的规模增加,会导致综合流表的动作字段增加,以至于超出了设计上限,从而无法存储和卸载到硬件上。而且需要执行的流表动作的次数也会增加,不利于提升网卡性能。
继续参考图1,在步骤S101的基础上,也就是在确定参考流表和与所述参考流表之间存在第一镜像关系的至少一个镜像流表之后,执行步骤S103,生成组播复制组来代表所述至少一个镜像流表中的所有成员,基于所述参考流表与所述至少一个镜像流表之间的所述第一镜像关系,来构建所述参考流表与所述组播复制组之间的第二镜像关系。其中,所述组播复制组定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第二镜像关系来执行报文编辑动作,以便使用所述组播复制组的组播复制功能来实现所述至少一个镜像流表中的所有成员的镜像流表功能。如此,用组播复制组来代表所述至少一个镜像流表中的所有成员,有效地取代了所有存在镜像关系的出端口和镜像报文的转发。只需要执行一个流表动作,也就是转发到组播复制组,而且,也只需要执行一次报文字段修改和校验和计算,也就是用组播复制组来作为所有的镜像报文的代表。例如,以上面的定义了对原始报文和镜像报文进行报文转发过程中的报文编辑动作的流表为参考,下面是相应的组播复制组的定义:
“Key:smac=11:22:33:44:55:66,dmac=99:88:77:66:55:44,sip=1.1.1.1,dip=1.1.1.2,sport=1000,dport=2000;inport=pf1vf1_rep;action=mod_sip=2.2.2.1,mod_smac=66:55:44:33:22:11,mod_sport=3000,mod_dport=4000,mcc_index=1”。
这里,Key表明是键值字段,其中,smac是源机器物理地址,dmac是目的机器物理地址,sip是源网络协议地址,dip是目的网络协议地址,sport是源端口,dport是目的端口,inport是入端口。Action表明是动作字段,这里,动作字段定义了对sip也即源网络协议地址进行报文字段修改,对smac也即源机器物理地址进行报文字段修改,对sport也即源端口进行报文字段修改,对dport也即目的端口进行报文字段修改。上面的组播复制组还定义了组播复制组的标识也就是mcc_index。可以看出,通过组播复制组来代表所述至少一个镜像流表中的所有成员,并且,基于所述参考流表与所述至少一个镜像流表之间的所述第一镜像关系,来构建所述参考流表与所述组播复制组之间的第二镜像关系。如此,所述组播复制组定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第二镜像关系来执行报文编辑动作,以便使用所述组播复制组的组播复制功能来实现所述至少一个镜像流表中的所有成员的镜像流表功能。可以看出,每一次对原始报文进行报文转发,需要进行原始报文的4次报文字段修改和4次校验和计算,相对的,组播复制组也需要进行4次报文字段修改和4次校验和计算。因此,利用生成的组播复制组来替代镜像流表,总共需要进行8次报文字段修改和8次校验和计算,累计执行16次的报文字段修改和校验和计算。并且,因为用组播复制组来有效地取代了所有存在镜像关系的出端口和镜像报文的转发,也大幅减少了所需要的动作字段的数量,组播复制组使用了5个动作字段。并且,通过引入组播复制组,只对原始报文进行一次报文编辑动作和校验和计算,后面可以直接通过组播复制组的组播复制功能,复制编辑后报文即可。通过将把流表中的端口和镜像动作组合得到组播复制组,并且分配索引也即组播复制组的标识也就是mcc_index,面对各种要卸载的镜像流表的数量,以及面对各种参考流表所定义的报文编辑动作的数量,面对各种镜像动作组合的复杂度,都可以整合到一个组播复制组的动作,大幅减少了动作字段的数量。
继续参阅图1,在步骤S103之后,执行步骤S105,卸载所述参考流表和所述组播复制组到报文转发硬件。如此,通过将把流表中的端口和镜像动作组合得到组播复制组,无论端口数量和镜像动作的数量是多少个,都可以整合到一个组播复制组的动作,大幅减少了动作字段的数量,并且,有效地避免了因为太多的动作字段而超出了流表项的最大数据长度进而导致流表卸载失败。另外,可以采用组播复制组规格,而不需要为镜像流表分配流表规格,这样可以节省流表资源,也可以灵活适配各种数量的镜像流表的硬件卸载需求,在出端口数量增加或者减少时,不需要对流表内容做出改动,仍可以用组播复制组来代表镜像流表中的所有成员以及利用组播复制功能来实现所有成员的镜像流表功能,有利于提高网卡性能。另外,通过引入组播复制组,只对原始报文进行一次报文编辑动作和校验和计算,后面可以直接通过组播复制组的组播复制功能,复制编辑后报文就可以适配要卸载的镜像流表的数量以及参考流表所定义的报文编辑动作的数量还有镜像动作组合的复杂度,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
图2为本申请实施例提供的一种虚拟交换机的示意图。如图2所示,虚拟交换机201上有多个端口,这些端口用于物理功能下的虚拟功能之间的流量转发。其中,这些端口包括第一物理功能的第一虚拟功能211,第一物理功能的第二虚拟功能212,第一物理功能的第三虚拟功能213,第一物理功能的第四虚拟功能214。参考图1所示的镜像流表卸载方法,参考流表用于从第一物理功能的第一虚拟功能211到所述第一物理功能的第二虚拟功能212的报文流量转发,所述至少一个镜像流表用于对从所述第一物理功能的第一虚拟功能211到所述第一物理功能的第二虚拟功能212的原始报文进行报文字段修改和校验和计算,以便实现镜像报文转发到所述第一物理功能的除了所述第一虚拟功能和所述第二虚拟功能以外的其它虚拟功能,也即第一物理功能的第三虚拟功能213和第一物理功能的第四虚拟功能214。如此,实现了灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
参考图1和图2,在一种可能的实施方式中,所述参考流表所定义的所述至少一个报文编辑动作包括,对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。如此,可以灵活适配各种通信协议规范、用户需求以及业务流的流表转发需求。
在一些实施例中,所述至少一个镜像流表各自所定义的报文编辑动作包括,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系,来对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。如此,可以灵活适配各种镜像流表的报文转发和硬件卸载需求。
在一些实施例中,所述至少一个镜像流表各自所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。如此,通过引入组播复制组,可以适配要卸载的镜像流表的数量以及参考流表所定义的报文编辑动作的数量还有镜像动作组合的复杂度,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
在一些实施例中,所述组播复制组所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。如此,通过引入组播复制组,只对原始报文进行一次报文编辑动作和校验和计算,后面可以直接通过组播复制组的组播复制功能,复制编辑后报文就可以适配要卸载的镜像流表的数量以及参考流表所定义的报文编辑动作的数量还有镜像动作组合的复杂度,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
在一种可能的实施方式中,所述参考流表定义了在所述参考流表所定义的所述至少一个报文编辑动作中的每一个报文编辑动作完成后执行一次校验和计算。如此,可以适配各种报文数据格式和协议规范的校验和操作。
在一些实施例中,所述至少一个镜像流表中的每一个镜像流表定义了在该镜像流表所定义的每一个报文编辑动作完成后执行一次校验和计算。如此,可以适配镜像流表和镜像报文的校验和操作。
在一些实施例中,所述至少一个镜像流表各自所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。如此,可以采用组播复制组规格,而不需要为镜像流表分配流表规格,这样可以节省流表资源,也可以灵活适配各种数量的镜像流表的硬件卸载需求,在出端口数量增加或者减少时,不需要对流表内容做出改动,仍可以用组播复制组来代表镜像流表中的所有成员以及利用组播复制功能来实现所有成员的镜像流表功能,有利于提高网卡性能。另外,通过引入组播复制组,只对原始报文进行一次报文编辑动作和校验和计算,后面可以直接通过组播复制组的组播复制功能,复制编辑后报文就可以适配要卸载的镜像流表的数量以及参考流表所定义的报文编辑动作的数量还有镜像动作组合的复杂度,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
在一些实施例中,所述组播复制组定义了在所述组播复制组所定义的每一个报文编辑动作完成后执行一次校验和计算,并且,所述组播复制组所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。如此,可以采用组播复制组规格,而不需要为镜像流表分配流表规格,这样可以节省流表资源,也可以灵活适配各种数量的镜像流表的硬件卸载需求,在出端口数量增加或者减少时,不需要对流表内容做出改动,仍可以用组播复制组来代表镜像流表中的所有成员以及利用组播复制功能来实现所有成员的镜像流表功能,有利于提高网卡性能。另外,通过引入组播复制组,只对原始报文进行一次报文编辑动作和校验和计算,后面可以直接通过组播复制组的组播复制功能,复制编辑后报文就可以适配要卸载的镜像流表的数量以及参考流表所定义的报文编辑动作的数量还有镜像动作组合的复杂度,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
在一种可能的实施方式中,所述参考流表用于从第一物理功能的第一虚拟功能到所述第一物理功能的第二虚拟功能的报文流量转发,所述至少一个镜像流表用于对从所述第一物理功能的所述第一虚拟功能到所述第一物理功能的所述第二虚拟功能的原始报文进行报文字段修改和校验和计算,以便实现镜像报文转发到所述第一物理功能的除了所述第一虚拟功能和所述第二虚拟功能以外的其它虚拟功能。如此,实现了灵活适配各种数量的镜像流表的硬件卸载需求,不仅可以大幅节省数据移动、编辑动作和校验操作的资源损耗,而且可以有效提升镜像报文的转发效率。
图3是本申请实施例提供的一种计算设备的结构示意图,该计算设备300包括:一个或者多个处理器310、通信接口320以及存储器330。所述处理器310、通信接口320以及存储器330通过总线340相互连接。可选地,该计算设备300还可以包括输入/输出接口350,输入/输出接口350连接有输入/输出设备,用于接收用户设置的参数等。该计算设备300能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理器310还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备300执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器310用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备300可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口320具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器310具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图3的计算设备300可以包括一个或者多个处理器310,并且多个处理器310可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器310可以构成处理器序列或者处理器阵列,或者多个处理器310之间可以分成主处理器和辅助处理器,或者多个处理器310之间可以具有不同的架构如采用异构计算架构。另外,图3所示的计算设备300,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备300可以包括比图3所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器310可以有多种具体实现形式,例如处理器310可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器310还可以是单核处理器或多核处理器。处理器310可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器310也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口320可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器330可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器330也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器330也可用于存储程序代码和数据,以便于处理器310调用存储器330中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备300可能包含相比于图3展示的更多或者更少的组件,或者有不同的组件配置方式。
总线340可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线340可以分为地址总线、数据总线、控制总线等。总线340除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例系统中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种镜像流表卸载方法,其特征在于,所述镜像流表卸载方法包括:
确定参考流表和与所述参考流表之间存在第一镜像关系的至少一个镜像流表,其中,所述参考流表定义了至少一个报文编辑动作,所述至少一个镜像流表各自定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系来执行报文编辑动作;
生成组播复制组来代表所述至少一个镜像流表中的所有成员,基于所述参考流表与所述至少一个镜像流表之间的所述第一镜像关系,来构建所述参考流表与所述组播复制组之间的第二镜像关系,其中,所述组播复制组定义了,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第二镜像关系来执行报文编辑动作,以便使用所述组播复制组的组播复制功能来实现所述至少一个镜像流表中的所有成员的镜像流表功能;
卸载所述参考流表和所述组播复制组到报文转发硬件。
2.根据权利要求1所述的镜像流表卸载方法,其特征在于,所述参考流表所定义的所述至少一个报文编辑动作包括,对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。
3.根据权利要求2所述的镜像流表卸载方法,其特征在于,所述至少一个镜像流表各自所定义的报文编辑动作包括,在所述参考流表所定义的所述至少一个报文编辑动作的基础上,基于所述第一镜像关系,来对源网络协议地址、源机器物理地址、源端口、目的网络协议地址、目的机器物理地址、目的端口中的一项或者多项执行报文字段修改。
4.根据权利要求3所述的镜像流表卸载方法,其特征在于,所述至少一个镜像流表各自所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。
5.根据权利要求2所述的镜像流表卸载方法,其特征在于,所述组播复制组所定义的报文编辑动作的次数与所述参考流表所定义的所述至少一个报文编辑动作的次数相同。
6.根据权利要求1所述的镜像流表卸载方法,其特征在于,所述参考流表定义了在所述参考流表所定义的所述至少一个报文编辑动作中的每一个报文编辑动作完成后执行一次校验和计算。
7.根据权利要求6所述的镜像流表卸载方法,其特征在于,所述至少一个镜像流表中的每一个镜像流表定义了在该镜像流表所定义的每一个报文编辑动作完成后执行一次校验和计算。
8.根据权利要求7所述的镜像流表卸载方法,其特征在于,所述至少一个镜像流表各自所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。
9.根据权利要求6所述的镜像流表卸载方法,其特征在于,所述组播复制组定义了在所述组播复制组所定义的每一个报文编辑动作完成后执行一次校验和计算,并且,所述组播复制组所定义的执行校验和计算的次数与所述参考流表所定义的执行校验和计算的次数相同。
10.根据权利要求1所述的镜像流表卸载方法,其特征在于,所述参考流表用于从第一物理功能的第一虚拟功能到所述第一物理功能的第二虚拟功能的报文流量转发,所述至少一个镜像流表用于对从所述第一物理功能的所述第一虚拟功能到所述第一物理功能的所述第二虚拟功能的原始报文进行报文字段修改和校验和计算,以便实现镜像报文转发到所述第一物理功能的除了所述第一虚拟功能和所述第二虚拟功能以外的其它虚拟功能。
11.一种设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至10中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411722209.9A CN119603312B (zh) | 2024-11-28 | 2024-11-28 | 镜像流表卸载方法、设备及介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411722209.9A CN119603312B (zh) | 2024-11-28 | 2024-11-28 | 镜像流表卸载方法、设备及介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119603312A true CN119603312A (zh) | 2025-03-11 |
| CN119603312B CN119603312B (zh) | 2025-10-17 |
Family
ID=94844676
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411722209.9A Active CN119603312B (zh) | 2024-11-28 | 2024-11-28 | 镜像流表卸载方法、设备及介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119603312B (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012039792A1 (en) * | 2010-09-23 | 2012-03-29 | Cisco Technology, Inc. | Network interface controller for virtual and distributed services |
| CN115150328A (zh) * | 2022-09-07 | 2022-10-04 | 珠海星云智联科技有限公司 | 一种流表硬件卸载方法、设备及介质 |
| CN116366534A (zh) * | 2023-05-31 | 2023-06-30 | 珠海星云智联科技有限公司 | 基于硬件卸载的组播流量复制的方法以及相关装置 |
| CN118509390A (zh) * | 2023-02-14 | 2024-08-16 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置和存储介质及电子设备 |
-
2024
- 2024-11-28 CN CN202411722209.9A patent/CN119603312B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012039792A1 (en) * | 2010-09-23 | 2012-03-29 | Cisco Technology, Inc. | Network interface controller for virtual and distributed services |
| CN115150328A (zh) * | 2022-09-07 | 2022-10-04 | 珠海星云智联科技有限公司 | 一种流表硬件卸载方法、设备及介质 |
| CN118509390A (zh) * | 2023-02-14 | 2024-08-16 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置和存储介质及电子设备 |
| CN116366534A (zh) * | 2023-05-31 | 2023-06-30 | 珠海星云智联科技有限公司 | 基于硬件卸载的组播流量复制的方法以及相关装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119603312B (zh) | 2025-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230403232A1 (en) | Data Transmission System and Method, and Related Device | |
| CN117978758B (zh) | 用于数据处理单元的适配方法、计算机设备及介质 | |
| CN117519908B (zh) | 一种虚拟机热迁移方法、计算机设备及介质 | |
| CN119603312B (zh) | 镜像流表卸载方法、设备及介质 | |
| CN118524059B (zh) | 用于硬件流表管理的方法、计算机设备及介质 | |
| CN118631735B (zh) | 用于流表匹配的哈希表、方法、计算机设备及介质 | |
| CN117555903B (zh) | 一种数据处理方法、计算机设备及介质 | |
| CN117520607B (zh) | 一种流表压缩方法、计算机设备及介质 | |
| CN117573602B (zh) | 用于远程直接内存访问报文发送的方法及计算机设备 | |
| CN113934767A (zh) | 一种数据处理的方法及装置、计算机设备和存储介质 | |
| CN117527654B (zh) | 一种用于网络流量抓包分析的方法及系统 | |
| CN119603214B (zh) | 流表拆分方法、设备及介质 | |
| WO2025002098A1 (zh) | 一种数据处理方法、交换节点及相关系统 | |
| CN119299371B (zh) | 支持掩码匹配的流表卸载方法、计算机设备及介质 | |
| CN120338089A (zh) | 一种大语言模型的推理方法以及装置 | |
| CN119316349B (zh) | 流表部署方法、计算机设备及介质 | |
| CN117527731B (zh) | 一种用于硬件卸载的包编辑方法、计算机设备及介质 | |
| CN119316365B (zh) | 用于板级管理控制器的网络通信方法、电子设备及介质 | |
| CN119396844B (zh) | 双链表老化方法、电子设备及介质 | |
| CN118282946B (zh) | L2转发表、l2报文转发方法、计算机设备及介质 | |
| CN119316387B (zh) | 一种流表卸载方法、设备以及集群 | |
| CN119342016B (zh) | 多虚拟功能设备的硬件卸载方法、电子设备及介质 | |
| CN119276703B (zh) | 用于共享绑定口卸载的方法、计算机设备及介质 | |
| CN119363693A (zh) | 多卡分布式的流表卸载方法、计算机设备及介质 | |
| CN118101515B (zh) | 异常拓扑处理方法、系统、设备以及集群 |
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 |