CN116633726A - 云网关和用于网络适配器的方法及网络适配器 - Google Patents

云网关和用于网络适配器的方法及网络适配器 Download PDF

Info

Publication number
CN116633726A
CN116633726A CN202310451439.5A CN202310451439A CN116633726A CN 116633726 A CN116633726 A CN 116633726A CN 202310451439 A CN202310451439 A CN 202310451439A CN 116633726 A CN116633726 A CN 116633726A
Authority
CN
China
Prior art keywords
message
network adapter
messages
return
network
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.)
Pending
Application number
CN202310451439.5A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310451439.5A priority Critical patent/CN116633726A/zh
Publication of CN116633726A publication Critical patent/CN116633726A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/103Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种云网关和用于网络适配器的方法及网络适配器。一种云网关包括计算设备和通过总线连接到所述计算设备的网络适配器。所述计算设备包括配置为接收来自所述网络适配器的上送报文的多个处理器核,处理器核处理所述上送报文,并将得到的返回报文返回给所述网络适配器。所述网络适配器将从网络接收到的报文处理为上送报文并在所述多个处理器核之间通过均衡的方式逐报文进行分发,且将来自所述计算设备的返回报文保序发送出去。根据本申请的云网关结合了多核计算设备的灵活性和网络适配器的高性能,在表项规格和服务演进上具有更好的保障。

Description

