CN112714073B - 基于sr-iov网卡的报文分流方法、系统及存储介质 - Google Patents
基于sr-iov网卡的报文分流方法、系统及存储介质 Download PDFInfo
- Publication number
- CN112714073B CN112714073B CN201911019358.8A CN201911019358A CN112714073B CN 112714073 B CN112714073 B CN 112714073B CN 201911019358 A CN201911019358 A CN 201911019358A CN 112714073 B CN112714073 B CN 112714073B
- Authority
- CN
- China
- Prior art keywords
- network card
- message
- protocol type
- physical network
- virtual 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005516 engineering process Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005641 tunneling Effects 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003863 physical function Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于SR‑IOV网卡的报文分流方法、系统及存储介质,通过物理网卡将报文发送至虚拟网卡,进一步地,虚拟网卡对报文进行分流;解决了相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差的问题。也即本发明提供的基于SR‑IOV网卡的报文分流方法、系统及存储介质,通过SR‑IOV网卡中的虚拟网卡实现了硬件报文分流,大大提升了对报文的分流效率,在极大程度上提升了系统性能。
Description
技术领域
本发明实施例涉及但不限于网络数据处理技术领域,具体而言,涉及但不限于,涉及一种基于SR-IOV网卡的报文分流方法、系统及存储介质。
背景技术
网卡多队列技术与处理器多核技术密不可分,最初是用来解决网络I/O QoS(quality of service)问题的,后来随着网络I/O的带宽的不断提升,单核CPU不能完全满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。
单根I/O虚拟化(Single-root I/O virtualization,SR-IOV)技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性,SR-IOV标准允许在虚拟机之间高效共享快速外设组件互连(Peripheral Component Interconnect Express,PCIE)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的I/O性能。一个带有SR-IOV功能的物理设备能被配置为多个功能单元。SR-IOV使用两种功能(function):
其一,物理功能(Physical Functions,PF):这是完整的带有SR-IOV能力的PCIE设备。PF能像普通PCIE设备那样被发现、管理和配置。
其二:虚拟功能(Virtual Functions,VF):简单的PCIE功能,它只能处理I/O。每个VF都是从PF中分离出来的。每个物理硬件都有一个VF数目的限制。一个PF能被虚拟成多个VF用于分配给多个虚拟机。
支持SR-IOV网卡的虚拟机部署架构如图1所示,基于SR-IOV的网卡(networkinterface card,NIC)包括VF、PF,其中VF运行在虚拟机(Virtual Machine,VM)上,VM上包括各应用程序APP和虚拟机网卡VNIC,PF运行在虚拟机监视器(virtual machine monitor,VMM)又称Hypervisor上,输入/输出存储器管理单元(input/output memory managementunit,I/O MMU)需要支持Intel(Integrated Electronics Corporation,英特尔)的VT-x和VT-d技术或者AMD(Advanced Micro Devices,超威半导体公司)的SVM和IOMMU技术;其中SR-IOV提供了一块物理设备以多个独立物理设备(PF和VF)呈现的机制,以解决虚拟机对物理设备的独占问题。每个VF都有自己独立的PCI配置空间,收发队列、中断等资源。主机可以分配一个或者多个VF给虚拟机使用。
专利号为“CN 103269317A”,名称为“基于对称多处理SMP系统的无锁化通信方法和系统”的中国专利中披露了一种RSS(Receive-Side Scaling)报文分流方法,基于软件报文分流的多核流水线(pipeline)模式如图2所示,该方法的主要思路是不对目前网卡的RSS报文分流功能进行修改,而是将整个系统运行于流水线模式,并且将一个处理器核心(如图2所示core0)用于处理报文分流,报文都由网卡(如图2所示NIC port0、NIC port1)送处理器核心,由处理器核心执行一次哈希运算后再根据哈希运算的结果将报文发送给对应的工作处理器(如图2所示core1、core2、core3、core4、core5)。
上述分流方法需要使用一个处理器核心专用于报文分流,不进行其它业务的处理,浪费了处理器资源,而且该处理器核心容易成为整个系统的性能瓶颈。此外,由于使用上述分流方法时整个系统运行于流水线模式,一次报文分流需要由多个处理器核心共同完成,因为一次报文分流所需的数据需要存储在多个处理器核心所对应的高速缓冲存储器中,这样会降低处理器的高速缓冲存储器命中率,进一步降低了系统性能。
可见,目前仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差。
发明内容
本发明实施例提供的基于SR-IOV网卡的报文分流方法、系统及计算机可读存储介质,主要解决的技术问题是相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差。
为解决上述技术问题,本发明实施例提供了一种基于SR-IOV网卡的报文分流方法,所述SR-IOV网卡包括物理网卡和虚拟网卡,所述基于SR-IOV网卡的报文分流方法包括:
所述物理网卡将报文发送至所述虚拟网卡;
所述虚拟网卡对所述报文进行分流。
本发明实施例还提供了一种系统,所述系统包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现如上述的基于SR-IOV网卡的报文分流方法的步骤。
本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上述的基于SR-IOV网卡的报文分流方法的步骤。
本发明的有益效果是:
本发明实施例提供的基于SR-IOV网卡的报文分流方法、系统及计算机可读存储介质,通过物理网卡将报文发送至虚拟网卡,进一步地,虚拟网卡对报文进行分流;解决了相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差的问题。也即本发明实施例提供的基于SR-IOV网卡的报文分流方法、系统及存储介质,通过SR-IOV网卡中的虚拟网卡实现了硬件报文分流,大大提升了对报文的处理效率,在极大程度上提升了系统性能。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为相关技术中支持SR-IOV网卡的虚拟机部署架构的结构示意图;
图2为相关技术中基于软件报文分流的多核流水线的结构示意图;
图3为本发明实施例一提供的基于SR-IOV网卡的报文分流方法的基本流程示意图;
图4为本发明实施例一提供的虚拟网卡对报文进行分流之前的基本流程示意图;
图5为本发明实施例二提供的基于SR-IOV网卡的报文分流方法的基本流程示意图;
图6为本发明实施例二提供的基于virtio-serial的虚拟机和主机数据传输的结构示意图;
图7为本发明实施例三提供的GTP报文字段格式的示意图;
图8为本发明实施例四提供的PPPOE报文字段格式的示意图;
图9为本发明实施例五提供的系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
为了解决相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差的问题,本发明实施例中提供了一种基于SR-IOV网卡的报文分流方法,通过物理网卡将报文发送至虚拟网卡,进一步地,虚拟网卡对报文进行分流;请参见图3所示,如图3为本实施例提供的基于SR-IOV网卡的报文分流方法的基本流程示意图。
S301:物理网卡将报文发送至虚拟网卡。
可选地,本发明实施例中物理网卡将报文发送至虚拟网卡之前,还包括:虚拟机与主机建立virtio-sertial通道。其中virtio是VMM中位于设备之上的抽象层,使用virtio传递消息有两点优势,其一对虚拟机和主机的网络设置没有任何要求,其二效率更高。
应当明确的是,本发明实施例中虚拟机与主机建立了virtio-sertial通道之后,存在至少以下两种情况:
情况一:当报文属于物理网卡和虚拟网卡当前不支持的协议类型时,虚拟网卡通过virtio-sertial通道向物理网卡发送支持协议类型报文的配置文件,物理网卡动态加载配置文件,以使得物理网卡和虚拟网卡能够识别协议类型所封装报文头字段。
可选地,本发明实施例中物理网卡和虚拟网卡当前不支持的协议类型包括但不限于GPRS隧道协议(GPRSTunnellingProtocol,GTP)、点对点协议(Point-to-Point ProtocolOver Ethernet,PPPOE);其中:
当报文为GPRS隧道协议类型报文时,虚拟网卡通过virtio-sertial通道向物理网卡发送支持GPRS隧道协议类型报文的配置文件,物理网卡动态加载配置文件,以使得物理网卡和虚拟网卡能够识别GPRS隧道协议类型所封装报文头字段;
当报文为点对点协议类型报文时,虚拟网卡通过virtio-sertial通道向物理网卡发送支持点对点协议类型报文的配置文件,物理网卡动态加载配置文件,以使得物理网卡和虚拟网卡能够识别点对点协议类型所封装报文头字段。
可以理解的是,当报文属于物理网卡和虚拟网卡当前不支持的协议类型时(即该报文为新协议类型的报文时),物理网卡动态加载配置文件即使得该协议类型所封装的报文头字段为完全可见,此时物理网卡和虚拟网卡即可识别该协议类型所封装的报文头字段。
可选地,本发明实施例中虚拟网卡对报文进行分流之前,还包括至少以下步骤,请参见图4所示:
S401:虚拟网卡通过virtio-sertial通道向物理网卡发送修改报文协议类型关键字请求;
S402:物理网卡接收到修改报文协议类型关键字请求后对报文协议类型的关键字进行修改,以使得报文与普通IP报文协议类型的关键字匹配。
应当理解的是,本发明实施例中的普通IP报文协议类型即为物理网卡和虚拟网卡当前支持的协议类型,包括但不限于用户数据报协议(User Datagram Protocol,UDP)、传输控制协议(Transmission Control Protocol,TCP)、虚拟扩展局域网(VirtualExtensible Local Area Network,VXLAN)协议、通用路由封装协议(Generic RoutingEncapsulation,GRE);值得注意的是,在实际应用中,普通IP报文协议类型根据具体应用场景做灵活调整,这里不再赘述。其中:
当报文为GPRS隧道协议类型报文时,虚拟网卡通过virtio-sertial通道向物理网卡发送修改GPRS隧道协议类型报文关键字请求;物理网卡接收到修改GPRS隧道协议类型报文关键字请求后对GPRS隧道协议类型报文的关键字进行修改,以使得GPRS隧道协议类型报文与普通IP报文协议类型的关键字匹配;
当报文为点对点协议类型报文时,虚拟网卡通过virtio-sertial通道向物理网卡发送修改点对点协议类型报文关键字请求;物理网卡接收到修改点对点协议类型报文关键字请求后对点对点协议类型报文的关键字进行修改,以使得点对点协议类型报文与普通IP报文类型的关键字匹配。
为了更好的理解,这里以一个具体示例进行说明,例如设报文为GPRS隧道协议类型报文,普通IP报文类型为UDP报文,其中UDP报文的关键字由四元组组成(源IP地址、目的IP地址、源端口号、目的端口号),通过修改GPRS隧道协议类型报文的关键字,使得GPRS隧道协议类型报文的关键字当前可以与UDP报文的一元组(即源IP地址、目的IP地址、源端口号、目的端口号中的任意一个)或二元组(即源IP地址、目的IP地址、源端口号、目的端口号中的任意两个)或三元组(即源IP地址、目的IP地址、源端口号、目的端口号中的任意三个)匹配即可。值得注意的是,这里所列举的只是一个具体示例,在实际应用中,可根据具体应用场景做灵活调整。
情况二:当报文属于物理网卡和当前支持的协议类型时,物理网卡和虚拟网卡自动识别协议类型所封装报文头字段以及修改该报文协议类型的关键字。
可选地,本发明实施例中物理网卡和虚拟网卡当前支持的协议类型包括但不限于用户数据报协议、传输控制协议、虚拟扩展局域网协议、通用路由封装协议;其中:
当报文为用户数据报协议类型报文时,物理网卡和虚拟网卡自动识别用户数据报协议类型所封装报文头字段以及修改该报文协议类型的关键字;
当报文为传输控制协议类型报文时,物理网卡和虚拟网卡自动识别传输控制协议类型所封装报文头字段以及修改该报文协议类型的关键字;
当报文为虚拟扩展局域网协议类型报文时,物理网卡和虚拟网卡自动识别虚拟扩展局域网协议类型所封装报文头字段以及修改该报文协议类型的关键字;
当报文为通用路由封装协议类型报文时,物理网卡和虚拟网卡自动识别通用路由封装协议类型所封装报文头字段以及修改该报文协议类型的关键字。
可以理解的是,当报文属于物理网卡和虚拟网卡当前支持的协议类型时(即该报文为已有协议类型的报文时),该协议类型所封装的报文头字段对于物理网卡和虚拟网卡而言即为完全可见,此时物理网卡和虚拟网卡便可自动识别该协议类型所封装的报文头字段。
本发明实施例中通过物理网卡中的动态设备个性化(Dynamic DevicePersonalization,DDP)加载配置文件以动态配置报文处理的流水线,满足特定的场景需求,实现了支持新协议类型(如上述的GTP协议类型和PPPOE协议)和改变相关技术中协议类型默认的配置,在极大程度上提升了灵活性。
S302:虚拟网卡对报文进行分流。
可选地,本发明实施例中虚拟网卡对报文进行分流,包括:
虚拟网卡对封装报文头字段进行解析、识别,基于RSS技术将解析、识别后的报文分散到不同队列上,由多核处理器并行处理。
应当明确的是,本发明实施例中的多核处理器指代的是工作处理器即工作核,而非处理器核心。
应当明确的是,接收方扩展(Receive-Side Scaling,RSS)是一种能够在多处理器系统下使接收报文在多个CPU之间高效报文分流的网卡驱动技术,RSS把数据包分配到不同的队列中,其中哈希值的计算公式在硬件中完成,也可以定制修改,RSS就是根据关键字通过哈希函数确定哈希值,再由哈希值确定队列;虚拟网卡根据不同的报文类型选取不同的关键字,比如IPv4 UDP包的关键字由四元组组成(源IP地址、目的IP地址、源端口号、目的端口号),IPv4包的关键字有两元组组成(源IP地址、目的IP地址)。
本发明实施例提供的基于SR-IOV网卡的报文分流方法,通过物理网卡将报文发送至虚拟网卡,进一步地,虚拟网卡对报文进行分流;解决了相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差的问题。也即本发明实施例提供的基于SR-IOV网卡的报文分流方法,与相关技术相比具有至少以下优点:
第一:本发明实施例中根据虚拟网卡对报文进行解析识别,将流量分散到不同的队列上,多核处理器之间负载均衡并行处理报文,提高了报文的处理性能,无需处理器核心来实现分流,例如TCP报文到队列1,UDP报文到队列2,SCTP报文到队列3和队列4,GTP-C报文到队列5,GTP-U到队列6,7,8中,物理网卡动态加载GTP数据包对应的配置文件之后以识别GTP-C和GTP-U的报文,虚拟网卡基于网卡分流方法来解析识别进而实现报文分流;而相关技术中均是通过物理网卡将报文上送给处理器控制平面由处理器核心来解析识别进而实现报文分流,在极大程度上造成了处理器核心负载过重。
第二:本发明实施例中基于virtio-serial的虚拟机和主机数据传输机制,通过加载DDP profile配置文件,物理网卡和虚拟网卡支持新增协议报文类型且可修改报文协议类型对应的关键字,在极大程度上提高了对不同报文的处理能力,扩展性更好。
第三:本发明实施例中物理网卡动态加载配置文件实现了重新配置数据包的处理流水线,无需从服务器迁移所有虚拟机(Virtual Machine,VM),即可按需为不同网络功能重新配置物理网卡从而避免服务器硬重启;而相关技术中仅支持通过升级物理网卡固件将新的数据包类型或网络协议的处理添加到物理网卡里,而物理网卡固件升级过程包括物理网卡的完全重置,并且还可能包括安装在物理网卡上的服务器的硬重启,在这种情况下,服务器上运行的所有VM都必须与物理网卡分离,并在物理网卡固件更新期间迁移到另一台服务器。
实施例二:
本发明实施例在实施例一的基础上,以一种具体的基于SR-IOV网卡的报文分流方法进行示例说明,请参见图5所示。
S501:虚拟机与主机建立virtio-sertial通道。
请参见图6所示,建立基于virtio-serial的虚拟机和主机数据传输机制,用virtio通道在虚拟机和主机之间传递消息,应当理解的是,使用virtio在虚拟机虚拟网卡和主机物理网卡之间传递消息具有对虚拟机和主机的网络设置没有任何要求和效率更高两种优势,当然也可使用socket在虚拟机虚拟网卡和主机物理网卡之间传递消息。
S502:虚拟网卡通过virtio-sertial通道向物理网卡发送物理网卡和虚拟网卡当前不支持的协议(即新协议)类型报文的配置文件。
进一步地,虚拟机虚拟网卡将支持新协议类型报文的配置文件传递给主机物理网卡。
S503:物理网卡动态加载配置文件,以使得物理网卡和虚拟网卡能够识别该协议类型所封装报文头字段。
进一步地,主机物理网卡接收到配置文件后,通过主机物理网卡动态加载该配置文件以识别新协议类型所封装报文头字段,即物理网卡和虚拟网卡中的RSS或FlowDirector能够识别新协议类型的数据包中的字段,对新协议类型的报文执行硬件分流。
S504:虚拟网卡通过virtio-sertial通道向物理网卡发送修改报文协议类型关键字请求。
进一步地,当报文协议类型的关键字不满足需求时,虚拟机虚拟网卡向主机物理网卡发送修改报文协议类型关键字的请求。
S505:物理网卡接收到修改报文协议类型关键字请求后对报文协议类型的关键字进行修改,以使得该报文与普通IP报文协议类型的关键字匹配。
进一步地,主机物理网卡接收到修改报文协议类型关键字请求后对报文协议类型的关键字进行修改,以使得该报文与普通IP报文协议类型的关键字匹配。
S506:虚拟网卡基于RSS技术对报文进行分流。
进一步地,虚拟机虚拟网卡对新协议类型的报文头字段进行解析、识别,基于RSS技术将解析、识别后的报文分散到不同队列上,由多核处理器并行处理。
本发明实施例提供的基于SR-IOV网卡的报文分流方法,尤其涉及基于SR-IOV网卡实现个性化的报文分流方法,支持SR-IOV技术网卡的虚拟机部署架构中,主机可以分配一个或者多个VF端口(即虚拟网卡)给虚拟机使用,每个VF端口都有自己独立的PCI配置空间,收发队列、中断等资源;通过在虚拟机和主机建立virtio-serial通道,虚拟机通过virtio-serial通道向主机发送配置文件,主机的物理网卡加载配置文件,使物理网卡和虚拟网卡具备支持新的协议类型和改变协议类型默认的配置的能力。虚拟机通过virtio-serial通道,动态修改VF端口RSS或者FDIR匹配协议报文类型关键字段,以满足不同场景需求;VF端口根据此改进的RSS功能对报文分流,对队列执行负载分担,达到非对称报文的对称hash,实现双向流的亲和性,提高系统性能。
可见,本发明实施例充分利用网卡的SR-IOV技术和RSS技术,通过DDP技术动态配置RSS关键字,改变网卡数据包类型默认关键字,生成多种新的分流方法以满足更灵活的系统要求,在VF端口实现了个性化的硬件报文分流,避免管道模式对系统性能造成的不利影响,大大提升报文的分流效率,极大程度上提升了系统性能。
实施例三:
本发明实施例以虚拟化演进分组核心网vEPC场景为例进行说明。
vEPC实现了控制和用户平面分离的概念。vEPC用户平面(也称为数据平面)由多个实例组成,每个实例在虚拟机内的多个CPU核上运行。vEPC中的CPU核可以扮演两个主要角色之一:接收(RX)核或工作核,其中:
接收核负责从网卡RX ring队列获取数据包,数据包分类和数据包分发到特定的工作核;还包括工作核之间的工作负载平衡。
工作核实现LTE EPC用户平面栈功能并且处理上行链路(UL,从UE/eNB到PDN)和下行链路(DL,从PDN到eNB/UE)流量;工作核以运行到完成(RTC)模式处理数据包。
vEPC用户平面对每个接收的数据包进行分类并分发到工作核上进行处理。为了获得更好的高速缓存利用率并提高性能,vEPC将来自相同UE IP的所有数据流量绑定到固定的工作核上。
为了将UE IP固定到相同的工作核上,vEPC使用UE IP地址作为工作核识别的key。上行链路流量为GTP-U封装的IP报文,因此从封装的IP报文中提取源地址作为UE IP地址。下行链路流量为普通IP报文,因此UE IP地址为报文的目的地IP地址。通过本发明实施例,修改GTPU协议和普通IP报文类型的匹配关键字,vEPC将来自相同UE IP的所有数据流量绑定到固定的工作核上;实现了非对称报文的对称hash、双向流的亲和性,节省了接收核,提高了系统性能。
在以默认固件配置的英特尔以太网700系列用作服务器的物理网卡时,报文被分类并分发在多个并行队列中,以便在传输之前进行进一步处理(QoS,GTP处理,出口调度等)。
英特尔以太网700系列设备以默认固件配置,在此配置中,物理网卡支持某些默认报文类型,例如UDP,TCP,VXLAN,GRE等的分类,允许识别这些默认报文并将其分发到网卡的队列中,默认情况下不支持其他报文类型的分类,例如vEPC中使用的GTP协议。为了启用GTP报文的分类,选择启用GTP报文分类的配置文件,此配置文件在运行时动态加载,动态加载此配置文件后,物理网卡支持内联GTP报文的分类。
如参见图7所示为GTP协议对应的报文字段格式,分别为DA、SA、IPv4、UDP、GTP-U、IPv4、TCP、PAY,其中动态加载GTP协议对应的配置文件前物理网卡对包头字段的可见性为前四个字段,在动态加载GTP协议对应的配置文件前物理网卡对包头字段的可见性为前七个字段。在使用默认固件映像情况下,设备并无法识别封装在UDP报文头中GTP头,并且GTP封装的帧实际上是外部UDP报文中的有效载荷,GTP在这里是一种未知的流类型,RSS或FlowDirector不能解析这种封装的报文,在这种情况下,相关技术中GTP报文的分类和分发必须由处理器核执行。
本发明实施例中将GTP协议对应的配置文件加载到英特尔以太网700系列控制器后,将定义GTP流类型并且封装的帧字段(包括GTP TEID)可用于RSS,Flow Director或Cloud Filters。网卡具有所有封装报文头字段的完全可见性,即网卡可识别所有封装报文头字段,并且可以基于此改进的分类功能对报文执行负载分担,从而无需额外分配负载分担的核执行相同功能。
本发明实施例中,在vEPC场景中将相关技术中由处理器核执行的功能被移动到硬件虚拟网卡上,工作核直接从虚拟网卡的队列中RX环获取报文;考虑到在一台服务器上运行多个vEPC用户平面实例,GTP数据报文分流的配置文件可以节省多个处理器核,通过修改RSS匹配的协议报文关键字,可以使相同用户的IP固定到相同的工作核,从而避免加锁带来的开销和对系统性能带来的负面影响;理想的目标是同一会话报文流的报文都由同一个处理器核来处理,在极大程度上造成了处理器核心负载过重。
实施例四:
本发明实施例以vBRAS场景为例进行说明。
在vBRAS场景中,vBRAS是宽带远程接入服务器(Broadband Remote AccessServer,BRAS)虚拟化替代原有的物理BRAS设备,其负责用户的接入认证及业务功能。
PPPOE是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。
虚拟网卡通过virtio-serial通道将虚拟机上PPPOE协议的配置文件发送给主机,物理网卡动态识别加载该配置文件,以使得物理网卡和虚拟网卡能够识别PPPOE协议类型所封装报文头字段,如图8所示为PPPOE报文字段格式,分别为Ethernet header、PPPOEheader、PPP header、PPP data、PAY;进一步地,虚拟网卡对封装报文头字段进行解析、识别,基于RSS技术将解析、识别后的报文分散到不同队列上,由多核处理器(即多个工作核)并行处理。
在虚拟化实现中,通常负载分担和PPPOE报文分类功能由CPU核执行。理想的目标是同一会话报文流的报文都由同一个处理器核来处理,多核处理器之间负载均衡,以为了避免加锁带来的开销和对系统性能的负面影响,因此在虚拟网卡识别到PPPOE报文之后,通过设置PPPOE协议报文的的会话标示(session id)作为RSS输入关键字来实现该目标。
本发明实施例中,在vBRAS场景中根据虚拟网卡对报文进行解析识别,将流量分散到不同的队列上,多核处理器之间负载均衡并行处理报文,提高了报文的处理性能,无需处理器核心来实现分流;而在相关技术中虚拟化实现中,通常负载分担和PPPOE报文分类功能由处理器核执行,理想的目标是同一会话报文流的报文都由同一个处理器核来处理,在极大程度上造成了处理器核心负载过重。
实施例五:
为了解决相关技术中仅是基于物理网卡进行的软件报文分流,报文分流效率低,系统性能差的问题,本发明实施例中提供了一种系统,请参见图9所示,本实施例提供的系统包括处理器901、存储器902及通信总线903。
其中,本实施例中的通信总线903用于实现处理器901与存储器902之间的连接通信,处理器901则用于执行存储器902中存储的一个或者多个程序,以实现以下步骤:
物理网卡将报文发送至虚拟网卡;
虚拟网卡对报文进行分流。
值得注意的是,为了不累赘说明,在本实施例中并未完全阐述实施例一至四中的所有示例,应当明确的是,实施例一至四中的所有示例均适用于本实施例。
本发明实施例还提供一种存储介质(即计算机可读存储介质),计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如实施例一至四中的基于SR-IOV网卡的报文分流方法的步骤。
该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically ErasableProgrammable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
显然,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种基于SR-IOV网卡的报文分流方法,所述SR-IOV网卡包括物理网卡和虚拟网卡,所述基于SR-IOV网卡的报文分流方法包括:
所述物理网卡将报文发送至所述虚拟网卡;
所述虚拟网卡对所述报文进行分流;
其中,所述物理网卡将报文发送至所述虚拟网卡之前,还包括:
虚拟机与主机建立virtio-sertial通道,当所述报文属于所述物理网卡和虚拟网卡当前不支持的协议类型时,所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送支持所述协议类型报文的配置文件,所述物理网卡动态加载所述配置文件,以使得所述物理网卡和虚拟网卡能够识别所述协议类型所封装报文头字段。
2.如权利要求1所述的基于SR-IOV网卡的报文分流方法,其特征在于,所述物理网卡和虚拟网卡当前不支持的协议类型包括GPRS隧道协议、点对点协议中的至少一种;
当所述报文为GPRS隧道协议类型报文时,所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送支持所述GPRS隧道协议类型报文的配置文件,所述物理网卡动态加载所述配置文件,以使得所述物理网卡和虚拟网卡能够识别所述GPRS隧道协议类型所封装报文头字段;
当所述报文为点对点协议类型报文时,所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送支持所述点对点协议类型报文的配置文件,所述物理网卡动态加载所述配置文件,以使得所述物理网卡和虚拟网卡能够识别所述点对点协议类型所封装报文头字段。
3.如权利要求1所述的基于SR-IOV网卡的报文分流方法,其特征在于,所述虚拟网卡对所述报文进行分流之前,还包括:
所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送修改报文协议类型关键字请求;
所述物理网卡接收到所述修改报文协议类型关键字请求后对所述报文协议类型的关键字进行修改,以使得所述报文与普通IP报文协议类型的关键字匹配。
4.如权利要求3所述的基于SR-IOV网卡的报文分流方法,其特征在于,所述普通IP报文协议类型包括用户数据报协议、传输控制协议、虚拟扩展局域网协议、通用路由封装协议中的至少一种。
5.如权利要求4所述的基于SR-IOV网卡的报文分流方法,其特征在于,
当所述报文为GPRS隧道协议类型报文时,所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送修改GPRS隧道协议类型报文关键字请求;
所述物理网卡接收到所述修改GPRS隧道协议类型报文关键字请求后对所述GPRS隧道协议类型报文的关键字进行修改,以使得所述GPRS隧道协议类型报文与普通IP报文类型的关键字匹配;
当所述报文为点对点协议类型报文时,所述虚拟网卡通过所述virtio-sertial通道向所述物理网卡发送修改点对点协议类型报文关键字请求;所述物理网卡接收到所述修改点对点协议类型报文关键字请求后对所述点对点协议类型报文的关键字进行修改,以使得所述点对点协议类型报文与普通IP报文类型的关键字匹配。
6.如权利要求1-5任一项所述的基于SR-IOV网卡的报文分流方法,其特征在于,所述虚拟网卡对所述报文进行分流,包括:
所述虚拟网卡对封装报文头字段进行解析、识别,基于RSS技术将解析、识别后的报文分散到不同队列上,由多核处理器并行处理。
7.一种系统,其特征在于,所述系统包括处理器、存储器及通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个计算机程序,以实现如权利要求1-5中任一项所述的基于SR-IOV网卡的报文分流方法的步骤。
8.一种存储介质,其特征在于,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如权利要求1-5中任一项所述的基于SR-IOV网卡的报文分流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911019358.8A CN112714073B (zh) | 2019-10-24 | 2019-10-24 | 基于sr-iov网卡的报文分流方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911019358.8A CN112714073B (zh) | 2019-10-24 | 2019-10-24 | 基于sr-iov网卡的报文分流方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112714073A CN112714073A (zh) | 2021-04-27 |
CN112714073B true CN112714073B (zh) | 2024-04-30 |
Family
ID=75540394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911019358.8A Active CN112714073B (zh) | 2019-10-24 | 2019-10-24 | 基于sr-iov网卡的报文分流方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112714073B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315765B (zh) * | 2021-05-26 | 2023-01-03 | 北京威努特技术有限公司 | 一种网络安全处理系统及其工作方法 |
CN116668375B (zh) * | 2023-07-31 | 2023-11-21 | 新华三技术有限公司 | 一种报文分流方法、装置、网络设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827030A (zh) * | 2010-04-21 | 2010-09-08 | 杭州华三通信技术有限公司 | 一种mpls报文处理方法及其装置 |
CN103840994A (zh) * | 2012-11-23 | 2014-06-04 | 华耀(中国)科技有限公司 | 一种用户端通过 vpn 访问内网的系统及方法 |
CN103905309A (zh) * | 2012-12-28 | 2014-07-02 | 中国电信股份有限公司 | 虚拟机之间的数据交换方法和系统 |
CN105025387A (zh) * | 2014-04-29 | 2015-11-04 | 中国电信股份有限公司 | Iptv智能终端进行iptv业务和互联网业务的方法和系统 |
CN105162858A (zh) * | 2015-08-20 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 针对corba中间件的通用传输协议框架、通信系统及方法 |
CN107278359A (zh) * | 2016-11-09 | 2017-10-20 | 华为技术有限公司 | 云计算系统中报文处理的方法、主机和系统 |
US9923782B1 (en) * | 2014-08-20 | 2018-03-20 | Vmware, Inc. | Computer network virtual entity pathway visualization system |
CN108306832A (zh) * | 2018-01-29 | 2018-07-20 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分流方法及装置 |
CN108632155A (zh) * | 2017-03-16 | 2018-10-09 | 网宿科技股份有限公司 | 云平台流量调度方法和系统、计算机可读的存储介质 |
-
2019
- 2019-10-24 CN CN201911019358.8A patent/CN112714073B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827030A (zh) * | 2010-04-21 | 2010-09-08 | 杭州华三通信技术有限公司 | 一种mpls报文处理方法及其装置 |
CN103840994A (zh) * | 2012-11-23 | 2014-06-04 | 华耀(中国)科技有限公司 | 一种用户端通过 vpn 访问内网的系统及方法 |
CN103905309A (zh) * | 2012-12-28 | 2014-07-02 | 中国电信股份有限公司 | 虚拟机之间的数据交换方法和系统 |
CN105025387A (zh) * | 2014-04-29 | 2015-11-04 | 中国电信股份有限公司 | Iptv智能终端进行iptv业务和互联网业务的方法和系统 |
US9923782B1 (en) * | 2014-08-20 | 2018-03-20 | Vmware, Inc. | Computer network virtual entity pathway visualization system |
CN105162858A (zh) * | 2015-08-20 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 针对corba中间件的通用传输协议框架、通信系统及方法 |
CN107278359A (zh) * | 2016-11-09 | 2017-10-20 | 华为技术有限公司 | 云计算系统中报文处理的方法、主机和系统 |
CN108632155A (zh) * | 2017-03-16 | 2018-10-09 | 网宿科技股份有限公司 | 云平台流量调度方法和系统、计算机可读的存储介质 |
CN108306832A (zh) * | 2018-01-29 | 2018-07-20 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分流方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112714073A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9736211B2 (en) | Method and system for enabling multi-core processing of VXLAN traffic | |
EP3654620B1 (en) | Packet processing method in cloud computing system, host, and system | |
US11388272B2 (en) | Technologies for network packet processing between cloud and telecommunications networks | |
AU2016414390B2 (en) | Packet processing method in cloud computing system, host, and system | |
US10652155B2 (en) | Universal cloud classification [UCC]as a service | |
US20170366605A1 (en) | Providing data plane services for applications | |
EP2928134B1 (en) | High-performance, scalable and packet drop-free data center switch fabric | |
RU2584449C2 (ru) | Система управления связью, коммутационный узел и способ управления связью | |
EP3629162B1 (en) | Technologies for control plane separation at a network interface controller | |
US9083611B2 (en) | Method and system for virtual network interface cards (VNICs) over aggregation spanning multiple switches | |
US11048535B2 (en) | Method and apparatus for transmitting data packet based on virtual machine | |
US20180189084A1 (en) | Data flow affinity for heterogenous virtual machines | |
US20220014459A1 (en) | Network layer 7 offload to infrastructure processing unit for service mesh | |
CN112714073B (zh) | 基于sr-iov网卡的报文分流方法、系统及存储介质 | |
CN111371694B (zh) | 一种分流方法、装置和系统、处理设备和存储介质 | |
WO2018057165A1 (en) | Technologies for dynamically transitioning network traffic host buffer queues | |
WO2023205003A1 (en) | Network device level optimizations for latency sensitive rdma traffic | |
US11362895B2 (en) | Automatic configuration of an extended service appliance for network routers | |
US11736415B2 (en) | Backpressure from an external processing system transparently connected to a router | |
US20230247005A1 (en) | Proxy offload to network interface device | |
US20230393956A1 (en) | Network interface device failover | |
CN110875823B (zh) | 一种业务面的数据处理系统及方法 | |
Ginka et al. | Optimization of Packet Throughput in Docker Containers | |
WO2023205004A1 (en) | Customized processing for different classes of rdma traffic | |
WO2023205005A1 (en) | Network device level optimizations for bandwidth sensitive rdma traffic |
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 |