CN116232992A - 数据转发方法、装置、设备及存储介质 - Google Patents

数据转发方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116232992A
CN116232992A CN202211625276.XA CN202211625276A CN116232992A CN 116232992 A CN116232992 A CN 116232992A CN 202211625276 A CN202211625276 A CN 202211625276A CN 116232992 A CN116232992 A CN 116232992A
Authority
CN
China
Prior art keywords
ports
target
working
thread
port
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
Application number
CN202211625276.XA
Other languages
English (en)
Other versions
CN116232992B (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.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
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 China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202211625276.XA priority Critical patent/CN116232992B/zh
Publication of CN116232992A publication Critical patent/CN116232992A/zh
Application granted granted Critical
Publication of CN116232992B publication Critical patent/CN116232992B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

本申请公开了一种数据转发方法、装置、设备及存储介质,涉及通信技术领域,用于提高NAT网关对数据转发的效率,包括:当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡,一个工作线程对应一组端口;当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。本申请应用于NAT网关对数据进行转发的场景中。

Description

数据转发方法、装置、设备及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种数据转发方法、装置、设备及存储介质。
背景技术
网络地址转换(Network Address Translation,NAT)网关是一种将虚拟私有云(Virtual Private Cloud,VPC)中的内网IP地址和公网IP地址进行转换的网关,是实现VPC内无公网IP的云资源访问互联网的一种实现方式。NAT网关处于互联网和VPC的边界,适用在私有网络内部,部分资源共用公网出口,可以节约带宽与流量资源。
在多核中央处理器(Central Processing Unit/Processor,CPU),网卡多队列架构服务器中,NAT网关拥有多个工作线程,每个工作线程运行在单独的CPU核上独占网卡中的一个接收队列(或发送队列)。这种架构的主要目的是增加系统吞吐量、增强伸缩性、非关联会话转发效率高、资源独立。
在这种情况下,如果有大量跨线程处理任务,则数据转发性能就会急速下降。因此,当前NAT网关对数据转发的效率较低。
发明内容
本申请提供一种数据转发方法、装置、设备及存储介质,用于提高NAT网关对数据转发的效率。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供了一种数据转发方法,该方法包括:当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡,一个工作线程对应一组端口;当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。
在一种可能的实现方式中,多个工作线程中的每个工作线程对应一个线程编号,公共IP地址对应的多个端口中的每个端口对应一个端口编号,目标流表包括多个流表,一个工作线程对应一个流表;确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,包括:针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从第一个工作线程对应的第一组端口中确定出前N个端口,前N个端口为公共服务对应的端口,N为正整数;基于第一组端口中除前N个端口之外的其他端口,确定第一个工作线程对应的流表。
在一种可能的实现方式中,目标流表包括:起始端口编号和目标掩码;基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,包括:基于NAT网关对应的多个工作线程中的每个工作线程对应的线程编号、公共IP地址对应的多个端口中的每个端口对应的端口编号,从公共IP地址对应的多个端口中确定出每个工作线程对应的起始端口编号;基于多个工作线程的数量和公共IP地址对应的多个端口的数量,确定目标掩码;基于多个工作线程中的每个工作线程对应的起始端口编号和目标掩码,确定每个工作线程对应的一组端口。
在一种可能的实现方式中,针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从第一个工作线程对应的第一组端口中确定出前N个端口,包括:针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将第一个工作线程对应的第一组端口中包括的端口划分为多个子组,多个子组中的第一个子组包括前N个端口。
在一种可能的实现方式中,方法还包括:基于第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定多个子组中每个子组对应的起始端口编号和子掩码;基于多个子组中的每个子组对应的起始端口编号和子掩码,确定第一个工作线程对应的流表。
第二方面,提供了一种数据转发装置,该数据转发装置包括:处理单元和转发单元;处理单元,用于当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;处理单元,用于确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡,一个工作线程对应一组端口;处理单元,用于当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程;转发单元,用于通过目标工作线程转发目标数据。
在一种可能的实现方式中,多个工作线程中的每个工作线程对应一个线程编号,公共IP地址对应的多个端口中的每个端口对应一个端口编号,目标流表包括多个流表,一个工作线程对应一个流表;处理单元,用于针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从第一个工作线程对应的第一组端口中确定出前N个端口,前N个端口为公共服务对应的端口,N为正整数;处理单元,用于基于第一组端口中除前N个端口之外的其他端口,确定第一个工作线程对应的流表。
在一种可能的实现方式中,目标流表包括:起始端口编号和目标掩码;处理单元,用于基于NAT网关对应的多个工作线程中的每个工作线程对应的线程编号、公共IP地址对应的多个端口中的每个端口对应的端口编号,从公共IP地址对应的多个端口中确定出每个工作线程对应的起始端口编号;处理单元,用于基于多个工作线程的数量和公共IP地址对应的多个端口的数量,确定目标掩码;处理单元,用于基于多个工作线程中的每个工作线程对应的起始端口编号和目标掩码,确定每个工作线程对应的一组端口。
在一种可能的实现方式中,处理单元,用于针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将第一个工作线程对应的第一组端口中包括的端口划分为多个子组,多个子组中的第一个子组包括前N个端口。
在一种可能的实现方式中,处理单元,用于基于第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定多个子组中每个子组对应的起始端口编号和子掩码;处理单元,用于基于多个子组中的每个子组对应的起始端口编号和子掩码,确定第一个工作线程对应的流表。
第三方面,一种电子设备,包括:处理器以及存储器;其中,存储器用于存储一个或多个程序,一个或多个程序包括计算机执行指令,当电子设备运行时,处理器执行存储器存储的计算机执行指令,以使电子设备执行如第一方面的一种数据转发方法。
第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,该一个或多个程序包括指令,上述指令当被计算机执行时使计算机执行如第一方面的一种数据转发方法。
本申请提供了一种数据转发方法、装置、设备及存储介质,应用于NAT网关对数据进行转发的场景中。当NAT网关配置SNAT时,可以基于NAT网关对应的多个工作线程的数量,将公共IP地址对应的多个端口平均划分为多组端口;以及确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡;从而,当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。本申请通过基于NAT网关对应的多个工作线程的数量,将公共IP地址对应的多个端口平均划分为多组端口,从而确定多个工作线程中每个工作线程对应的一组端口得到目标流表,以根据目标流表确定目标数据对应的目标工作线程。从而可以提高确定数据对应的工作线程的效率,提高NAT网关对数据转发的效率。
附图说明
图1为本申请的实施例提供的一种现有的数据转发系统结构示意图;
图2为本申请的实施例提供的一种数据转发系统结构示意图一;
图3为本申请的实施例提供的一种数据转发方法流程示意图一;
图4为本申请的实施例提供的一种数据转发方法流程示意图二;
图5为本申请的实施例提供的一种数据转发系统结构示意图二;
图6为本申请的实施例提供的一种数据转发原理示意图;
图7为本申请的实施例提供的一种数据转发方法流程示意图三;
图8为本申请的实施例提供的一种端口和掩码算法示意图一;
图9为本申请的实施例提供的一种端口和掩码算法示意图二;
图10为本申请的实施例提供的一种数据转发装置结构示意图;
图11为本申请的实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
NAT网关的目的是使VPC内部主机能够共享一个或者多个公网IP访问外部网络(即进行网络源地址转换(Source Network Address Translation,SNAT)),或者外部网络通过访问NAT网关访问VPC内部主机(即进行网络目的地址转换(Destination Network AddressTranslation,DNAT))。单臂NAT网关网卡队列、CPU核心、工作线程是一一对应的,双臂NAT网关的工作线程对应特定的CPU核心,并分别处理网卡1的某一个接收队列,网卡2的某一个接收队列。以单臂NAT网关为例,在进行SNAT的过程中,存在内部会话和外部会话一一对应的关系,如图1所示,内部会话4元组SIP、DIP、sport、dport在经过NAT网关后SIP改为公网IP,sport改为新分配的端口形成外部会话4元组。假如内部会话被网卡接收队列1收到,此接收队列被CPU1所在的工作线程处理,但当此内部会话对应的外部会话报文回到NAT网关时,按照接收方扩展(Receive-Side Scaling,RSS)分流算法分流到网卡的某个接收队列,此队列不一定是网卡接收队列1,可能是接收队列6,由此就会引发跨线程处理任务,如果出现大量跨线程任务,那么多处理器,多网卡队列的NAT网关就会因为访问公共资源、使用锁、或者线程调度,出现大量高速缓存失败(cache miss)的情况,降低转发性能。
本申请的目的是解决NAT网关在SNAT过程中内部会话和外部会话报文被NAT网关网卡不同接收队列接收,从而引发跨线程任务导致NAT网关转发性能降低问题。
需要说明的是,网卡RSS可以使相同4元组(即源IP、源端口、目的IP、目的端口)的数据包被同一网卡接收队列接收,从而被运行在同一CPU核上的工作线程处理,提升了工作线程的转发效率,RSS分为对称哈希算法和非对称哈希算法。对称哈希算法保证一个会话的两个方向都会被同一接收队列接收。非对称哈希算法不能保证一个会话的两个方向都会被同一接收队列接收。但网卡硬件RSS非对称哈希算法只能解决相同4元组进出流量被分流到相同网卡接收队列。
本申请实施例提供的一种数据转发方法,可以适用于数据转发系统。图2示出了该数据转发系统的一种结构示意图。如图2所示,数据转发系统20包括:网络接口控制器(network interface controller,NIC)21和NAT网关22。
其中,数据转发系统20可以为一个网络节点,网络接口控制器21用于传输待转发的SNAT数据,NAT网关22用于在配置SNAT时,根据公共IP地址和NAT网关对应的多个工作线程的数量,生成目标流表并下发到网卡。
下面结合附图对本申请实施例提供的一种数据转发方法进行描述。
如图3所示,本申请实施例提供的一种数据转发方法,包括S201-S203:
S201、当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口。
其中,每组端口包括至少一个端口。
需要说明的是,上述NAT网关是运行在多CPU、多网卡队列的多工作线程架构中,使用单臂模式,每个工作线程运行在独占的CPU核心上,独占网卡的一个接收队列和发送队列。
可以理解,当NAT网关添加一个公网IP(即公共IP地址)时,根据NAT网关工作线程个数将公网IP的可用端口分成多份,得到多组端口。
示例性的,当NAT网关对应4个工作线程,公共IP地址对应65536个端口时,基于4个工作线程将65536个端口进行平分,每个工作线程对应16384个端口,得到4组端口。
S202、确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡。
其中,一个工作线程对应一组端口。
可选的,目标流表的关键字段包括:数据包部分和执行(Action)部分,其中,数据包部分包括:proto、Sip、dip、sport、dport、sip_mask、dip_mask、sport_mask、dport_mask等,Action部分包括:queue-id。数据包部分表示匹配数据包的哪些部分,掩码为模糊匹配范围,Action表明匹配后重定向的队列id。
在一种设计中,多个工作线程中的每个工作线程对应一个线程编号,公共IP地址对应的多个端口中的每个端口对应一个端口编号,目标流表包括多个流表,一个工作线程对应一个流表;如图4所示,本申请实施例提供的一种数据转发方法,上述步骤S202中的方法,具体可以包括S301-S302:
S301、针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从第一个工作线程对应的第一组端口中确定出前N个端口。
其中,前N个端口为公共服务对应的端口,N为正整数。
S302、基于第一组端口中除前N个端口之外的其他端口,确定第一个工作线程对应的流表,并将流表下发至目标网卡。
可选的,由于公共IP地址对应的多个端口中的前N个端口为公共服务对应的端口,因此在确定第一个工作线程对应的第一组端口时,需要将第一组端口中前N个端口编号对应的端口去除。
需要说明的是。第一个工作线程的线程编号为0、第一个端口的端口编号为0。
示例性的,第一个工作线程对应的16384个端口的端口编号为0-16383,并且公共IP地址对应的多个端口中的前1024个端口为公共服务对应的端口,因此需要将第一个工作线程对应的16384个端口中编号为0-1023的端口去除,则第一个工作线程对应的第一组端口所包括的端口编号为1024-16383,第二个工作线程对应的第二组端口所包括的端口编号为16384-32767,第三个工作线程对应的第三组端口所包括的端口编号为32768-49151,第四个工作线程对应的第四组端口所包括的端口编号为49152-65535。根据每个工作线程对应的端口编号生成目标流表,并使用网卡的flow director api将目标流表下发到指定网卡。
可选的,如图5所示,在NAT网关代码实现基础上,添加流表下发模块,流表下发模块的主要功能是在配置SNAT时,针对每个公共IP地址,确定每个工作线程对应的端口,生成流表并下发流表到网卡。流表下发模块包含流表自动下发算法,此算法根据工作线程的个数,自动将一个公共IP地址拥有的65535个端口平均分配给每个工作线程,然后根据每个工作线程的端口范围,公共IP地址的关键因素生成对应流表并下发到网卡。
如图6所示,上述方案又称Flow Director技术,是根据包的字段精确匹配,将其分配到某个特定队列的技术:网卡上存储了一个Flow Director的表(即流表),表的大小受硬件资源限制,它记录了需要匹配字段的关键字及匹配后的动作;驱动负责操作这张表,包括初始化、增加表项、删除表项;网卡从线上收到数据包后根据关键字查Flow Director的这张表,匹配后按照表项中的动作处理,可以是分配队列、丢弃等。
S203、当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。
可以理解,当NAT网关接收到目标数据并需要转发目标数据时,可以基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。
在一种设计中,目标流表包括:起始端口编号和目标掩码;如图7所示,本申请实施例提供的一种数据转发方法,上述步骤S201中的方法,具体可以包括步骤S401-S403:
S401、当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程中的每个工作线程对应的线程编号、公共IP地址对应的多个端口中的每个端口对应的端口编号,从公共IP地址对应的多个端口中确定出每个工作线程对应的起始端口编号。
S402、基于多个工作线程的数量和公共IP地址对应的多个端口的数量,确定目标掩码。
S403、基于多个工作线程中的每个工作线程对应的起始端口编号和目标掩码,确定每个工作线程对应的一组端口。
可选的,如图8所示,每个工作线程对应的起始端口编号和目标掩码的算法(除第一个工作线程)如下:
location(0,1,worker_num-1),
//start port
{
per_num=0xffff/worker_num;
start_port=(per_num+1)*location;
}
//mask
{
for(n=0;(0x1<<n)<worker_num;n++)
if(n>=16)
return 0;/*bad config*/
mask>>=16-n;
mask<<=16-n;
}
需要说明的是,每个工作线程对应的起始端口是65535除以工作线程标号后加一,然后再乘以工作线程编号(工作线程的编号从0开始)。目标掩码是65535像右移动16-n(n是工作线程总数量所占的bit位),然后再左移16-n得出掩码值。从而根据不同工作线程确定不同的起始端口,相同的目标掩码,组成对应的流表,然后调用fd api下发流表到网卡。
可选的,第一个工作线程排除端口编号为0-1023的端口得到的流表下发具体为:
for(i=0;i<16-10-n;i++)
{
u16 mask=0xffff;
u16 port=0xffff;
mask>>=16-n-(i+1);
mask<<=16-n-(i+1);
port<<=(n+i);
port>>=(n+i);
port>>=16-n-(i+1);
port<<=16-n-(i+1);
dport.port=port;
dport.mask=mask;
}
在一种设计中,本申请实施例提供的一种数据转发方法中,上述步骤S301中的方法,具体可以包括步骤S501:
S501、针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将第一个工作线程对应的第一组端口中包括的端口划分为多个子组。
其中,多个子组中的第一个子组包括前N个端口。
需要说明的是,第一个工作线程由于要排除端口编号为0-1023的端口,所以相对于其他工作线程流表下发算法复杂一些。以4个工作线程为例:工作线程数4,需要2个bit位,第一个工作线程在不排除0-1023端口对应的流表中,包括的起始端口和掩码分别是port_base 0,port_mask0xC000,起始端口为0000000000000000,掩码为1100000000000000。第一个工作线程端口编号的范围是0-16383,按位拆分后得到多个子组:
第一子组:起始端口为0010000000000000,掩码为1110000000000000,包括8192-16383的端口;第二子组:起始端口为0001000000000000掩码为1111000000000000,包括4096-8191的端口;第三子组:起始端口为0000100000000000,掩码为1111100000000000,包括2048-4095的端口;第四子组:起始端口为0000010000000000,掩码为1111110000000000,包括1024-2047。
将第一个工作线程对应的第一组端口拆分成以上几个子组,排除了0-1023端口范围,得到对应的流表。其他工作线程数算法以此类推,需要说明的是,工作线程个数只能是2的幂(即2、4、8、16等)。然后根据起始端口和掩码生成流表下发到指定网卡。
在一种设计中,本申请实施例提供的一种数据转发方法中,具体还可以包括步骤S601-S602:
S601、基于第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定多个子组中每个子组对应的起始端口编号和子掩码。
S602、基于多个子组中的每个子组对应的起始端口编号和子掩码,确定第一个工作线程对应的流表。
示例性的,以4个工作线程为例,说明每个工作线程怎么为每个公共IP地址下发流表,根据每个工作线程的起始端口和掩码,端口范围是0-65535,16bit,端口掩码和端口一样,则工作线程worker0对应的端口编号为0-16383,工作线程worker1对应的端口编号为16384-32767,工作线程worker2对应的端口编号为32768-49151,工作线程worker3对应的端口编号为49152-65535。
理论上每个公共IP地址需要向网卡下发4条流表,即工作线程worker0对应的流表flow0为port_base 0,port_mask 0xC000,工作线程worker1对应的流表flow1为port_base16384,port_mask 0xC000,工作线程worker2对应的流表flow2为port_base 32768,port_mask 0xC000,工作线程worker3对应的流表flow3为port_base 49152,port_mask 0xC000。但是公共IP地址需要排除端口编号为1024及以前的端口,则需要将流表flow0进行拆分。
示例性的,如图9所示,因为有4个工作线程,那么掩码的14,15两个bit用于将65535平均分为4份。1023需要占据10个bit(0-9),拆分只能利用10-13这个4个bit。因为端口和掩码的后10位不动,前两位固定,则只需研究中间4bit(阴影部分),得到工作线程worker0对应的端口编号为0-16383,拆分后得到:
001xxx 8192/0xE000
0001xx 4096/0xF000
00001x 2048/0xF800
000001 1024/0xFc00
这样就排除了1023以内的端口,1023以内的端口不在下发流的范围内,默认走网卡的RSS,最终下发的流表如下:
工作线程worker0对应的流表flow0为port_base 8192,port_mask0xE000,流表flow1为port_base 4096,port_mask 0xF000,流表flow2为port_base 2048,port_mask0xF800,流表flow3为port_base 1024,port_mask0xC000;工作线程worker1对应的流表flow4为port_base 16384,port_mask0xFc00;工作线程worker2对应的流表flow5为port_base 32768,port_mask0xC000;工作线程worker3对应的流表flow6为port_base 49152,port_mask0xC000。
本申请的核心是NAT网关将工作线程和网卡队列建立一一对应关系,在添加SNAT公网IP时,将一个IP的65536个端口连续平均分配给每个工作线程。使用网卡的flowdirector特性,根据端口分配情况将每个工作线程所对应的流表下发到网卡,流表自动下发算法分为第一工作线程流表下发算法(排除0-1024之间的端口)和其他工作线程流表下发算法,流表下发根据工作线程个数变化而不同,有效提高NAT网关转发效率。
本申请提供了一种数据转发方法,当NAT网关配置SNAT时,可以基于NAT网关对应的多个工作线程的数量,将公共IP地址对应的多个端口平均划分为多组端口;以及确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡;从而,当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程,并通过目标工作线程转发目标数据。本申请通过基于NAT网关对应的多个工作线程的数量,将公共IP地址对应的多个端口平均划分为多组端口,从而确定多个工作线程中每个工作线程对应的一组端口得到目标流表,以根据目标流表确定目标数据对应的目标工作线程。从而可以提高确定数据对应的工作线程的效率,提高NAT网关对数据转发的效率。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对一种数据转发装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图10为本申请实施例提供的一种数据转发装置的结构示意图。如图10所示,一种数据转发装置40用于提高NAT网关对数据转发的效率,例如用于执行图3所示的一种数据转发方法。该数据转发装置40包括:处理单元401和转发单元402;
处理单元401,用于当网络地址转换NAT网关配置源地址转换SNAT时,基于NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;
处理单元401,用于确定多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将目标流表下发至目标网卡,一个工作线程对应一组端口;
处理单元401,用于当接收到目标数据时,基于目标数据对应的目的IP地址和目的端口,从目标流表中确定目标数据对应的目标工作线程;
转发单元402,用于通过目标工作线程转发目标数据。
在一种可能的实现方式中,在本申请实施例提供的一种数据转发装置40中,多个工作线程中的每个工作线程对应一个线程编号,公共IP地址对应的多个端口中的每个端口对应一个端口编号,目标流表包括多个流表,一个工作线程对应一个流表;
处理单元401,用于针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从第一个工作线程对应的第一组端口中确定出前N个端口,前N个端口为公共服务对应的端口,N为正整数;
处理单元401,用于基于第一组端口中除前N个端口之外的其他端口,确定第一个工作线程对应的流表。
在一种可能的实现方式中,在本申请实施例提供的一种数据转发装置40中,目标流表包括:起始端口编号和目标掩码;
处理单元401,用于基于NAT网关对应的多个工作线程中的每个工作线程对应的线程编号、公共IP地址对应的多个端口中的每个端口对应的端口编号,从公共IP地址对应的多个端口中确定出每个工作线程对应的起始端口编号;
处理单元401,用于基于多个工作线程的数量和公共IP地址对应的多个端口的数量,确定目标掩码;
处理单元401,用于基于多个工作线程中的每个工作线程对应的起始端口编号和目标掩码,确定每个工作线程对应的一组端口。
在一种可能的实现方式中,在本申请实施例提供的一种数据转发装置40中,处理单元401,用于针对多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将第一个工作线程对应的第一组端口中包括的端口划分为多个子组,多个子组中的第一个子组包括前N个端口。
在一种可能的实现方式中,在本申请实施例提供的一种数据转发装置40中,处理单元401,用于基于第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定多个子组中每个子组对应的起始端口编号和子掩码;
处理单元401,用于基于多个子组中的每个子组对应的起始端口编号和子掩码,确定第一个工作线程对应的流表。
在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例提供了上述实施例中所涉及的电子设备的一种可能的结构示意图。如图11所示,一种电子设备60,用于提高NAT网关对数据转发的效率,例如用于执行图3所示的一种数据转发方法。该电子设备60包括处理器601,存储器602以及总线603。处理器601与存储器602之间可以通过总线603连接。
处理器601是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器601可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器601可以包括一个或多个CPU,例如图11中所示的CPU 0和CPU 1。
存储器602可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器602可以独立于处理器601存在,存储器602可以通过总线603与处理器601相连接,用于存储指令或者程序代码。处理器601调用并执行存储器602中存储的指令或程序代码时,能够实现本申请实施例提供的一种数据转发方法。
另一种可能的实现方式中,存储器602也可以和处理器601集成在一起。
总线603,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外围设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图11示出的结构并不构成对该电子设备60的限定。除图11所示部件之外,该电子设备60可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一个示例,结合图10,电子设备中的处理单元401和转发单元402实现的功能与图11中的处理器601的功能相同。
可选的,如图11所示,本申请实施例提供的电子设备60还可以包括通信接口604。
通信接口604,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口604可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
在一种设计中,本申请实施例提供的电子设备中,通信接口还可以集成在处理器中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明。在实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述方法实施例所示的方法流程中的各个步骤。
本申请的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行上述方法实施例中的一种数据转发方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。
在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
由于本申请的实施例中的电子设备、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本申请实施例在此不再赘述。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。

Claims (12)

1.一种数据转发方法,其特征在于,所述方法包括:
当网络地址转换NAT网关配置源地址转换SNAT时,基于所述NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;
确定所述多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将所述目标流表下发至目标网卡,一个工作线程对应一组端口;
当接收到目标数据时,基于所述目标数据对应的目的IP地址和目的端口,从所述目标流表中确定所述目标数据对应的目标工作线程,并通过所述目标工作线程转发所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述多个工作线程中的每个工作线程对应一个线程编号,所述公共IP地址对应的多个端口中的每个端口对应一个端口编号,所述目标流表包括多个流表,一个工作线程对应一个流表;
所述确定所述多个工作线程中每个工作线程对应的一组端口,得到目标流表,包括:
针对所述多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从所述第一个工作线程对应的第一组端口中确定出前N个端口,所述前N个端口为公共服务对应的端口,N为正整数;
基于所述第一组端口中除所述前N个端口之外的其他端口,确定所述第一个工作线程对应的流表。
3.根据权利要求1或2所述的方法,其特征在于,所述目标流表包括:起始端口编号和目标掩码;
所述基于所述NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,包括:
基于所述NAT网关对应的所述多个工作线程中的每个工作线程对应的线程编号、所述公共IP地址对应的多个端口中的每个端口对应的端口编号,从所述公共IP地址对应的多个端口中确定出每个工作线程对应的所述起始端口编号;
基于所述多个工作线程的数量和所述公共IP地址对应的多个端口的数量,确定所述目标掩码;
基于所述多个工作线程中的每个工作线程对应的所述起始端口编号和所述目标掩码,确定每个工作线程对应的一组端口。
4.根据权利要求2所述的方法,其特征在于,所述针对所述多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从所述第一个工作线程对应的第一组端口中确定出前N个端口,包括:
针对所述多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将所述第一个工作线程对应的第一组端口中包括的端口划分为多个子组,所述多个子组中的第一个子组包括所述前N个端口。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定所述多个子组中每个子组对应的起始端口编号和子掩码;
基于所述多个子组中的每个子组对应的所述起始端口编号和所述子掩码,确定所述第一个工作线程对应的流表。
6.一种数据转发装置,其特征在于,所述数据转发装置包括:处理单元和转发单元;
所述处理单元,用于当网络地址转换NAT网关配置源地址转换SNAT时,基于所述NAT网关对应的多个工作线程的数量,将公共互联网协议IP地址对应的多个端口平均划分为多组端口,每组端口包括至少一个端口;
所述处理单元,用于确定所述多个工作线程中每个工作线程对应的一组端口,得到目标流表,并将所述目标流表下发至目标网卡,一个工作线程对应一组端口;
所述处理单元,用于当接收到目标数据时,基于所述目标数据对应的目的IP地址和目的端口,从所述目标流表中确定所述目标数据对应的目标工作线程;
所述转发单元,用于通过所述目标工作线程转发所述目标数据。
7.根据权利要求6所述的数据转发装置,其特征在于,所述多个工作线程中的每个工作线程对应一个线程编号,所述公共IP地址对应的多个端口中的每个端口对应一个端口编号,所述目标流表包括多个流表,一个工作线程对应一个流表;
所述处理单元,用于针对所述多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,从所述第一个工作线程对应的第一组端口中确定出前N个端口,所述前N个端口为公共服务对应的端口,N为正整数;
所述处理单元,用于基于所述第一组端口中除所述前N个端口之外的其他端口,确定所述第一个工作线程对应的流表。
8.根据权利要求6或7所述的数据转发装置,其特征在于,所述目标流表包括:起始端口编号和目标掩码;
所述处理单元,用于基于所述NAT网关对应的所述多个工作线程中的每个工作线程对应的线程编号、所述公共IP地址对应的多个端口中的每个端口对应的端口编号,从所述公共IP地址对应的多个端口中确定出每个工作线程对应的所述起始端口编号;
所述处理单元,用于基于所述多个工作线程的数量和所述公共IP地址对应的多个端口的数量,确定所述目标掩码;
所述处理单元,用于基于所述多个工作线程中的每个工作线程对应的所述起始端口编号和所述目标掩码,确定每个工作线程对应的一组端口。
9.根据权利要求7所述的数据转发装置,其特征在于,所述处理单元,用于针对所述多个工作线程中的第一个工作线程,基于每个端口对应的端口编号,将所述第一个工作线程对应的第一组端口中包括的端口划分为多个子组,所述多个子组中的第一个子组包括所述前N个端口。
10.根据权利要求9所述的数据转发装置,其特征在于,所述处理单元,用于基于所述第一个工作线程对应的第一组端口中包括的每个端口对应的端口编号,确定所述多个子组中每个子组对应的起始端口编号和子掩码;
所述处理单元,用于基于所述多个子组中的每个子组对应的所述起始端口编号和所述子掩码,确定所述第一个工作线程对应的流表。
11.一种电子设备,其特征在于,包括:处理器以及存储器;其中,所述存储器用于存储一个或多个程序,所述一个或多个程序包括计算机执行指令,当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行权利要求1-5中任一项所述的一种数据转发方法。
12.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当被计算机执行时使所述计算机执行如权利要求1-5中任一项所述的一种数据转发方法。
CN202211625276.XA 2022-12-16 2022-12-16 数据转发方法、装置、设备及存储介质 Active CN116232992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211625276.XA CN116232992B (zh) 2022-12-16 2022-12-16 数据转发方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211625276.XA CN116232992B (zh) 2022-12-16 2022-12-16 数据转发方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116232992A true CN116232992A (zh) 2023-06-06
CN116232992B CN116232992B (zh) 2024-05-14

Family

ID=86570510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211625276.XA Active CN116232992B (zh) 2022-12-16 2022-12-16 数据转发方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116232992B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007016850A1 (fr) * 2005-08-09 2007-02-15 Huawei Technologies Co., Ltd. Procédé, système et appareil d’accès au serveur web
CN103391234A (zh) * 2013-08-01 2013-11-13 厦门市美亚柏科信息股份有限公司 一种实现多用户固定端口映射的方法及pptp vpn服务端
CN103780435A (zh) * 2014-02-18 2014-05-07 迈普通信技术股份有限公司 使用端口号掩码对数据流进行分类的方法及系统
CN110177047A (zh) * 2019-05-27 2019-08-27 北京字节跳动网络技术有限公司 报文发送方法、装置、电子设备和计算机可读存储介质
CN111490976A (zh) * 2020-03-24 2020-08-04 浙江中烟工业有限责任公司 一种面向工控网络的动态基线管理与监测方法
WO2020186925A1 (zh) * 2019-03-15 2020-09-24 华为技术有限公司 一种数据传输的方法和计算机系统
CN112087533A (zh) * 2020-09-11 2020-12-15 北京青云科技股份有限公司 报文处理方法、装置、设备和存储介质
CN112242952A (zh) * 2019-07-16 2021-01-19 中移(苏州)软件技术有限公司 一种数据转发方法、柜顶式交换机和存储介质
CN112380253A (zh) * 2020-11-12 2021-02-19 北京知道创宇信息技术股份有限公司 报文规则匹配方法、装置、电子设备和可读存储介质
CN112965824A (zh) * 2021-03-31 2021-06-15 北京金山云网络技术有限公司 报文的转发方法及装置、存储介质、电子设备
CN113507532A (zh) * 2021-08-24 2021-10-15 优刻得科技股份有限公司 网络地址转换的方法及相应服务器、存储介质和电子设备
US20220200952A1 (en) * 2020-12-21 2022-06-23 Oracle International Corporation Network address translation between networks
US20220263691A1 (en) * 2021-02-16 2022-08-18 Nvidia Corporation Technique to perform demodulation of wireless communications signal data

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007016850A1 (fr) * 2005-08-09 2007-02-15 Huawei Technologies Co., Ltd. Procédé, système et appareil d’accès au serveur web
CN103391234A (zh) * 2013-08-01 2013-11-13 厦门市美亚柏科信息股份有限公司 一种实现多用户固定端口映射的方法及pptp vpn服务端
CN103780435A (zh) * 2014-02-18 2014-05-07 迈普通信技术股份有限公司 使用端口号掩码对数据流进行分类的方法及系统
WO2020186925A1 (zh) * 2019-03-15 2020-09-24 华为技术有限公司 一种数据传输的方法和计算机系统
CN110177047A (zh) * 2019-05-27 2019-08-27 北京字节跳动网络技术有限公司 报文发送方法、装置、电子设备和计算机可读存储介质
CN112242952A (zh) * 2019-07-16 2021-01-19 中移(苏州)软件技术有限公司 一种数据转发方法、柜顶式交换机和存储介质
CN111490976A (zh) * 2020-03-24 2020-08-04 浙江中烟工业有限责任公司 一种面向工控网络的动态基线管理与监测方法
CN112087533A (zh) * 2020-09-11 2020-12-15 北京青云科技股份有限公司 报文处理方法、装置、设备和存储介质
CN112380253A (zh) * 2020-11-12 2021-02-19 北京知道创宇信息技术股份有限公司 报文规则匹配方法、装置、电子设备和可读存储介质
US20220200952A1 (en) * 2020-12-21 2022-06-23 Oracle International Corporation Network address translation between networks
US20220263691A1 (en) * 2021-02-16 2022-08-18 Nvidia Corporation Technique to perform demodulation of wireless communications signal data
CN112965824A (zh) * 2021-03-31 2021-06-15 北京金山云网络技术有限公司 报文的转发方法及装置、存储介质、电子设备
CN113507532A (zh) * 2021-08-24 2021-10-15 优刻得科技股份有限公司 网络地址转换的方法及相应服务器、存储介质和电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PETAR D. BOJOVIĆ等: ""IP session continuity in heterogeneous mobile networks using software defined networking"", 《IEEE》, 31 December 2017 (2017-12-31) *
张民选;王永文;邢座程;邓让钰;蒋江;张承义;: "高性能通用微处理器体系结构关键技术研究", 计算机研究与发展, no. 06, 28 June 2006 (2006-06-28) *
李明前: ""面向数据中心网络的跨协议用户态代理技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 May 2022 (2022-05-15) *

Also Published As

Publication number Publication date
CN116232992B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
US10917351B2 (en) Reliable load-balancer using segment routing and real-time application monitoring
US11422839B2 (en) Network policy implementation with multiple interfaces
US9253245B2 (en) Load balancer and related techniques
EP3780552B1 (en) Message processing method in distributed device and distributed device
US8661160B2 (en) Bidirectional receive side scaling
US8737388B2 (en) Method, apparatus and system for processing packets
WO2017025021A1 (zh) 一种处理流表的方法及装置
CN106534394B (zh) 用于管理端口的设备、系统和方法
CN112087533B (zh) 报文处理方法、装置、设备和存储介质
US20190042314A1 (en) Resource allocation
US9491098B1 (en) Transparent network multipath utilization through encapsulation
CN112929264A (zh) 业务流量传输方法、系统及网络设备
US10715486B2 (en) Port address translation scalability in stateful network device clustering
CN116232992B (zh) 数据转发方法、装置、设备及存储介质
CN110300073B (zh) 级联端口的目标选择方法、聚合装置及存储介质
CN114844733A (zh) 一种接入用户设备的接口管理方法及接入用户设备
CN116248590B (zh) 数据转发方法、装置、设备及存储介质
CN112073503A (zh) 一种基于流控机制的高性能负载均衡方法
US20230208913A1 (en) In-order streaming in-network computation
WO2023161052A1 (en) Ip packet load balancer based on hashed ip addresses
CN117834588A (zh) 虚拟机元数据获取方法、装置、设备及存储介质
CN117880184A (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