云网关和用于网络适配器的方法及网络适配器
技术领域
本发明涉及网络技术领域,具体涉及一种云网关和用于网络适配器的方法及网络适配器。
背景技术
随着互联网技术的发展,云网络和云计算逐渐成为重要的网络基础设施。云网络作为基于云计算和虚拟化技术的网络架构,通过互联网将物理资源(如服务器、存储、网络)转化为虚拟资源,并以服务的形式提供给用户。云网关作为一种网络设备,其主要作用是连接本地网络与云服务,提供跨越公共互联网的安全连接。云网关可以将云服务提供商的公共云服务与企业本地数据中心连接起来,可以实现数据的安全传输和管理。云网关是云网络的核心转发节点,具有无状态、大流量的特点。因此,随着云网络承载数据的不断增加,对云网关的处理能力也提出了更高的要求。
发明内容
本申请旨在提供一种云网关和用于网络适配器的方法及网络适配器,结合了多核计算设备的灵活性和网络适配器的高性能,在表项规格和服务演进上具有更好的保障。
根据本申请的一方面,提供一种云网关,包括计算设备和通过总线连接到所述计算设备的网络适配器,其中:
所述计算设备包括配置为接收来自所述网络适配器的上送报文的多个处理器核,处理器核处理所述上送报文,并将得到的返回报文返回给所述网络适配器;
所述网络适配器将从网络接收到的报文处理为上送报文并在所述多个处理器核之间通过均衡的方式逐报文进行分发,且将来自所述计算设备的返回报文保序发送出去。
根据一些实施例,所述网络适配器包括:
报文调度模块,用于将从网络接收到的报文在所述多个处理器核之间逐报文进行均衡分发,并为上送给所述计算设备的上送报文附加编号,所述返回报文包含所述编号;
报文保序模块,用于将所述计算设备的返回报文按照上送报文发送给所述计算设备的顺序发送出去。
根据一些实施例,所述报文保序模块配置为:
按照所述上送报文的上送顺序维护报文序列信息的滑动窗口,所述报文序列信息包含所述上送报文的所述编号;
根据所述返回报文中的所述编号确定所述返回报文所在的窗口位置;
如果所述返回报文位于所述滑动窗口的起始位置,将所述返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口;
如果所述返回报文位于所述滑动窗口的非起始位置,则当所述非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将所述非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口。
根据一些实施例,所述上送报文仅包含报文头而没有报文净荷。
根据一些实施例,所述网络适配器还包括:
解析模块,用于解析从网络接收到的报文以提取报文头和报文净荷;
净荷缓存模块,用于存储所述报文净荷和所述返回报文;
重组模块,用于将所述返回报文和所述报文净荷重新组装以发送出去。
根据一些实施例,所述报文序列信息还包括确认标识和报文上送时间戳。
根据一些实施例,所述网络适配器还包括:
超时轮询模块,用于定时轮询所述报文序列信息,将所述上送时间戳与本地时钟对比,当所述上送时间戳与本地时钟的差值超过阈值时,确认返回报文超时并将相应窗口内的信息清零。
根据一些实施例,处理器核用于将所述上送报文转换为VxLAN封装报文。
根据一些实施例,所述云网关包括互联网网关、专线网关和/或虚拟私有云网关。
根据一些实施例,所述网络适配器包括基于FPGA实现的网络适配器。
根据本申请的另一方面,提供一种用于网络适配器的方法,所述网络适配器通过总线连接到包括多个处理器核的计算设备,所述方法包括:
将从网络接收到的报文处理为上送报文,所述上送报文包含编号;
在所述多个处理器核之间通过均衡的方式逐报文分发所述上送报文;
接收来自所述计算设备的返回报文,所述返回报文包含所述编号;
将所述返回报文按照上送报文发送给所述计算设备的顺序发送出去。
根据一些实施例,将所述返回报文按照上送报文发送给所述计算设备的顺序发送出去,包括:
按照所述上送报文的上送顺序维护报文序列信息的滑动窗口,所述报文序列信息包含所述上送报文的所述编号;
根据所述返回报文中的所述编号确定所述返回报文所在的窗口位置;
如果所述返回报文位于所述滑动窗口的起始位置,将所述返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口;
如果所述返回报文位于所述滑动窗口的非起始位置,则当所述非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将所述非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口。
根据本申请的另一方面,提供一种基于FPGA的网络适配器,所述网络适配器通过总线连接到包括多个处理器核的计算设备,所述网络适配器包括:
逻辑单元;以及
存储单元,存储有运算程序,当所述运算程序被所述逻辑单元执行时实现前述任一方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的云网关。
根据本申请的实施例,云网关包括计算设备和通过总线连接到所述计算设备的网络适配器,计算设备包括配置为接收来自所述网络适配器的上送报文的多个处理器核,处理器核处理所述上送报文,并将得到的返回报文返回给所述网络适配器,从而利用计算设备做服务能力演进,网络数据处理灵活性好;同时,利用通过总线连接到计算设备的网络适配器将从网络接收到的报文处理为上送报文并在所述多个处理器核之间通过均衡的方式逐报文进行分发,实现高性能。这样,云网关结合了多核计算设备的灵活性和网络适配器的高性能,在表项规格和服务演进上具有更好的保障。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例的云网络结构的示意图。
图2示出根据示例实施例的云网关的示意图。
图3A示出根据示例实施例的单层报文格式。
图3B示出根据示例实施例的双层封装报文格式。
图4示出根据示例实施例的网络适配器的示意性框图。
图5示出根据示例实施例的附有编号作为随路元信息的报文格式。
图6示出根据示例实施例的报文保序模块的滑动窗口保序设计示意图。
图7示出根据示例实施例用于网络适配器的方法流程图。
图8示出根据示例实施例的基于FPGA的网络适配器。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的云网关、组元、装置、步骤等。在其它情况下,不详细示出或描述公知云网关、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
在描述本申请的技术方案之前,对本申请涉及到的一些术语进行解释说明。
VPC:Virtual Private Cloud(虚拟私有云),是一种基于云计算技术,通过虚拟化技术在公共云上划分出一段“虚拟的私有网段”,并在该网段内部署虚拟机、存储、网络设备等资源,使其具有类似于本地数据中心的“私有云”特性。VPC提供了一种安全隔离的方式,用户可以在VPC内部创建自己的子网,通过VPC内部的私有IP地址进行通信,同时也可以使用VPC连接公共云和本地资源,实现公有云和私有云的互联互通。
VxLAN:Virtual Extensible LAN(虚拟可扩展局域网),是一种网络虚拟化技术,用于在数据中心网络中创建叠加网络(overlay)。VxLAN是一个透明的、面向数据中心的二层协议,可以在现有的TCP/IP网络上运行。VxLAN减轻了VLAN数量有限的限制,并提供可扩展的虚拟网络,以便在数据中心中提供更灵活的云计算和虚拟化网络。使用VXLAN技术,可以将不同的VPC环境连接成一个虚拟网络,从而实现更高级别的云计算应用。
云网关:数据中心网关类型的转发节点,是流量的汇聚点。作为云网关的重要组成的转发网关云网络中扮演着非常重要的角色,包括实现跨VPC通信、支持跨区域通信、实现IP地址映射等一种或多种功能。
负载均衡:将流量均衡的在多个计算设备上进行分发。
保序:保持报文的顺序。在网络通信中,保证报文的发送和接收顺序一致的技术或机制。
IGW:Internet gateway,互联网网关。
CGW:Customer gateway,专线网关。
VGW:VPC gateway,VPC内网关。
FPGA:Field Programmable Gate Array(现场可编程门阵列),一种可编程逻辑器件,可以根据用户的需求进行编程和重新配置,从而实现各种不同的数字电路功能。与专用集成电路相比,FPGA具有更高的灵活性和可编程性,因为它可以在生产之后进行编程和重新配置。FPGA由可编程逻辑单元、输入输出块、可编程互联网络和配置存储器等组成,具有并行性和高效性。
服务演进:网络设备的服务演进是指网络设备在不断更新升级的过程中,为用户提供更加全面、高效、安全、可靠的网络服务,并适应不断变化的网络需求和应用场景。这个过程包括了硬件、软件、协议等多个层面的变化和创新,例如交换机、路由器、防火墙等设备的智能化、虚拟化、云化,网络协议的迭代和优化,以及安全性、可靠性和性能的提升等方面。网络设备的服务演进使得网络在不断变化的时代中更加稳定、灵活、可靠,为用户提供更好的服务体验。网络设备的服务演进软件实现更容易,因为软件可以通过编程实现灵活的功能扩展和升级。网络设备软件可以通过升级固件、更新驱动程序等方式进行功能升级,而且相对来说成本较低。相比之下,网络设备的服务演进硬件实现相对更难,因为硬件需要重新设计和生产,成本较高,而且需要考虑硬件兼容性和稳定性问题。
云网关是云网络的核心转发节点,具有无状态、大流量的特点。传统的基于X86和DPDk(Data Plane Development Kit)的转发方案直接将IGW、CGW、VGW等网关部署在X86中。多核X86作为计算单元,负责处理作业任务,X86具有非常高的灵活性,能快速支撑服务演进,但是X86单核的处理能力有限。在通过哈希散列将报文按照数据流引流到某个CPU核时,由于云网关核心节点的角色,数据流量大,极易在大数据流(大象流)场景下出现单核负载过高(单核打高)的风险,影响云网络作业的线上稳定性。
基于网络处理器(例如TOFINO)的方案利用可编程交换芯片的可编程性和高性能,性能高,无单核打高风险。但是芯片的表项资源有限,虽然性能上有保障,但是由于硬件表项资源的限制等因素的影响,影响了网络服务能力的持续演进。
为此,本申请提出一种新的云网关系统,利用计算设备(例如基于X86)做服务能力演进,网络数据处理灵活性好。同时,利用通过总线连接到计算设备的网络适配器实现高性能。因此,本申请的云网关系统支持高性能和大表项,灵活性好,具有持续演进的特性。此外,本申请的云网关系统融合性好,不需要对现有云网络做架构改造。
以下结合附图对本申请的实施例进行详细说明。
图1示出根据示例实施例的云网络结构的示意图。
参见图1,当外部报文送至云网络访问私有云时,外部报文首先从核心路由器进入综合交换机。综合交换机将报文转发给连接在它上面的转发网关(例如,IGW、VGW或CGW)。转发网关对报文进行处理和转发后,将报文发送到负载均衡设备。
例如,根据一些实施例,转发网关(例如,IGW、VGW或CGW)将报文转换为VxLAN封装报文。例如,假设云下公网用户访问公网IP地址,在访问云上虚拟私有云服务时,需要转换为VxLAN封装报文。在VxLAN中,数据包被封装在一个外层UDP数据包中,称为VxLAN数据包。VxLAN数据包包含三个主要部分:外层IP头、UDP头和内层数据包。VNI是内层数据包的一部分,用于标识虚拟网络。外层IP头是VxLAN数据包的第一个部分,包含源IP地址和目标IP地址。源IP地址是发送方的IP地址,而目标IP地址是接收方的IP地址。外层IP头用于将VxLAN数据包从一个物理网络传输到另一个物理网络。内层IP是VxLAN数据包中的第二个部分,它包含了内部数据包的源和目的地址。在VxLAN网络中,内层IP是指虚拟机或虚拟机群组的IP地址,也被称为内层IP地址。由于内层IP被封装在VxLAN数据包中,因此它不直接参与网络传输。在计算设备将内部数据包封装在VxLAN数据包中时,它会使用VNI和内部MAC地址来生成VxLAN MAC地址,称为VxLAN MAC地址转换。每个VNI都有唯一的VxLAN MAC地址空间,从而在VxLAN网络中唯一标识每个虚拟网络。反之,当报文从虚拟私有云向公网发送时,虚拟私有云实例将报文发送到VxLAN接口,该接口使用VxLAN头对报文进行封装。封装后的报文会被路由到转发网关,转发网关会去除外部的VxLAN头,并将报文发送到互联网上,报文穿越公共互联网并到达目的地。
负载均衡设备根据负载均衡算法选择一台虚拟服务器以将报文发送到该服务器,为此负载均衡设备将报文转发至分布层交换机。分布层交换机将报文发送给聚合交换机,聚合交换机将报文发送到接入交换机,接入交换机将报文发送到虚拟网关,虚拟网关将报文发送到相应的虚拟服务器。
易于理解,图1所示结构和过程仅是示例目的,而不是用于限制本申请技术方案的应用场景。本申请的技术方案可以应用于各种云网络拓扑的转发节点上,例如IGW、CGW、VGW等。
图2示出根据示例实施例的云网关的示意图。
图2示出根据本申请示例实施例的云网关的框图。
如图2所示,云网关包括计算设备30和网络适配器16。根据一些实施例,计算设备30为基于多核X86的通用计算设备。根据示例实施例的云网关可以为前述参照图1说明的转发网关。
参见图2,计算设备30包括处理器12和存储器14,以及总线22和I/O接口18等。处理器12、存储器14以及I/O接口18可以通过总线22相互通信。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)、固态存储器和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。
处理器12可以包括一个或多个处理器核,用于执行相关程序指令。
根据示例实施例,计算设备30包括配置为接收来自网络适配器16的上送报文的多个处理器核,接收到上送报文的处理器核处理上送报文,并将得到的返回报文返回给网络适配器16。
根据示例实施例,接收到上送报文的处理器核将上送报文转换为VxLAN封装报文。例如,假设云下公网用户访问公网IP地址,这个公网IP是目的IP,报文是单层格式(参见图3A)。其中,ETH表示以太网帧头部,IP表示IP报文头部,TCP表示TCP报文头部,净荷表示报文承载的应用数据。
在访问云上虚拟私有云服务时,需要转换为VxLAN封装报文(参见图3B)。外层VxLAN以及内层新的IP(nuIP)是查表得到的。例如,查表可使用报文五元组(源IP,目的IP,协议类型,源端口,目的端口)作为键来查找,查表结果是外层VxLAN封装的VNI(VirtualNetwork Identifier:虚拟网络标识符)、外层IP2以及新的内层IP(nuIP),该表项数量巨大。VNI可以用于在不同的物理网络之间传输数据包,以实现不同虚拟网络之间的通信。在VxLAN中,数据包被封装在一个外层UDP数据包中,称为VxLAN数据包。VxLAN数据包包含三个主要部分:外层IP头(图3B中IP2)、UDP头和内层数据包。VNI是内层数据包的一部分,用于标识虚拟网络。外层IP头是VxLAN数据包的第一个部分,包含源IP地址和目标IP地址。源IP地址是发送方的IP地址,而目标IP地址是接收方的IP地址。外层IP头用于将VxLAN数据包从一个物理网络传输到另一个物理网络。内层IP是VxLAN数据包中的第二个部分,它包含了内部数据包的源和目的地址。在VxLAN网络中,内层IP是指虚拟机或虚拟机群组的IP地址,也被称为内层IP地址。由于内层IP被封装在VxLAN数据包中,因此它不直接参与网络传输。在计算设备将内部数据包封装在VxLAN数据包中时,它会使用VNI和内部MAC地址来生成VxLANMAC地址(ETH2),称为VxLAN MAC地址转换。每个VNI都有唯一的VxLAN MAC地址空间,从而在VxLAN网络中唯一标识每个虚拟网络。
根据示例实施例,VxLAN数据包的内层IP是计算设备30通过查找表从原始IP中获得的。原始IP地址和内层IP地址之间的映射存储在一个称为VxLAN转发表的查找表中。当在计算设备30接收到数据包时,它会检查发送方的原始IP地址,然后查找得到相应表项以确定与原始IP地址相关联的VNI,然后使用该VNI创建原始IP地址和内层IP地址之间的映射。一旦确定了VNI,计算设备30可使用它来封装附加的VxLAN头,其中包括与该VNI相关联的内层IP地址。
网络适配器16可通过总线(例如,PCIe总线)连接到计算设备。网络适配器16将从网络接收到的报文处理为上送报文并在多个处理器核之间通过均衡的方式逐报文进行分发,且将来自计算设备30的返回报文保序发送出去。例如,网络适配器16将从网络接收到的报文处理为上送报文,上送报文包含编号。然后,在多个处理器核之间通过均衡的方式逐报文分发上送报文。在接收来自计算设备的返回报文之后,可将返回报文按照上送报文发送给计算设备的顺序发送出去。根据一些实施例,网络适配器16可基于FPGA实现,利用FPGA的可编程能力实现软硬结合的高性能加速特性。
这样,根据示例实施例的云网关结合了多核计算设备的灵活性和网络适配器的高性能,并在表项规格和服务演进上具有更好的保障。另外,通过网络适配器实现逐报文的负载均衡和保序,能够解决大象流风险,达到性能、表项规格和灵活性的兼顾。
图4示出根据示例实施例的网络适配器的示意性框图。
参见图4,网络适配器16包括报文调度模块401和报文保序模块405。根据示例实施例,网络适配器16与计算设备30通过PCIe(Peripheral Component InterconnectExpress:高速PCI总线)总线通信。
报文调度模块401将从网络接收到的报文在计算设备30的多个处理器核(例如,核0至核4)之间逐报文进行均衡分发,通过均衡的方式来平均每核的负载,从而避免产生单流单核打高的问题。例如,假设CPU有4个核(核0至核4),第一个进来的报文分发到核0,第二个进来的报文分发到核1,第三个进来的报文分发到核2,第四个进来的报文分发到核3。
根据一些实施例,当网络适配器16在CPU内核之间进行负载平衡时,通常会使用多个硬件队列。这些硬件队列可以配置为匹配可用的CPU内核。每个硬件队列分配给特定的CPU内核,使网络适配器16可以在多个内核之间分配网络处理,从而可以更有效地利用资源,提高网络性能。
逐报文负载均衡后,每核的处理延时可能会有些微差异,产生报文上送和返回顺序不一致的问题,网络适配器16可提供保序功能。为此,根据示例实施例,报文调度模块401还为上送给计算设备30的上送报文附加编号,从计算设备30返回的报文也包含该编号,以对报文进行跟踪保序。例如,参见图5,发送给CPU核的上送报文附有编号PSN作为随路元信息,用于后续对报文进行跟踪保序。
报文保序模块405将来自计算设备30的返回报文按照上送报文发送给计算设备30的顺序发送出去,从而实现报文保序。CPU核处理完上送报文后再将报文连同编号PSN返回网络适配器16,网络适配器16通过比对PSN可以确定报文是否按照顺序返回。如果满足上送的顺序,可直接发送出去。如果不满足,可暂时存储下来,等顺序轮该报文时再进行发送。
再次参见图4,根据一些实施例,网络适配器16还可包括解析模块407、净荷缓存模块409及重组模块411。
为提升计算设备30的单核处理性能,上送给CPU核的报文可只带报文头,不带净荷,净荷存储在网络适配器16上。为此,解析模块407解析从网络接收到的报文,提取报文头和报文净荷。净荷缓存模块409存储报文净荷以及计算设备30返回的报文。重组模块411将返回报文和报文净荷重新组装以发送出去。
根据示例实施例,网络适配器包括基于FPGA实现,与专用集成电路相比,具有更高的灵活性和可编程性,就本申请网络适配器的实现目的而言具有很大的成本优势。
这样,根据示例实施例的网络适配器实现了报文均衡和保序,通过和计算设备结合解决了大象流的问题,达到性能、表项规格、灵活性的均衡。
图6示出根据示例实施例的报文保序模块的滑动窗口保序设计示意图。
参见图6,为实现保序功能,报文保序模块按照上送报文的上送顺序维护报文序列信息的滑动窗口,报文序列信息包含上送报文的编号PSN,还可包括确认标识ACK(ACK=1表示报文已返回)和报文上送时间戳TO。滑动窗口是用左右指针来标记窗口的左右边界,然后左右指针移动形成窗口的滑动。
在CPU核处理完上送报文并将报文连同编号PSN返回网络适配器16后,网络适配器16可根据返回报文中的编号确定返回报文所在的窗口位置,例如通过比对编号PSN可以确定返回报文所在的窗口位置。
如果返回报文位于滑动窗口的起始位置,可将返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于尾部指针Tail所指向的窗口位置,可将返回报文发送出去,窗口向右滑动,即指针Tail向右滑动一个窗口。
如果返回报文位于滑动窗口的非起始位置,则当非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于滑动窗口的第二窗口位置(ACK=1),则滑动窗口不滑动,直到所有左侧位置的返回报文均已到达且发送出去之后,才将第二窗口位置的返回报文发送出去,并向右侧滑动滑动窗口,即指针Tail向右滑动一个窗口。
根据一些实施例,网络适配器包括超时轮询模块。为了防止某个报文丢失的情况下模块挂死,可利用上送时间戳实现超时轮询。在报文上送给计算设备的CPU核时,记录上送时间戳TO。超时轮询模块定时轮询报文序列信息,将上送时间戳与本地时钟对比,当上送时间戳与本地时钟的差值超过阈值时,确认返回报文超时并将相应窗口内的信息清零。
图7示出根据示例实施例用于网络适配器的方法流程图。
实现图7所示方法的网络适配器通过总线连接到包括多个处理器核的计算设备。
如图7所示,在S701,将从网络接收到的报文处理为上送报文,上送报文包含编号。
根据一些实施例,为上送报文附加编号,从计算设备返回的报文也包含该编号,以对报文进行跟踪保序。计算设备的核对报文进行处理的延时可能会有些微差异,产生报文上送和返回顺序不一致的问题。为此,可为上送给计算设备的上送报文附加编号,从计算设备返回的报文也包含该编号,从而对报文进行跟踪保序。例如,参见图5,发送给CPU核的上送报文附有编号PSN作为随路元信息,用于后续对报文进行跟踪保序。
根据一些实施例,为提升计算设备的单核处理性能,上送给CPU核的报文可只带报文头,不带净荷,净荷存储在网络适配器上。为此,对从网络接收到的报文进行解析,提取报文头和报文净荷。
在S703,在多个处理器核之间通过均衡的方式逐报文分发上送报文。
例如,假设CPU有4个核(核0至核4),第一个进来的报文分发到核0,第二个进来的报文分发到核1,第三个进来的报文分发到核2,第四个进来的报文分发到核3。
通过均衡的方式来平均每核的负载,可避免产生单流单核打高的问题。
在S705,接收来自计算设备的返回报文,返回报文包含编号。
根据一些实施例,在CPU核处理完上送报文并将报文连同编号返回网络适配器后,网络适配器可根据返回报文中的编号确定报文是否按照顺序返回。
在S707,将返回报文按照上送报文发送给计算设备的顺序发送出去。
根据一些实施例,将返回报文和报文净荷重新组装以发送出去。
根据一些实施例,S707包括如下处理:按照上送报文的上送顺序维护报文序列信息的滑动窗口,报文序列信息包含上送报文的编号;根据返回报文中的编号确定返回报文所在的窗口位置;如果返回报文位于滑动窗口的起始位置,将返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口;如果返回报文位于滑动窗口的非起始位置,则当非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。
根据一些实施例,为实现保序功能,可按照上送报文的上送顺序维护报文序列信息的滑动窗口,报文序列信息包含上送报文的编号PSN,还可包括确认标识ACK(ACK=1表示报文已返回)和报文上送时间戳TO。滑动窗口是用左右指针来标记窗口的左右边界,然后左右指针移动形成窗口的滑动。在CPU核处理完上送报文并将报文连同编号PSN返回网络适配器后,网络适配器可根据返回报文中的编号确定返回报文所在的窗口位置,例如通过比对编号PSN可以确定返回报文所在的窗口位置。如果返回报文位于滑动窗口的起始位置,可将返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于尾部指针Tail所指向的窗口位置,可将返回报文发送出去,窗口向右滑动,即指针Tail向右滑动一个窗口。如果返回报文位于滑动窗口的非起始位置,则当非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于滑动窗口的第二窗口位置(ACK=1),则滑动窗口不滑动,直到所有左侧位置的返回报文均已到达且发送出去之后,才将第二窗口位置的返回报文发送出去,并向右侧滑动滑动窗口,即指针Tail向右滑动一个窗口。根据一些实施例,为了防止某个报文丢失的情况下模块挂死,可利用上送时间戳实现超时轮询。在报文上送给计算设备的CPU核时,可记录上送时间戳TO。通过定时轮询报文序列信息,将上送时间戳与本地时钟对比,当上送时间戳与本地时钟的差值超过阈值时,可确认返回报文超时并将相应窗口内的信息清零。
图8示出根据示例实施例的基于FPGA的网络适配器。
根据示例实施例的网络适配器通过总线连接到包括多个处理器核的计算设备。
参见图8,根据示例实施例的网络适配器包括逻辑单元801和存储单元803。存储单元803存储有运算程序,当运算程序被逻辑单元801执行时实现前述本申请实施例的方法。
例如,逻辑单元801根据存储单元803中存储的指令配置为将从网络接收到的报文处理为上送报文,上送报文包含编号。
根据一些实施例,为上送报文附加编号,从计算设备返回的报文也包含该编号,以对报文进行跟踪保序。计算设备的核对报文进行处理的延时可能会有些微差异,产生报文上送和返回顺序不一致的问题。为此,逻辑单元801可配置为给上送给计算设备的上送报文附加编号,从计算设备返回的报文也包含该编号,从而对报文进行跟踪保序。例如,参见图5,发送给CPU核的上送报文附有编号PSN作为随路元信息,用于后续对报文进行跟踪保序。
根据一些实施例,为提升计算设备的单核处理性能,上送给CPU核的报文可只带报文头,不带净荷,净荷存储在网络适配器上。为此,逻辑单元801可配置为对从网络接收到的报文进行解析,提取报文头和报文净荷。
逻辑单元801还根据存储单元803中存储的指令配置为将从网络接收到的报文处理为上送报文,上送报文包含编号。在多个处理器核之间通过均衡的方式逐报文分发上送报文。
例如,假设CPU有4个核(核0至核4),逻辑单元801可配置为将第一个进来的报文分发到核0,将第二个进来的报文分发到核1,将第三个进来的报文分发到核2,将第四个进来的报文分发到核3。通过均衡的方式来平均每核的负载,可避免产生单流单核打高的问题。
逻辑单元801还根据存储单元803中存储的指令配置为接收来自计算设备的返回报文,返回报文包含编号。
根据一些实施例,在CPU核处理完上送报文并将报文连同编号返回网络适配器后,逻辑单元801可配置为根据返回报文中的编号确定报文是否按照顺序返回。
逻辑单元801还根据存储单元803中存储的指令配置为将返回报文按照上送报文发送给计算设备的顺序发送出去。根据一些实施例,逻辑单元801配置为将返回报文和报文净荷重新组装以发送出去。
根据一些实施例,为实现保序功能,逻辑单元801可配置为按照上送报文的上送顺序维护报文序列信息的滑动窗口,报文序列信息包含上送报文的编号PSN,还可包括确认标识ACK(ACK=1表示报文已返回)和报文上送时间戳TO。滑动窗口是用左右指针来标记窗口的左右边界,然后左右指针移动形成窗口的滑动。在CPU核处理完上送报文并将报文连同编号PSN返回网络适配器后,逻辑单元801可配置为根据返回报文中的编号确定返回报文所在的窗口位置,例如通过比对编号PSN可以确定返回报文所在的窗口位置。如果返回报文位于滑动窗口的起始位置,可将返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于尾部指针Tail所指向的窗口位置,逻辑单元801可配置为将返回报文发送出去,窗口向右滑动,即指针Tail向右滑动一个窗口。如果返回报文位于滑动窗口的非起始位置,则当非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,逻辑单元801可配置为将非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动滑动窗口。例如,参见图6,如果返回报文位于滑动窗口的第二窗口位置(ACK=1),则滑动窗口不滑动,直到所有左侧位置的返回报文均已到达且发送出去之后,才将第二窗口位置的返回报文发送出去,并向右侧滑动滑动窗口,即指针Tail向右滑动一个窗口。根据一些实施例,为了防止某个报文丢失的情况下模块挂死,逻辑单元801可配置为利用上送时间戳实现超时轮询。在报文上送给计算设备的CPU核时,可记录上送时间戳TO。通过定时轮询报文序列信息,将上送时间戳与本地时钟对比,当上送时间戳与本地时钟的差值超过阈值时,可确认返回报文超时并将相应窗口内的信息清零。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的技术方案至少具有以下优点中的一个或多个。
根据实施例,利用计算设备(例如基于X86)做服务能力演进,网络数据处理灵活性好。同时,利用通过总线连接到计算设备的网络适配器实现高性能。
根据实施例,云网关结合了多核计算设备的灵活性和网络适配器的高性能,在表项规格和服务演进上具有更好的保障。
根据实施例,通过网络适配器实现逐报文的负载均衡和保序,能够解决大象流风险,达到性能、表项规格和灵活性的兼顾,避免产生单流单核打高的问题。
根据实施例,通过计算设备和基于FPGA的网络适配器实现云网关,灵活性和融合性好,不需要对现有云网络做架构改造。
根据实施例,网络适配器实现了报文均衡和保序,通过和计算设备结合解决了大象流的问题,达到性能、表项规格、灵活性的均衡。
根据实施例,网络适配器包括基于FPGA实现,与专用集成电路相比,具有更高的灵活性和可编程性,就本申请网络适配器的实现目的而言具有很大的成本优势。
需要说明的是,在具体实施过程中,上述技术方案还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
需要说明的是,对于前述的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例云网关的全部或部分步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述实施例中记载的任何一种方法的部分或全部步骤。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现云网关;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。

Claims (13)

1.一种云网关,其特征在于,包括计算设备和通过总线连接到所述计算设备的网络适配器,其中:
所述计算设备包括配置为接收来自所述网络适配器的上送报文的多个处理器核,所述处理器核处理所述上送报文,并将得到的返回报文返回给所述网络适配器;
所述网络适配器将从网络接收到的报文处理为上送报文,并在所述多个处理器核之间通过均衡的方式逐报文进行分发,且将来自所述计算设备的返回报文保序发送出去。
2.根据权利要求1所述的云网关,其特征在于,所述网络适配器包括:
报文调度模块,用于将从网络接收到的报文在所述多个处理器核之间逐报文进行均衡分发,并为上送给所述计算设备的上送报文附加编号,所述返回报文包含所述编号;
报文保序模块,用于将所述计算设备的返回报文按照上送报文发送给所述计算设备的顺序发送出去。
3.根据权利要求2所述的云网关,其特征在于,所述报文保序模块配置为:
按照所述上送报文的上送顺序维护报文序列信息的滑动窗口,所述报文序列信息包含所述上送报文的所述编号;
根据所述返回报文中的所述编号确定所述返回报文所在的窗口位置;
如果所述返回报文位于所述滑动窗口的起始位置,将所述返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口;
如果所述返回报文位于所述滑动窗口的非起始位置,则当所述非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将所述非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口。
4.根据权利要求3所述的云网关,其特征在于,所述上送报文仅包含报文头而没有报文净荷。
5.根据权利要求4所述的云网关,其特征在于,所述网络适配器还包括:
解析模块,用于解析从网络接收到的报文以提取报文头和报文净荷;
净荷缓存模块,用于存储所述报文净荷和所述返回报文;
重组模块,用于将所述返回报文和所述报文净荷重新组装以发送出去。
6.根据权利要求3所述的云网关,其特征在于,所述报文序列信息还包括确认标识和报文上送时间戳。
7.根据权利要求6所述的云网关,其特征在于,所述网络适配器还包括:
超时轮询模块,用于定时轮询所述报文序列信息,将所述上送时间戳与本地时钟对比,当所述上送时间戳与本地时钟的差值超过阈值时,确认返回报文超时并将相应窗口内的信息清零。
8.根据权利要求1所述的云网关,其特征在于,处理器核用于将所述上送报文转案号:230240CI
换为VxLAN封装报文。
9.根据权利要求1所述的云网关,其特征在于,所述云网关包括互联网网关、专线网关和/或虚拟私有云网关。
10.根据权利要求1所述的云网关,其特征在于,所述网络适配器包括基于FPGA实现的网络适配器。
11.一种用于网络适配器的方法,所述网络适配器通过总线连接到包括多个处理器核的计算设备,其特征在于,所述方法包括:
将从网络接收到的报文处理为上送报文,所述上送报文包含编号;
在所述多个处理器核之间通过均衡的方式逐报文分发所述上送报文;
接收来自所述计算设备的返回报文,所述返回报文包含所述编号;
将所述返回报文按照上送报文发送给所述计算设备的顺序发送出去。
12.根据权利要求11所述的方法,其特征在于,将所述返回报文按照上送报文发送给所述计算设备的顺序发送出去,包括:
按照所述上送报文的上送顺序维护报文序列信息的滑动窗口,所述报文序列信息包含所述上送报文的所述编号;
根据所述返回报文中的所述编号确定所述返回报文所在的窗口位置;
如果所述返回报文位于所述滑动窗口的起始位置,将所述返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口;
如果所述返回报文位于所述滑动窗口的非起始位置,则当所述非起始位置的窗口位置减小的方向侧的返回报文均已到达且发送出去之后,将所述非起始位置的返回报文发送出去,并向窗口位置增加的方向滑动所述滑动窗口。
13.一种基于FPGA的网络适配器,所述网络适配器通过总线连接到包括多个处理器核的计算设备,其特征在于,所述网络适配器包括:
逻辑单元;以及
存储单元,存储有运算程序,当所述运算程序被所述逻辑单元执行时实现如权利要求11或12所述的方法。
CN202310451439.5A 2023-04-21 2023-04-21 云网关和用于网络适配器的方法及网络适配器 Pending CN116633726A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310451439.5A CN116633726A (zh) 2023-04-21 2023-04-21 云网关和用于网络适配器的方法及网络适配器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310451439.5A CN116633726A (zh) 2023-04-21 2023-04-21 云网关和用于网络适配器的方法及网络适配器

Publications (1)

Publication Number Publication Date
CN116633726A true CN116633726A (zh) 2023-08-22

Family

ID=87637237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310451439.5A Pending CN116633726A (zh) 2023-04-21 2023-04-21 云网关和用于网络适配器的方法及网络适配器

Country Status (1)

Country Link
CN (1) CN116633726A (zh)

Similar Documents

Publication Publication Date Title
US20210051045A1 (en) Communication switching apparatus for switching data in multiple protocol data frame formats
US10326830B1 (en) Multipath tunneling to a service offered at several datacenters
CN105612719B (zh) 使用封装头部中的元数据的高级网络虚拟化
US7630368B2 (en) Virtual network interface card loopback fastpath
US8848536B2 (en) Stateless load balancer in a multi-node system for transparent processing with packet preservation
US9225656B2 (en) Quality of service in a heterogeneous network
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US8913613B2 (en) Method and system for classification and management of inter-blade network traffic in a blade server
US9414136B2 (en) Methods and apparatus to route fibre channel frames using reduced forwarding state on an FCoE-to-FC gateway
US8798046B2 (en) Methods and apparatus for providing unique MAC address to individual node for fibre channel over Ethernet (FCoE) traffic
US20140241345A1 (en) Source routing with fabric switches in an ethernet fabric network
EP2965476B1 (en) Forwarding ethernet packets
CN110999265A (zh) 管理云计算服务端点和虚拟机之间的网络连接性
CN112311692B (zh) 报文处理方法及装置、端设备
US8705545B2 (en) N-way routing packets across an intermediate network
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
CN107733930B (zh) 用于在多个wan网络网关处转发互联网协议(ip)数据包的方法和系统
WO2024001701A1 (zh) 数据处理方法、装置及系统
KR102420610B1 (ko) 다층 캐싱 전략을 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치
CN107231316B (zh) 报文的传输方法及装置
CN116633726A (zh) 云网关和用于网络适配器的方法及网络适配器
WO2024217179A1 (zh) 云网关和用于网络适配器的方法及网络适配器
US10404586B2 (en) Information processing system and information processing method
US10805436B2 (en) Deliver an ingress packet to a queue at a gateway device
Cheng et al. Telco distributed DC with transport protocol enhancement for 5G mobile networks: a survey

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