CN104580011A - 一种数据转发装置和方法 - Google Patents

一种数据转发装置和方法 Download PDF

Info

Publication number
CN104580011A
CN104580011A CN201310505563.1A CN201310505563A CN104580011A CN 104580011 A CN104580011 A CN 104580011A CN 201310505563 A CN201310505563 A CN 201310505563A CN 104580011 A CN104580011 A CN 104580011A
Authority
CN
China
Prior art keywords
frame
microsoft loopback
loopback adapter
server
unit
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
CN201310505563.1A
Other languages
English (en)
Other versions
CN104580011B (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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201310505563.1A priority Critical patent/CN104580011B/zh
Priority to US15/031,514 priority patent/US20160266925A1/en
Priority to PCT/CN2014/089253 priority patent/WO2015058699A1/en
Publication of CN104580011A publication Critical patent/CN104580011A/zh
Application granted granted Critical
Publication of CN104580011B publication Critical patent/CN104580011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据转发装置,应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,在网卡共享设备上虚拟多个虚拟网卡单元,并在各服务器上运行一个或多个与虚拟网卡单元一一对应的虚拟网卡驱动程序,将各服务器发送的数据帧通过该共享网卡设备对应的虚拟网卡单元转发到外部网络。基于同样的发明构思,本申请还提出一种方法,能够使多台服务器之间共享网卡资源。

Description

一种数据转发装置和方法
技术领域
本发明涉及通信技术领域,特别涉及一种数据转发装置和方法。
背景技术
10G以太网的出现,加之行业为满足存储和集群互联需求而对以太网协议进行的关键扩展,数据中心桥接协议(DCB)得到了发展,包括流量优先级控制,带宽管理和拥塞管理,可将使现有结构融合为基于以太网的统一整合型网络结构。这种结构将提供对其所支持的存储和计算处理资源的无缝访问。
在每台服务器上安装一块融合局域网(LAN)/存储网络(SAN)/进程间通信(IPC)数据流的融合网络适配器(CNA)。与普通网络适配器一样,融合网络适配器直接焊接在服务器主板上,或独立设计为一块插卡并通过服务器上的主板插槽,如PCI Express Slot,与CPU/BMC紧密耦合,各服务器独立、直接管理和使用此融合网络适配器。
由于各服务器独立配置一块融合网络适配器,无法多台服务器共享一块融合网络适配器。
刀片服务器是指在标准高度的机架式机箱内可插装多个卡式的服务器单元,是一种实现HAHD(High Availability High Density,高可用高密度)的服务器平台,为特殊应用行业和高密度计算环境专门设计。每一块“刀片”实际上就是一块系统主板。它们可以通过″板载″硬盘启动自己的操作系统,如Windows、Linux等,类似于一个个独立的服务器,在这种模式下,每一块主板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过,管理员可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,并同时共享资源,为相同的用户群服务。在集群中插入新的″刀片″,就可以提高整体性能。而由于每块″刀片″都是热插拔的,所以,系统可以轻松地进行替换,并且将维护时间减少到最小。
这种结构可以大大减少互联电缆和光纤收发器,可以大大降低由于线缆连接故障带来的隐患,提高系统可靠性。最大限度地节约服务器的使用空间和费用。每个刀片服务器独立拥有其一块或多块网卡的资源,无法在不同刀片服务器间共享。
综上所述,现有实现中无论是使用刀片服务器还是为每台服务器配置一块网络适配器,都不能在不同服务器间共享网卡资源。
发明内容
有鉴于此,本发明提供一种数据转发装置和方法,能够使多台服务器之间共享网卡资源。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种数据转发装置,应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,该装置包括:多个服务器接口单元、队列池及调度单元、多个虚拟网卡单元和网络接口单元;
所述服务器接口单元,用于获取对应的服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元;其中,第一融合描述符包含描述符类型和数据帧长度;每个服务器与一个服务器接口单元对应,每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应;
所述队列池及调度单元,用于将接收到的第一融合描述符和数据帧,调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡单元;
所述虚拟网卡单元,用于接收到第一融合描述符合数据帧时,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送给所述网络接口单元;
所述网络接口单元,用于将从所述虚拟网卡单元接收到的数据帧转发到外部网络。
一种数据转发方法,应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,所述网卡共享设备上虚拟多个虚拟网卡;每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与共享网卡设备上的虚拟网卡一一对应;所述方法包括:
获取所述服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡上;其中,第一融合描述符包含描述符类型和数据帧长度;
接收到该数据帧和第一融合描述符的虚拟网卡,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送到外部网络。
综上所述,本发明通过在网卡共享设备上虚拟多个虚拟网卡单元,并在各服务器上运行一个或多个与虚拟网卡单元一一对应的虚拟网卡驱动程序,将各服务器发送的数据帧通过该共享网卡设备对应的虚拟网卡单元转发到外部网络,能够使多台服务器之间共享网卡资源。
附图说明
图1为本发明具体实施例中资源共享系统示意图;
图2为队列池及调度单元结构示意图;
图3为本发明实施例中服务器虚拟VM时共享资源系统示意图;
图4为本发明实施例一中装置的硬件架构组成示意图;
图5为本发明实施例中接收服务器发送的数据帧的处理方式流程示意图;
图6为本发明实施例中接收到外部网络发送的数据帧的处理方式流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明具体实施例中提出一种数据转发装置,应用于包括多个服务器、和一个网卡共享设备的网络系统中的网卡共享设备上。通过在网卡共享设备上虚拟多个虚拟网卡单元,并在各服务器上运行一个或多个与虚拟网卡单元一一对应的虚拟网卡驱动程序,将各服务器发送的数据帧通过该共享网卡设备转发到外部网络,能够使多台服务器之间共享网卡资源。
该网卡共享设备可以为在网络系统中新增的设备,也可以为网络系统中与各服务器相连的交换设备,并在该交换设备中配置多个虚拟网卡来实现即可。
参见图1,图1为本发明具体实施例中资源共享系统示意图。该资源共享系统中包括n个服务器,一个网卡共享设备。数据转发装置应用于该网卡共享设备上。该装置包括n个服务器接口单元,与n个服务器一一对应连接、一个队列池及调度单元、m个虚拟网卡单元和1个网络接口单元,其中,n和m可以相同也可以不相同,且n、m为大于1的自然数。
每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应;其中,任一服务器上运行的虚拟网卡驱动程序与其他服务器上运行的虚拟网卡驱动程序对应的虚拟网卡单元的标识不相同,即各服务器上运行的虚拟网卡驱动程序对应的虚拟网卡单元标识均不相同。
以该装置接收服务器的虚拟网卡驱动程序发送数据帧,并转发给外部网络为例:
第一步,服务器接口单元(如服务器接口单元1),获取对应服务器(服务器1)上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元。
其中,第一融合描述符至少包含描述符类型和数据帧长度。第一融合描述符还可以包含的内容为下述之一或任意组合:
数据帧的帧格式、是否添加或修改网络节点ID信息、是否重新计算校验和、是否进行加密、指导虚拟网卡单元如何处理数据帧的其它信息。其中,数据帧的帧格式用于指示,虚拟网卡单元采用第一融合描述符支持的多种帧格式中的哪种帧格式进行发送。
服务器目前广泛采用的高速串行IO链路有外设组件互连标准的总线接口(PCI Express)、串行快速输入输出互连总线(RapidIO)、以太网等多种点到点形式。
从技术上讲,这些类型的服务器接口单元在服务器的配合下均可以实现一个服务器接口单元关联多个队列(具体实现在下文描述),虚拟网卡驱动程序发送一帧数据时通过一个下行队列往虚拟网卡单元发送第一融合描述符和数据帧。虚拟网卡驱动程序接收一帧数据时通过一个上行队列从虚拟网卡单元得到一个第二融合描述符和一个数据帧。
下面给出在不同链接方式下,服务器接口单元的具体处理过程:
1)、当服务器接口单元与对应服务器通过PCI Express点到点连接时,作为PCI Express链路的下游端点,配置多个发送引擎和接收引擎,与队列池及调度单元中配置的队列一一对应。
图1中的服务器包括内存、硬盘、CPU和IO接口等。服务器的IO接口作为PCI Express链路的上游端点。服务器上运行的任一虚拟网卡驱动程序需要发送数据帧时,将该数据帧放置在服务器内存中一个buffer空间,并在一个发送buffer描述符循环队列中设置一个buffer描述符,现有网卡广泛采用,不再描述。
buffer描述符的内容中除了包含buffer空间起始地址、数据帧长度等信息,还有指示网卡如何发送的信息,如本buffer的数据属于哪种帧格式、是否添加或修改网络节点ID信息、是否重新计算某个校验和、是否需要进一步加密、是否需要以TCP负荷形式发送。可选的,进一步还可包含通过多个队列中的哪个队列进行发送。
当对应的服务器(如服务器1)上运行的虚拟网卡驱动程序需要发送数据帧时,服务器接口单元(服务器接口单元1)根据所述发送引擎指向的当前有效的发送buffer描述符从所述服务器内存中读取需要发送的数据帧,将该发送buffer描述符中除buffer空间起始地址之外的内容构造为第一融合描述符,并将该第一融合描述符和该数据帧写入所述队列池及调度单元中对应的队列。
具体实现时,各发送引擎有地址寄存器,其指向一个buffer描述符循环队列中的一个buffer描述符。地址寄存器初始值由驱动软件设置。发送引擎根据地址寄存器的指示通过PCI Express存储器读操作来读取的当前buffer描述符。如果读取的buffer描述符无效,即没有待发送数据,继续读取当前指向的buffer描述表项。如果读取的buffer描述符有效,准备发送。
每读取一个有效buffer描述符,判断对应的下行队列是否有足够空间。有足够空间时,发送引擎将buffer描述符中全部或部分信息以第一融合描述符的格式写入一个下行队列;接着PCI Express存储器读操作读取buffer空间数据附加在后面。其中,无论是buffer描述符中的全部或部分信息,都不包括buffer描述符中的buffer空间起始地址。
完成数据帧发送后,一般地触发中断并通过PCI Express存储器写操作回写buffer描述符为无效,以便指示此buffer描述符已经处理完成。接着主动更新其地址寄存器以指向buffer描述符循环队列中下一个buffer描述符。
2)、当服务器接口单元与对应服务器通过以太网点到点连接时,配置多个发送引擎,并与所述队列池及调度单元中配置的队列一一对应。
服务器上运行的虚拟网卡驱动程序需要发送数据帧时,通过IO接口将该数据帧,以及发送该数据帧的描述符发送给对应的服务器接口单元。指明哪个虚拟网卡驱动程序发送了该数据帧,如在描述符中携带,或在以太网帧增加一个VLAN标签,以便服务器接口单元关联到具体队列。
服务器接口单元通过所述发送引擎接收到对应服务器发送的描述符和数据帧时,将该描述符的格式变换为第一融合描述符的格式作为第一融合描述符,并将该第一融合描述符和该数据帧发送给所述队列池及调度单元中对应的队列。
服务器接口单元接收到的描述符中如果有buffer空间起始地址,还在变化为第一融合描述符格式时,删除描述符中包含的buffer空间起始地址。
3)当服务器接口单元与对应服务器通过串行RapidIO点到点连接时,因为串行RapidIO既能工作在类似PCI Express的存储器读写模式,也能工作在类似以太网的消息传递模式,因此可以参考PCI Express或以太网来实现获取对应服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元。
第二步,队列池及调度单元将接收到的第一融合描述符和数据帧,调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡单元。
该装置还可以包括:管理单元,对所述队列池及调度单元中的各队列配置传输速率、优先级、调度策略和各队列的当前状态。
队列池及调度单元,还可以用于配置多个队列,并根据管理单元对各个队列的配置丢弃部分数据帧,或将数据帧调度到对应的虚拟网卡单元。
参见图2,图2为队列池及调度单元结构示意图。图2中,队列池及调度单元中配置多个队列,多个队列分为多组上下行队列,服务器上的虚拟网卡驱动程序与虚拟网卡单元之间通过上行队列和下行队列组成的双向队列池进行通信。
一个服务器接口单元可能关联一组上下行队列,也可能关联多组上下行队列,图2中显示一个服务器接口单元关联了n组上下行队列。
每个服务器接口单元能感知每个关联队列的状态,如每个下行和上行队列中的使用量,并根据预先设置针对每个关联队列的状态给服务器发出信息,如中断消息或流控消息。
服务器上的虚拟网卡驱动程序发送数据帧时,对应的服务器接口单元将该数据帧和第一融合描述符通过关联的一个下行队列发送到队列调度单元,再由队列调度单元调度到对应的虚拟网卡单元。
服务器接口单元将数据帧和第一融合描述符通过其关联的哪个下行队列发送,根据具体配置实现,如,每个虚拟网卡驱动程序对应一个双向队列,和一个虚拟网卡单元。或每个发送引擎对应一个虚拟网卡驱动程序,一个双向队列,和一个虚拟网卡单元。
第三步,虚拟网卡单元在接收到第一融合描述符和数据帧时,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送给所述网络接口单元。
如果发送该数据帧的虚拟网卡驱动程序在服务器1上,且该虚拟网卡驱动程序与虚拟网卡单元1对应,则第三步中的虚拟网卡单元为虚拟网卡单元1。
虚拟网卡单元根据第一融合描述符处理数据帧,同现有实现中,根据普通描述符处理数据帧的方式一致,只是本发明实施例中的第一融合描述符不包含原普通描述符中的buffer起始地址。
第四步,网络接口单元将从虚拟网卡单元接收到的数据帧转发到外部网络。
该装置还可以包括管理单元,管理单元可以为不同虚拟网卡单元发送的数据帧分配不同的VLAN标识;分配结束后,可以在本地保存,也可以下发给网络接口单元进行保存。
网络接口单元接收到虚拟网卡单元发送来的数据帧时,将数据帧发送到外部网络。可选的,根据发送该虚拟网卡单元的标识匹配对应的VLAN标识,并使用匹配到的VLAN标识为该数据帧添加对应的VLAN标签,再将该添加VLAN标签的数据帧发送到外部网络。
可选的,管理单元也可以通过网络接口单元给外部网络发送数据帧。
以该装置接收到外部网络发送的数据帧向服务器转发为例:
在该实例中,该装置还包括管理单元,用于配置数据帧的信息字段与虚拟网卡单元标识的对应关系。该数据帧的信息字段可以为VLAN ID,即不同的VLAN ID对应不同的虚拟网卡单元。根据数据帧的信息字段可以获知由哪个虚拟网卡单元来处理该接收的数据帧。
具体处理流程如下:
第一步,网络接口单元接收到外部网络发送的数据帧,根据该数据帧的信息字段与虚拟网卡单元标识的对应关系,匹配到对应的虚拟网卡单元标识,并将该数据帧发送匹配到的虚拟网卡单元标识对应的虚拟网卡单元。
第二步,虚拟网卡单元接收到所述网络接口单元发送的数据帧时,对该数据帧进行处理,并根据处理结果为该数据帧构造第二融合描述符,并将该数据帧以及构造的第二融合描述符发送给所述队列池及调度单元;
虚拟网卡单元对数据帧的处理,同现有实现中网卡对数据帧的处理。为该数据帧构造的第二融合描述符至少包含描述符类型和数据帧长度。
该第二融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否出现错误、虚拟网卡单元对数据帧的字段的判断结果,虚拟网卡单元提取或丢弃数据帧中的信息、虚拟网卡单元对数据帧进行的修改、虚拟网卡单元是否完成解密、虚拟网卡单元发现或已经处理的其它信息。
第三步,队列池及调度单元,将接收到的第二融合描述符和数据帧,调度到对应的服务器接口单元。
该服务器接口单元与运行发送该第二融合描述符的虚拟网卡单元对应的虚拟网卡驱动程序的服务器对应。
若管理单元对所述队列池及调度单元中的各队列配置传输速率、优先级、调度策略和各队列的当前状态,队列池及调度单元,该队列池及调度单元还可以用于根据管理单元对各个队列的配置丢弃部分数据帧,或将数据帧调度到对应的服务器接口单元。
如图2中,队列池及调度单元可以通过对应的上行队列将该数据帧和第二融合描述符调度到对应的服务器接口单元。
第四步,服务器接口单元,将该数据帧发送给与本服务器接口单元对应的服务器中,并将第二融合描述符的内容发送给该服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
服务器目前广泛采用的高速串行IO链路有PCI Express、串行RapidIO、以太网等多种点到点形式。下面详细描述通过不同方式连接时,服务器接口单元的具体处理过程:
1)、当服务器接口单元与所述服务器通过PCI Express点到点连接时,作为PCI Express链路的下游端点,配置多个接收引擎,与所述队列池及调度单元中的队列对应。
接收引擎主动将上行队列中数据帧搬移到服务器的内存中一个个buffer空间,与一般的网络数据接收机制类似:
服务器上运行的虚拟网卡驱动程序需要在服务器内存中预留一组或多组buffer空间,对应地在一个或多个接收buffer描述符循环队列中的设置一组buffer描述符,现有网卡广泛采用,不再描述,每个buffer描述符其内包含buffer空闲标识、buffer空间起始地址、buffer长度等信息。可选的,进一步通过多个队列中的哪个队列进行接收。
服务器接口单元通过接收引擎读取对应的服务器当前有效的接收buffer描述符,在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,并将该数据帧写入所述接收buffer描述符所指的服务器的buffer中,并在回写所述接收buffer描述符时进一步携带该第二融合描述符的内容。
具体实现时,接收引擎有地址寄存器,其指向一个buffer描述符循环队列中的一个buffer描述符。地址寄存器初始值由驱动软件设置。接收引擎根据地址寄存器的指示通过PCI Express存储器读操作来读取的当前buffer描述符。如果读取的buffer描述符无效,即非空闲buffer,继续读取当前指向的buffer描述符。如果读取的buffer描述符有效,即空闲buffer,准备接收。
每读取一个有效buffer描述符,判断对应的上行行队列是否有数据可以读取。有数据时,接收引擎先读取一个第二融合描述符;根据第二融合描述符接着读取附加在后面数据帧,通过PCI Express存储器写操作写入buffer描述符指示的服务器内存中的一个buffer空间。
完成数据帧接收后,一般地触发中断并PCI Express存储器写操作回写buffer描述符以便指示此buffer描述符已经处理完成,指示对应buffer为非空闲状态。回写的buffer描述符进一步携带第二融合接收描述符中部分或全部信息,接着主动更新其地址寄存器指向下一个buffer描述符。
2)、当服务器接口单元与对应服务器通过以太网点到点连接时,配置多个接收引擎,与所述队列池及调度单元中的队列对应。
服务器接口单元,用于在所述接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,将第二融合描述符以及该数据帧发送给对应的服务器,使该服务器上运行的对应虚拟网卡驱动程序进一步处理所述第二融合描述符和数据帧。
服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容处理接收到的数据帧。其中,所述对应的虚拟网卡驱动程序,为发送该数据帧的虚拟网卡单元对应的虚拟网卡驱动程序。
可选的,所述第二融合描述符格式与服务器IO接口接收数据帧时的描述符格式可能不同,服务器上运行的对应虚拟网卡驱动程序同时结合这两个描述符来处理接收到的数据帧。
可选的,指明哪个虚拟网卡驱动程序需要接收该数据帧,如在第二融合描述符中携带,或在以太网帧中增加一个VLAN标签,以便服务器关联到多个虚拟网卡驱动程序的一个。
3)、当服务器接口单元与对应服务器通过串行RapidIO点到点连接时,因为串行RapidIO既能工作在类似PCI Express的存储器读写模式,也能工作在类似以太网的消息传递模式,因此可以参考PCI Express或以太网来实现将数据帧发送给与本服务器接口单元对应的服务器中,并将第二融合描述符的内容发送给该服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
可选的,管理单元也通过网络接口单元接收到外部网络发送的数据帧。如通过网络接口单元接收到管理设备发送的控制报文,进行处理后,再通过网络接口单元响应管理设备。
下面以具体实施例详细描述第一融合描述符和第二融合描述符的实现。
第一融合描述符指示虚拟网卡单元如何发送一个数据帧。一般至少包含描述符的类型和数据帧的长度信息。
还可以包括如下具体信息:
数据帧的帧格式,也可称为网络格式,如以太网、光纤通道(FC)、因特网小型计算机系统接口(iSCSI)、快速输入输出互连总线(RapidIO)、多并发互连总线(Infiniband)、远程直接存储器访问(RDMA)等;
是否添加或修改网络节点ID信息、如以太网的MAC地址和VLAN标签等;
是否重新计算校验和,如以太网帧的FCS、IP头校验和、TCP校验和、UDP校验和等;
是否进行加密,如IPSec安全联盟信息等;
指导虚拟网卡单元如何处理数据帧的其它信息等其他可选信息。
为了更清楚、简洁表示各种网络发送和接收特征,第一融合描述符的类型不止一种。
第一融合描述符可以统一定义多种可以区分的格式,如,针对以太网和FCoE定义2种格式、针对RapidIO定义1种格式、针对Infiniband定义1种格式、针对RDMA定义1种格式等。
举例如下,其在64比特普通描述符基础上进一步定义扩展类型,普通发送描述符适用于普通以太网帧发送;各种扩展发送描述符适用于其它帧格式或指示虚拟网卡分担更多功能。
(1)普通发送描述符,适用于普通以太网帧发送。适用于普通以太网帧发送的第一融合描述符包含的内容见表1。
63-48 47-40 39-32 31-24 23-16 15-0
VLAN HEADLEN MACLEN CMD RSV Length
表1
其中,Length:待发送的数据长度。
MACLEN:表示MAC头+VLAN长度,以便虚拟网卡进行IP头checksum计算。
HEADLEN:表示IP头长度,以便虚拟网卡计算IP头checksum。
VLAN:提供802.1q/802.1ac标签信息。
CMD:Command Byte,进一步展开后包含的内容见表2。
7 6 5 4 3 2 1 0
DEXT VLE RSV RSV IXSM TXSM IFCS EOP
表2
其中,DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展(即普通描述符);1’b1表示扩展。
VLE:VLAN Packet Enable,VLAN使能,表示本帧发送时需要添加VLAN标签。
TXSM:指示虚拟网卡添加TCP/UDP checksum。
IXSM:指示虚拟网卡添加IP checksum。
IFCS:Insert FCS,插入FCS,表示需要添加以太网帧的FCS字段。
EOP:End of Packet,对应一个帧的最后一个描述符。
RSV:表示保留未用。
(2)扩展发送描述符之一,适用于以太网帧和FCoE增强发送。适用于以太网帧和FCoE增强发送的第一融合描述符包含的内容见表3。
63-48 47-40 39-32 31-24 23-16 15-0
VLAN HEADLEN MACLEN CMD ETYPE Length
Ipsec SA IDX L4LEN RSV ECMD FCoEF MSS
表3
其中,Length:待发送的数据长度。
MACLEN:对于非FCoE帧,表示MAC头+VLAN长度,以便虚拟网卡进行IP头checksum计算;对于FCoE帧,表示MAC头+VLAN+FCoE头长度,以便虚拟网卡进行FC-CRC计算。
HEADLEN:对于IP帧,表示IP头长度,以便虚拟网卡计算IP头checksum;对于FCoE帧,表示FCoE帧头长度,包括MAC头+VLAN+FCoE头+FC头长度。
VLAN:提供802.1q/802.1ac标签信息。
L4LEN:L4头长度。
Ipsec SA IDX:IPsec SA Index,指示安全联盟表的一个表项,以便虚拟网卡采用对应密钥进行加密。
MSS:Maximum Segment Size。TCP 和FCoE帧的最大分片字节数。
ETYPE:扩展描述符类型编码,8’h02为扩展描述符之一。
FCoEF:指示虚拟网卡如何给FCoE帧添加E-SOF和E-EOF。
CMD:Command Byte,进一步展开后包含的具体内容参见表4。
7 6 5 4 3 2 1 0
DEXT VLE FCoE RSV IXSM TXSM IFCS EOP
表4
其中,DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展;1’b1表示扩展(本描述符设置为1’b1)。
VLE:VLAN Packet Enable,VLAN使能,表示本帧发送时需要添加VLAN标签。
FCoE:指示虚拟网卡是按FCoE帧处理,还是非FCoE帧。
TXSM:指示虚拟网卡添加TCP/UDP checksum。
IXSM:指示虚拟网卡添加IP checksum。
IFCS:Insert FCS,插入FCS,表示需要添加以太网帧的FCS字段。
EOP:End of Packet,对应一个帧的最后一个描述符。
表3中ECMD :Extension Command Byte,进一步展开后包含的具体内容参见表5。
7 6-5 4 3 2 1 0
TSE L4T IPV4 Encrypt IPSEC_TYPE RSV RSV
表5
其中,TSE:指示虚拟网卡必要时启动TCP 和FCoE帧分片。
L4T:L4负载类型(00:UDP;01:TCP;10:SCTP;11:RSV)。
IPV4:IP包类型(1:IPv4;0:IPv6)。
Encrypt:指示虚拟网卡是否启动IPSec加密。
IPSEC_TYPE:是ESP还是HA。
(3)扩展发送描述符之二,适用于RDMA操作,适用于RDMA操作的第一描述包含的内容参见表6。
表6
其中,Length:待发送的数据长度,DMA的数据长度。
SEQ:系列号,记录本连接操作序号。
Source Node ID:本地Node ID,IP+TCP端口号。
Source Memory Address:本地服务器64比特内存物理地址,DMA的起始地址。
Remote Node ID:远端Node ID,IP+TCP端口号。
Remote Memory Address:远端服务器64比特内存物理地址,DMA的起始地址。
ETYPE:扩展描述符类型编码,8’h03为扩展描述符之二。
CMD:Command Byte,进一步展开后的内容参见表7。
7 6 5 4 3 2 1 0
DEXT VLE TCP/ETH WE/RD TOE RSV IFCS RSV
表7
DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展;1’b1表示扩展(本描述符设置为1’b1)。
VLE:VLAN Packet Enable,VLAN使能,表示本帧发送时需要添加VLAN标签。
TCP/ETH:指示虚拟网卡是按RDMA over TCP还是RDMA overEthernet。
WE/RD:指示是RDMA读操作,还是RDMA写操作。RDMA读操作
TOE:指示虚拟网卡执行TCP协议栈。
IFCS:Insert FCS,插入FCS,表示需要添加以太网帧的FCS字段。
第二融合描述符表示虚拟化网卡单元接收一个数据帧时发现的一些信息。一般至少包含数据帧长度和第二融合描述符的类型,还可以包括如下具体信息:
数据帧的帧格式,如以太网、FC、iSCSI、RapidIO、Infiniband、RDMA等;
是否出现某些错误,如某校验和出错、数据帧长度异常等;
虚拟网卡是否已经剥离数据帧的某些字段,如以太网帧的FCS等;
虚拟网卡是否完成解密,如IPSec等;
虚拟网卡从数据帧提取了某些字段,如以太网帧的VLAN标签、IP报文五元组信息等。
虚拟网卡单元对数据帧的字段的判断结果、虚拟网卡单元对数据帧进行的修改等其它可选信息。
为了更清楚、简洁表示各种网络发送和接收特征,第二融合描述符的类型不止一种。
第二融合描述符可以统一定义多种可以区分的格式,如针对以太网和FCoE定义2种格式、针对RapidIO定义1种格式、针对Infiniband定义1种格式、针对RDMA定义1种格式等。举例如下,其在64比特普通描述符基础上进一步定义扩展类型,普通接收描述符适用于普通以太网帧接收;各种扩展接收描述符适用于其它帧格式或指示虚拟网卡分担更多功能。
(1)普通接收描述符,适用于普通以太网帧接收,适用于普通以太网帧接收的第二融合描述符包含的内容参见表8。
63-48 47-40 39-32 31-24 23-16 15-0
VLAN Tag Errors RSV Status RSV Length
表8
其中,Length:接收的数据长度。
VLAN:提取的802.1q/802.1ac标签信息。
Status:状态信息字节,进一步展开后的内容参见表9。
7 6 5 4 3 2 1 0
PIF IPCS L4CS UDPCS VP EOP SOP DEXT
表9
其中,DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展(本描述符设置为1’b0);1’b1表示扩展。
VP:VLAN Packet,指示输入帧是否携带VLAN标签。
IPCS:Ipv4 Checksum,指示完成了IP头校验,结果在IPE。
L4CS:L4 Checksum,指示完成了L4校验,结果在L4E。
UDPCS:UDP Checksum,指示完成了L4校验是UDP还是TCP。
PIF:Non Unicast Address,指示输入帧的MAC是否为单播。
EOP:End of Packet,对应一个帧的最后一个描述符。
SOP:Start of Packet,对应一个帧的第一个描述符。
表8中Errors:错误信息字节,进一步展开后包含的内容参见表10。
7 6 5 4 3 2 1 0
IPE L4E RSV RSV RSV RSV RSV RXE
表10
其中,IPE:Ipv4 Checksum Error,IP头校验结果。
L4E:L4校验结果,如TCP/UDP Checksum Error。
RXE:其它以太网帧错误,如CRC错误、链路错误、各种长度错误。
表8中RSV:表示保留未用。
(2)扩展接收描述符之一,适用于以太网帧和FCoE增强接收,适用于太帧和FCoE增强接收的第二融合描述符包含的内容参见表11。
表11
其中,Length:接收的数据长度。
ETYPE:扩展描述符类型编码,8’h01为扩展描述符之一。
VLAN:提取的802.1q/802.1ac标签信息。
Status:状态信息字节,进一步展开包含的内容参见表12。
表12
其中,DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展;1’b1表示扩展(本描述符设置为1’b1)。
VP:VLAN Packet,指示输入帧是否携带VLAN标签。
IPCS:Ipv4 Checksum,指示完成了IP头校验,结果在IPE。
L4CS:L4 Checksum,指示完成了L4校验,结果在L4E。
UDPCS:UDP Checksum,指示完成了L4校验是UDP还是TCP。
PIF:Non Unicast Address,指示输入帧的MAC是否为单播。
EOP:End of Packet,对应一个帧的最后一个描述符。
SOP:Start of Packet,对应一个帧的第一个描述符。
FCSTAT:FCoE Status,FCoE帧的FC状态。
FCEOFs:与错误信息的FCEOFe共同表示EOF/SOF系列状态。
表11中Ext. Status:状态信息扩展字节,进一步展开包含的内容参见表12。
7 6 5 4 3 2 1 0
SECP UDPV VEXT RSV RSV RSV RSV RSV
表13
其中,SECP:IPSec命中SA,并进行了处理。
UDPV:UDP Checksum Valid,表示接收帧为UDP,且含有非零Checksum,Fragment Checksum字段有效。
VEXT:双VLAN帧。
表11中Errors:错误信息字节,进一步展开包含的内容见表14。
表14
其中IPE:Ipv4 Checksum Error,IP头校验结果。
FCEOFe:与状态信息的FCEOFs共同表示EOF/SOF系列状态。
L4E:L4校验结果,如TCP/UDP Checksum Error。
RXE:其它以太网帧错误,如CRC错误、链路错误、各种长度错误。
FCERR:FCoE错误码,3’b000表示无错误;3’b001表示错误的FC CRC;依此定义。
表11中Ext. Errors:错误信息扩展字节,进一步展开包含的内容见表15。
表15
其中,SECERR:IPSec错误码,3’b000表示无错误;2’b001表示SA没命中;2’b010表示摘要错误;依此定义。
表11中HDR_LEN:头部长度,不同的帧类型长度不同。
Packet Type:识别的帧类型,分为L2还是非L2,进一步展开包含的内容见表16。
表16
其中,表11中FCoE_PARAM:针对FCoE帧,提取的FCoE一些参数。
RSS Hash/RSS TYPE:HASH某些字段,以便实现分配到多核CPU之一。
Fragment Checksum:针对UDP帧,状态信息中UDPV有效时,此字段有效。
(3)扩展接收描述符之二,适用于RDMA读操作,适用于RDMA操作的第二描述符的内容参见表17。
表17
其中,Length:接收的数据长度。
ETYPE:扩展描述符类型编码,8’h03为扩展描述符之二。
VLAN:提取的802.1q/802.1ac标签信息。
SEQ:系列号,记录本连接操作序号。
Source Node ID:本地Node ID,IP+TCP端口号。
Source Memory Address:本地服务器64比特内存物理地址,DMA的起始地址。
Remote Node ID:远端Node ID,IP+TCP端口号。
Remote Memory Address:远端服务器64比特内存物理地址,DMA的起始地址。
Status:状态信息字节,进一步展开包含的内容见表18。
7 6 5 4 3 2 1 0
RSV IPCS L4CS RSV VP EOP SOP DEXT
表18
其中,DEXT:Descriptor extension描述符扩展标识。1’b0表示非扩展(本描述符设置为1’b0);1’b1表示扩展。
VP:VLAN Packet,指示输入帧是否携带VLAN标签。
IPCS:Ipv4 Checksum,指示完成了IP头校验,结果在IPE。
L4CS:L4 Checksum,指示完成了L4校验,结果在L4E。
EOP:End of Packet,对应一个帧的最后一个描述符。
SOP:Start of Packet,对应一个帧的第一个描述符。
表17中Errors:错误信息字节,进一步展开包含的内容参见表19。
7 6 5 4 3 2 1 0
IPE L4E RSV RSV RSV RSV RSV RXE
表19
其中,IPE:Ipv4 Checksum Error,IP头校验结果。
L4E:L4校验结果,如TCP Checksum Error。
RXE:其它以太网帧错误,如CRC错误、链路错误、各种长度错误。
上文列举了不同格式下第一融合描述符合第二融合描述符包含的内容,在具体实现时,可以减少融合交换格式描述符中的内容,也可以在预留字段中再增加内容,但是,与现有各种网络适配器实现区别明显的地方是,第一融合描述符和第二融合描述符中均不包含buffer空间起始地址,即与服务器CPU的IO地址没有关联。
进一步,各物理服务器上借助虚拟化VMM实现多个VM的虚拟化运行环境,为每个VM提供虚拟化的CPU、内存、存储、网卡等。
这样在各VM上运行与一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应。不同VM上运行的虚拟网卡驱动程序对应的虚拟网卡单元的标识均不相同。
VM上运行的某个虚拟网卡驱动程序需要发送数据帧时,服务器接口单元获取该VM上运行的该虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元。
服务器接口单元需向VM发送数据帧和第二融合描述符时,将该数据帧发送给与本服务器接口单元对应的服务器上的对应VM,并将第二融合描述符的内容发送给,发送该数据帧的虚拟网卡单元对应的虚拟网卡驱动程序运行的VM,使该VM上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
同获取服务器的上需要发送的数据帧处理过程一致,只是在虚拟多个VM时,在对应的VM上获取数据帧和描述符。在向服务器发送数据帧和描述符时,将数据帧和描述符发送给服务器中对应的VM中即可。
当一个VM从一个源服务器迁移到另外一个目的服务器上时,需在目的服务器上运行一个或多个虚拟网卡驱动程序,并建立与目的网卡共享设备中一个或多个虚拟网卡单元的一一对应关系。因为虚拟网卡驱动程序采用队列方式与虚拟网卡单元进行消息传递,第一融合描述符合第二融合描述符与CPU的IO地址没有关联,极大地降低了VM与网卡的关联,因此,容易实现VM的迁移。
实现VM迁移的过程具体如下:
(1)、服务器上停止即将迁移的VM上的虚拟网卡驱动程序的发送功能。
(2)、管理单元获知任一VM迁移时,即VM上的虚拟网卡驱动程序的发送功能停止时,停止该VM上运行的虚拟网卡驱动程序对应的虚拟网卡单元接收外部网络发送数据帧的功能;使队列池及调度单元完成数据帧的收发。
(3)、复制源VM的软件现场到目的VM的相同操作系统上。管理单元将所述停止接收功能的虚拟网卡单元上的相关内容复制到目的虚拟网卡单元和目的融合交换单元;所述目的虚拟网卡单元为迁移后的VM上运行的虚拟网卡驱动程序对应的虚拟网卡单元。
(4)、当所述迁移后的VM上的虚拟网卡驱动程序启动时,管理单元启动目的虚拟网卡单元的收发功能。
为了增强该装置的功能,该装置还可增加一个或多个共享加速单元。
共享加速单元接收到运行该共享加速单元对应的共享设备驱动程序的服务器发送的数据帧时,对该数据帧根据配置进行加速处理,并将处理结果返回发送该数据帧的服务器。
其中,共享加速单元对数据帧的加速处理包括:浮点计算、加解密、压缩解压缩、图形图像处理等。
该共享加速单元若具有网络通信功能,则将处理结果发送给网络接口单元或返回发送该数据帧的服务器。
参见图3,图3为本发明实施例中服务器虚拟VM时共享资源系统示意图。图3中的VM1上运行虚拟网卡单元1和虚拟网卡单元2对应的虚拟网卡驱动程序;VM5上运行共享加速单元1的共享设备驱动程序。
当虚拟网卡单元1对应的虚拟网卡驱动程序需要发送数据帧时,服务器接口单元从VM1上获取需要发送的数据帧,以及发送该数据帧的相关描述信息,根据该相关描述信息构造第一融合描述符,并将构造的第一融合描述符以及数据帧通过队列池及调度单元调度到虚拟网卡单元1。
虚拟网卡单元1根据第一融合描述符处理该数据帧,并发送给网络接口单元。
网络接口单元,将虚拟网卡单元1发送的数据帧转发到外部网络。在向外部网络转发时,可以根据管理单元的配置确定是否给该数据帧添加标签等操作。如果接收到外部网络发送的数据帧时,根据该数据帧的信息字段与虚拟网卡单元标识的对应关系,将该数据帧发送给对应的虚拟网卡单元,如虚拟网卡单元2。
虚拟网卡单元2接收到网络接口单元转发的数据帧时,对该数据帧处理,并构造第二融合描述符发送给队列池及调度单元。
队列池及调度单元将数据帧和第二融合描述符发送给服务器接口单元1,因为虚拟网卡单元2的虚拟网卡驱动程序运行在服务器1上的VM1上,且服务器1对应的服务器接口单元为服务器接口单元1,因此,队列池及调度单元将数据帧和第二融合描述符调度到服务器接口单元1上。
服务器接口单元1将第二融合描述符的内容以及数据帧写入对应服务器1中的对应VM1,使该VM1使用第二融合描述符的内容处理对应的数据帧。
当VM1要从服务器1迁移到服务器n时,具体过程如下:
第一步、VM1停止其上的虚拟网卡驱动程序的发送功能,网卡共享设备停止虚拟网卡单元1和虚拟网卡单元2的接收外部网络发送的数据帧。
第二步、队列池及调度单元完成数据帧的收发。
第三步、服务器1上的VM1的软件现场到目的VM的相同操作系统上;网卡共享设备复制虚拟网卡单元1和虚拟网卡单元2的现场到目的网卡共享设备上的虚拟网卡单元上和融合交换单元上。
第四步、启动目的VM上的虚拟网卡驱动程序,以及目的虚拟网卡单元的收发功能。至此,VM迁移结束。
在具体实现时,有些VM的从1个服务器迁移到另外一个服务器上,且迁移前的服务器和迁移后的服务器连接的不是同一网卡共享设备,因此,需要将源网卡共享设备上的现场相关内容,全部复制到目的网卡共享设备上。
由于VM5上运行共享加速单元1的共享设备驱动程序,当共享加速单元1接收到VM5发送的数据帧时,对该数据帧进行加解密、浮点技术、压缩/解压缩、图形图像处理等处理后,发送回服务器n的VM5上,如果共享加速单元1具有通信功能,将处理后的数据帧发送给网络接口单元。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
以上实施例对本申请具体实施例中的数据转发装置进行了说明,本实施例给出本申请实施例一中装置的硬件架构组成。
该装置是可以软硬件结合的可编程设备,具体参见图4,图4为本发明实施例一中装置的硬件架构组成示意图,该装置包括:FPGA/ASIC和CPU(中央处理器)小系统;其中,
FPGA/ASIC,用于完成装置中的n个服务器接口单元、1个队列池及调度单元、m虚拟网卡单元、1个网络接口单元和1个或多个共享加速单元等单元完成的功能,这里不再详述,在该实施例中以2个加速单元为例。
CPU小系统,包含CPU、以及正常工作必备的存储器和其它硬件,用于完成装置中的管理单元功能,与FPGA/ASIC互连。
其中,任一服务器接口单元用于获取服务器上运行的VM发送的数据帧和发送该数据帧的描述符,构造第一融合描述符,并发送给,队列池及调度单元;获取队列池调度单元中的数据帧和第二融合描述符,并将获取的数据帧以及第二融合描述符的内容写入对应的服务器;
队列池及调度单元,用于通过队列将服务器接口单元发送的数据帧和第一融合描述符调度给虚拟网卡单元;接收到虚拟网卡单元发送的第二融合描述符时,通过队列将该数据帧和第二融合描述符调度到对应的服务器接口单元;
任一虚拟网卡单元,接收到队列池及调度单元调度来的数据帧和第一融合描述符时,根据第一融合描述符处理该数据帧,并将处理后的数据帧发送给网络接口单元;接收到网络接口单元发送的数据帧时,为该数据帧构造第二融合描述符,并将该数据帧以及构造的第二融合描述符发送给服务器接口单元;
网络接口单元,接收虚拟网卡单元发送的数据帧时,转发到外部网络,接收到外部网络发送的数据帧时,根据管理单元配置的对应关系,将该数据帧发送给对应的虚拟网卡单元;
管理单元,配置数据帧的信息字段与虚拟网卡单元标识的对应关系,对所述队列池及调度单元中的各队列配置的传输速率、优先级、调度策略和各队列的当前状态,并将配置的信息存储到本单元中,和/或,将数据帧的信息字段与虚拟网卡单元标识的对应关系存储到网络接口单元;将对所述队列池及调度单元中的各队列配置的传输速率、优先级、调度策略和各队列的当前状态存储到队列池及调度单元对应单元中。管理单元也可以通过网络接口单元与外部网络进行数据帧收发。
需要说明的是,图4所示的装置只是一个具体的例子,也可以通过其他的与本实施例描述不同结构实现,如可将FPGA/ASIC中的部分功能采用CPU上运行的程序来实现,或将网络接口单元采用与CPU直接互连的普通以太网网卡来实现,因此,本申请对装置的具体结构不作具体限定。
本实施中通过在网卡共享设备中虚拟多个虚拟网卡单元,来一一对应完成各服务器上的数据帧的收发,实现了多个服务器资源共享。并且由于本发明具体实现数据帧转发时的第一融合描述符合第二融合描述符中不包含buffer空间起始地址,即与CPU的IO地址没有关联,降低了VM与虚拟网卡单元的关联,因此更容易实现VM的迁移。
本发明具体实施例中基于与上述技术同样的发明构思,还提出一种数据转发方法。应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,所述网卡共享设备虚拟多个虚拟网卡;每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与共享网卡设备上的虚拟网卡一一对应。
参见图5,图5为本发明实施例中接收服务器发送的数据帧的处理方式流程示意图。具体步骤为:
步骤501,网卡共享设备获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡上。
其中,第一融合描述符包含描述符类型和数据帧长度。
第一融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否添加或修改网络节点ID信息、是否重新计算校验和、是否进行加密、指导虚拟网卡单元如何处理数据帧的其它信息;
该网卡共享设备与所述服务器通过PCI Express点到点连接时,作为PCIExpress链路的下游端点,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列。
步骤501中获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,包括:根据所述发送引擎指向的当前有效的发送buffer描述符从所述服务器内存中读取需要发送的数据帧,将该发送buffer描述符中除buffer空间起始地址之外的内容构造为第一融合描述符,并将该第一融合描述符和该数据帧通过对应的队列调度到对应的虚拟网卡上。
该网卡共享设备与所述服务器通过以太网点到点连接时,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列;
步骤501中获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,包括:发送引擎接收到服务器发送的描述符和数据帧时,将该描述符的格式变换为第一融合描述符的格式作为第一融合描述符,并将该第一融合描述符和该数据帧发送给对应的队列;
步骤502,该网卡共享设备上接收到该数据帧和第一融合描述符的虚拟网卡,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送到外部网络。
参见图6,图6为本发明实施例中接收到外部网络发送的数据帧的处理方式流程示意图。具体步骤为:
配置数据帧的信息字段与虚拟网卡标识的对应关系;
步骤601,网卡共享设备接收到外部网络发送的数据帧时,根据该数据帧的信息字段匹配到对应的虚拟网卡标识,并将该数据帧发送给匹配到的虚拟网卡标识对应的虚拟网卡。
步骤602,该网卡共享设备接收到该数据帧的虚拟网卡对该数据帧进行处理,根据处理结果为该数据帧构造第二融合描述符,并将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
其中,该第二融合描述符至少包含描述符类型和数据帧长度。
第二融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否出现错误、虚拟网卡单元对数据帧的字段的判断结果,虚拟网卡单元提取或丢弃数据帧中的信息、虚拟网卡单元对数据帧进行的修改、虚拟网卡单元是否完成解密、虚拟网卡单元发现或已经处理的其它信息。
该网卡共享设备与所述服务器通过PCI Express点到点连接时,作为PCIExpress链路的下游端点,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列。
步骤602中将该数据帧以及构造的第二融合描述符的内容写入对应的服务器,使所述服务器根据写入的第二融合描述符的内容对所述写入的数据帧进行处理,包括:在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,并将该数据帧写入所述接收buffer描述符所指的服务器的buffer中,并在回写所述接收buffer描述符时进一步携带该第二融合描述符的内容。
该网卡共享设备还可根据预先配置的传输速率、优先级、调度策略对接收到的数据帧进行部分丢弃处理,或将接收到的数据帧调度给服务器或虚拟网卡。
该网卡共享设备与所述服务器通过以太网点到点连接时,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列。
步骤602中,将该数据帧以及构造的第二融合描述符的内容写入对应的服务器,使所述服务器根据写入的第二融合描述符的内容对所述写入的数据帧进行处理,包括:在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,将第二融合描述符以及该数据帧发送给对应的服务器,使该服务器上运行的对应虚拟网卡驱动程序进一步处理所述第二融合描述符和数据帧。
本实施例中进一步包括:各服务器上通过VMM实现多个虚拟机VM的虚拟环境,各VM上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应。
步骤601中获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,包括:
获取服务器上的VM运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给该数据帧的虚拟网卡驱动程序对应的虚拟网卡;
步骤602中将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,使所述服务器根据接收到的第二融合描述符的内容对接收到的数据帧进行处理,包括:
将该数据帧,以及第二融合描述符的内容发送给,发送该数据帧的虚拟网卡对应的虚拟网卡驱动程序运行的VM,使所述VM上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
该网卡共享设备获知任一VM迁移时,停止该VM上运行的虚拟网卡驱动程序对应的虚拟网卡接收外部网络发送数据帧的功能;完成对已接收到的数据帧的转发,并将该虚拟网卡上的相关内容复制到目的虚拟网卡,该目的虚拟网卡为迁移后的VM上运行的虚拟网卡驱动程序对应的虚拟网卡。
当所述迁移后的VM上的虚拟网卡驱动程序启动时,启动所述目的虚拟网卡的收发功能。
本实施例中的网卡共享设备还进一步配置共享加速功能时,所述方法进一步包括:
该网卡共享设备接收到运行共享设备驱动程序的服务器发送的数据帧时,对该数据帧根据配置进行加速处理,并将处理结果返回发送该数据帧的服务器;若具有网络通信功能时,将处理结果发送给外部网络或返回发送该数据帧的服务器。
综上所述,本发明具体实施例中通过在网卡共享设备中虚拟多个虚拟网卡单元,在各服务器上运行一个或多个虚拟网卡单元对应的虚拟网卡驱动程序,来一一对应完成各服务器上的数据帧的收发,实现了多个服务器资源共享。
并且由于本发明具体实现数据帧转发时的第一融合描述符合第二融合描述符中不包含buffer空间起始地址,即与CPU的IO地址没有关联,降低了VM与虚拟网卡单元的关联,因此更容易实现虚拟了VM的多个服务器之间共享网卡单元,以及服务器上VM的迁移。
在网卡共享设备中还增加了共享加速单元,对应在服务器的操作系统或VM的操作系统上运行共享加速单元的共享驱动程序,来实现对服务器或服务器上的VM实现加速处理的功能,以提高服务器的处理速度。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种数据转发装置,其特征在于,应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,该装置包括:多个服务器接口单元、队列池及调度单元、多个虚拟网卡单元和网络接口单元;
所述服务器接口单元,用于获取对应的服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元;其中,第一融合描述符包含描述符类型和数据帧长度;每个服务器与一个服务器接口单元对应,每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应;
所述队列池及调度单元,用于将接收到的第一融合描述符和数据帧,调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡单元;
所述虚拟网卡单元,用于接收到第一融合描述符合数据帧时,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送给所述网络接口单元;
所述网络接口单元,用于将从所述虚拟网卡单元接收到的数据帧转发到外部网络。
2.根据权利要求1所述的装置,其特征在于,该装置进一步包括:管理单元;
所述管理单元,用于配置数据帧的信息字段与虚拟网卡单元标识的对应关系;
所述网络接口单元,进一步用于接收外部网络发送的数据帧,根据该数据帧的信息字段与虚拟网卡单元标识的对应关系,匹配到对应的虚拟网卡单元标识,并将该数据帧发送给匹配到的虚拟网卡单元标识对应的虚拟网卡单元;
所述虚拟网卡单元,进一步用于接收到所述网络接口单元发送的数据帧时,对该数据帧进行处理,并根据处理结果为该数据帧构造第二融合描述符,并将该数据帧以及构造的第二融合描述符发送给所述队列池及调度单元;其中,该第二融合描述符包含描述符类型和数据帧长度;
所述队列池及调度单元,进一步用于将所述第二融合描述符和数据帧,调度到对应的服务器接口单元,该服务器接口单元与运行发送该第二融合描述符的虚拟网卡单元对应的虚拟网卡驱动程序的服务器对应;
所述服务器接口单元,进一步用于将该数据帧发送给与本服务器接口单元对应的服务器,并将第二融合描述符的内容发送给该服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
3.根据权利要求2所述的装置,其特征在于,
所述第一融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否添加或修改网络节点标识ID信息、是否重新计算校验和、是否进行加密、指导虚拟网卡单元如何处理数据帧的其它信息;
所述第二融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否出现错误、虚拟网卡单元对数据帧的字段的判断结果,虚拟网卡单元提取或丢弃数据帧中的信息、虚拟网卡单元对数据帧进行的修改、虚拟网卡单元是否完成解密、虚拟网卡单元发现或已经处理的其它信息。
4.根据权利要求2所述的装置,其特征在于,
所述管理单元,进一步用于对所述队列池及调度单元中的各队列配置传输速率、优先级、调度策略和各队列的当前状态;
所述队列池及调度单元,进一步用于配置多个队列;根据所述管理单元对各个队列的配置丢弃部分数据帧,或将数据帧调度到对应的服务器接口单元或虚拟网卡单元。
5.根据权利要求2-4任意一项所述的装置,其特征在于,
所述服务器接口单元,用于与对应的服务器通过外设组件互连标准的总线接口PCI Express点到点连接时,作为PCI Express链路的下游端点,配置多个发送引擎和接收引擎,并与所述队列池及调度单元中配置的队列一一对应;具体用于在对应的服务器上运行的虚拟网卡驱动程序需要发送数据帧时,根据所述发送引擎指向的当前有效的发送缓存buffer描述符从所述服务器内存中读取需要发送的数据帧,将该发送buffer描述符中除buffer空间起始地址之外的内容构造为第一融合描述符,并将该第一融合描述符和该数据帧写入所述队列池及调度单元中对应的队列;通过接收引擎读取服务器当前有效的接收buffer描述符,在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,并将该数据帧写入所述接收buffer描述符所指的服务器的buffer中,并在回写所述接收buffer描述符时进一步携带该第二融合描述符的内容。
6.根据权利要求2-4任意一项所述的装置,其特征在于,
所述服务器接口单元,用于与对应的服务器通过以太网点到点连接时,配置多个发送引擎和接收引擎,并与所述队列池及调度单元中的配置的队列一一对应;具体用于发送引擎接收到服务器发送的描述符和数据帧时,将该描述符的格式变换为第一融合描述符的格式作为第一融合描述符,并将该第一融合描述符和该数据帧发送给所述队列池及调度单元中对应的队列;在所述接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,将第二融合描述符以及读取的数据帧发送给对应的服务器,使该服务器上运行的对应虚拟网卡驱动程序进一步处理所述第二融合描述符和数据帧。
7.根据权利要求2-4任意一项所述的装置,其特征在于,
所述服务器接口单元,用于获取对应的服务器上的虚拟机VM运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧发送给所述队列池及调度单元;将接收到的数据帧,以及第二融合描述符的内容,发送给发送该数据帧的虚拟网卡单元对应虚拟网卡驱动程序运行的VM,使该VM上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理;其中,各服务器上通过虚拟机管理程序VMM实现多个虚拟机VM的虚拟环境,每个VM上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应。
8.根据权利要求7所述的装置,其特征在于,
所述管理单元,进一步用于获知任一VM迁移时,停止所述VM上运行的虚拟网卡驱动程序对应的虚拟网卡单元接收外部网络发送数据帧的功能;使队列池及调度单元完成数据帧的收发,并停止接收功能的虚拟网卡单元上的相关内容复制到目的虚拟网卡单元,所述目的虚拟网卡单元为迁移后的VM上运行的虚拟网卡驱动程序对应的虚拟网卡单元;当所述迁移后的VM上的虚拟网卡驱动程序启动时,启动所述目的虚拟网卡单元的收发功能。
9.根据权利要求1-4任意一项所述的装置,其特征在于,该装置还包括:一个或多个共享加速单元;
所述共享加速单元,用于接收到运行该共享加速单元对应的共享设备驱动程序的服务器发送的数据帧时,对该数据帧根据配置进行加速处理,并将处理结果返回发送该数据帧的服务器;若具有网络通信功能时,将处理结果发送给网络接口单元或返回发送该数据帧的服务器。
10.一种数据转发方法,其特征在于,应用于包括多个服务器、一个网卡共享设备的网络系统中的网卡共享设备上,所述网卡共享设备上虚拟多个虚拟网卡;每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与共享网卡设备上的虚拟网卡一一对应;所述方法包括:
获取所述服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡上;其中,第一融合描述符包含描述符类型和数据帧长度;
接收到该数据帧和第一融合描述符的虚拟网卡,根据该第一融合描述符处理该数据帧,并将处理后的数据帧发送到外部网络。
11.根据权利要求10所述的方法,其特征在于,所述方法进一步包括:配置数据帧的信息字段与虚拟网卡标识的对应关系;
接收到外部网络发送的数据帧时,根据该数据帧的信息字段匹配到对应的虚拟网卡标识,并将该数据帧发送给匹配到的虚拟网卡标识对应的虚拟网卡;
接收到该数据帧的虚拟网卡对该数据帧进行处理,根据处理结果为该数据帧构造第二融合描述符,并将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理。
12.根据权利要求11所述的方法,其特征在于,
所述第一融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否添加或修改网络节点ID信息、是否重新计算校验和、是否进行加密、指导虚拟网卡单元如何处理数据帧的其它信息;
所述第二融合描述符的内容还包含下述之一或任意组合:
数据帧的帧格式、是否出现错误、虚拟网卡单元对数据帧的字段的判断结果,虚拟网卡单元提取或丢弃数据帧中的信息、虚拟网卡单元对数据帧进行的修改、虚拟网卡单元是否完成解密、虚拟网卡单元发现或已经处理的其它信息。
13.根据权利要求11所述的方法,其特征在于,所述方法进一步包括:
根据预先配置的传输速率、优先级、调度策略,对接收到的数据帧进行部分丢弃处理,或将接收到的数据帧调度给服务器或虚拟网卡。
14.根据权利要求11-13任意一项所述的方法,其特征在于,
本网卡共享设备与所述服务器通过外设组件互连标准的总线接口PCIExpress点到点连接时,作为PCI Express链路的下游端点,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列;
所述获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据帧调度到发送该数据帧的虚拟网卡驱动程序对应的虚拟网卡上,包括:根据所述发送引擎指向的当前有效的发送缓存buffer描述符从所述服务器内存中读取需要发送的数据帧,将该发送buffer描述符中除buffer空间起始地址之外的内容构造为第一融合描述符,并将该第一融合描述符和获取的数据帧通过对应的队列调度到对应的虚拟网卡上;
所述将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,包括:通过接收引擎读取服务器当前有效的接收buffer描述符,在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,并将该数据帧写入所述接收buffer描述符所指的服务器的buffer中,并在回写所述接收buffer描述符时进一步携带该第二融合描述符的内容。
15.根据权利要求11-13任意一项所述的方法,其特征在于,
本网卡共享设备与所述服务器通过以太网点到点连接时,所述方法进一步包括:配置多个发送引擎和接收引擎,并分别对应一个队列;
所述获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,包括:发送引擎接收到服务器发送的描述符和数据帧时,将该描述符的格式变换为第一融合描述符的格式作为第一融合描述符,并将该第一融合描述符和该数据帧发送给对应的队列;
所述将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,包括:通过所述接收引擎在该接收引擎对应的队列中有数据帧和第二融合描述符时,读取第二融合描述符,根据该第二融合描述符读取其后的数据帧,将第二融合描述符以及该数据帧发送给对应的服务器。
16.根据权利要求11-13任意一项所述的方法,其特征在于,
所述获取服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,包括:获取服务器上的虚拟机VM运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符;
所述将该数据帧以及构造的第二融合描述符的内容发送给对应的服务器,使所述服务器上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理,包括:将该数据帧,以及第二融合描述符的内容发送给,发送该数据帧的虚拟网卡对应的虚拟网卡驱动程序运行的VM,使所述VM上运行的对应虚拟网卡驱动程序根据接收到的第二融合描述符的内容对接收到的数据帧进行处理;
其中,各服务器上通过虚拟机管理软件VMM实现多个虚拟机VM的虚拟环境,各VM上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应。
17.根据权利要求16所述的方法,其特征在于,所述方法进一步包括:
获知任一VM迁移时,停止所述VM上运行的虚拟网卡驱动程序对应的虚拟网卡接收外部网络发送数据帧的功能;完成对已接收到的数据帧的转发,并将停止接收功能的虚拟网卡上的相关内容复制到目的虚拟网卡,所述目的虚拟网卡为迁移后的VM上运行的虚拟网卡驱动程序对应的虚拟网卡;
当所述迁移后的VM上的虚拟网卡驱动程序启动后,启动所述目的虚拟网卡的收发功能。
18.根据权利要求10-13任意一项所述的方法,其特征在于,所述方法进一步包括:
接收到运行共享设备驱动程序的服务器发送的数据帧时,对该数据帧根据配置进行加速处理,并将处理结果返回发送该数据帧的服务器;若具有网络通信功能时,将处理结果发送给外部网络或返回发送该数据帧的服务器。
CN201310505563.1A 2013-10-23 2013-10-23 一种数据转发装置和方法 Active CN104580011B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310505563.1A CN104580011B (zh) 2013-10-23 2013-10-23 一种数据转发装置和方法
US15/031,514 US20160266925A1 (en) 2013-10-23 2014-10-23 Data forwarding
PCT/CN2014/089253 WO2015058699A1 (en) 2013-10-23 2014-10-23 Data forwarding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310505563.1A CN104580011B (zh) 2013-10-23 2013-10-23 一种数据转发装置和方法

Publications (2)

Publication Number Publication Date
CN104580011A true CN104580011A (zh) 2015-04-29
CN104580011B CN104580011B (zh) 2017-12-15

Family

ID=52992286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310505563.1A Active CN104580011B (zh) 2013-10-23 2013-10-23 一种数据转发装置和方法

Country Status (3)

Country Link
US (1) US20160266925A1 (zh)
CN (1) CN104580011B (zh)
WO (1) WO2015058699A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105703975A (zh) * 2016-04-01 2016-06-22 浪潮电子信息产业股份有限公司 一种网卡及服务器通信的方法和系统
WO2017177400A1 (zh) * 2016-04-13 2017-10-19 华为技术有限公司 一种数据处理方法及系统
CN110099062A (zh) * 2019-05-07 2019-08-06 山东渔翁信息技术股份有限公司 一种网络数据的加密方法、解密方法及相关装置
CN114039940A (zh) * 2021-12-09 2022-02-11 新华三大数据技术有限公司 一种数据处理方法和装置
WO2023098050A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 远程数据访问方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108566262A (zh) * 2018-02-12 2018-09-21 上海航天电子有限公司 一种针对Cortex数据格式的卫星测试数据比对方法
CN114374476A (zh) * 2018-03-31 2022-04-19 华为技术有限公司 传输数据的方法和转发设备
US11184839B2 (en) * 2019-05-24 2021-11-23 Cisco Technology, Inc. Wireless dynamic file exchange
CN113973039A (zh) * 2020-07-24 2022-01-25 深圳市中兴微电子技术有限公司 一种数据处理方法、装置、设备和存储介质
CN112422396B (zh) * 2020-11-04 2022-04-19 郑州信大捷安信息技术股份有限公司 一种基于sslvpn通道的tcp网络传输加速方法和系统
US11714775B2 (en) * 2021-05-10 2023-08-01 Zenlayer Innovation LLC Peripheral component interconnect (PCI) hosting device
CN113986791B (zh) * 2021-09-13 2024-02-02 西安电子科技大学 一种智能网卡快速dma设计方法、系统、设备及终端
CN114095275A (zh) * 2022-01-11 2022-02-25 北京国泰网信科技有限公司 边缘隔离设备和方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200315A1 (en) * 2002-04-23 2003-10-23 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
US20040125746A1 (en) * 2002-12-26 2004-07-01 Nokia Corporation System and method for implementing protocol stack across multiple chassis
US20040160903A1 (en) * 2003-02-13 2004-08-19 Andiamo Systems, Inc. Security groups for VLANs
US6880089B1 (en) * 2000-03-31 2005-04-12 Avaya Technology Corp. Firewall clustering for multiple network servers
US20100071025A1 (en) * 2008-09-15 2010-03-18 International Business Machines Corporation Securing live migration of a virtual machine within a service landscape
CN102821082A (zh) * 2011-06-10 2012-12-12 成都市华为赛门铁克科技有限公司 一种数据传输方法、装置和系统
US20130145072A1 (en) * 2004-07-22 2013-06-06 Xsigo Systems, Inc. High availability and I/O aggregation for server environments

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111303B2 (en) * 2002-07-16 2006-09-19 International Business Machines Corporation Virtual machine operating system LAN
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US20090296726A1 (en) * 2008-06-03 2009-12-03 Brocade Communications Systems, Inc. ACCESS CONTROL LIST MANAGEMENT IN AN FCoE ENVIRONMENT
US9185053B2 (en) * 2011-11-09 2015-11-10 Honeywell International Inc. Virtual fault tolerant ethernet appliance and method of operation
CN103164255B (zh) * 2013-03-04 2016-08-03 华为技术有限公司 虚拟机网络通信实现方法和虚拟机监控器以及物理主机

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880089B1 (en) * 2000-03-31 2005-04-12 Avaya Technology Corp. Firewall clustering for multiple network servers
US20030200315A1 (en) * 2002-04-23 2003-10-23 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
US20040125746A1 (en) * 2002-12-26 2004-07-01 Nokia Corporation System and method for implementing protocol stack across multiple chassis
US20040160903A1 (en) * 2003-02-13 2004-08-19 Andiamo Systems, Inc. Security groups for VLANs
US20130145072A1 (en) * 2004-07-22 2013-06-06 Xsigo Systems, Inc. High availability and I/O aggregation for server environments
US20100071025A1 (en) * 2008-09-15 2010-03-18 International Business Machines Corporation Securing live migration of a virtual machine within a service landscape
CN102821082A (zh) * 2011-06-10 2012-12-12 成都市华为赛门铁克科技有限公司 一种数据传输方法、装置和系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105703975A (zh) * 2016-04-01 2016-06-22 浪潮电子信息产业股份有限公司 一种网卡及服务器通信的方法和系统
WO2017177400A1 (zh) * 2016-04-13 2017-10-19 华为技术有限公司 一种数据处理方法及系统
CN110099062A (zh) * 2019-05-07 2019-08-06 山东渔翁信息技术股份有限公司 一种网络数据的加密方法、解密方法及相关装置
WO2023098050A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 远程数据访问方法及装置
CN114039940A (zh) * 2021-12-09 2022-02-11 新华三大数据技术有限公司 一种数据处理方法和装置
CN114039940B (zh) * 2021-12-09 2024-01-26 新华三大数据技术有限公司 一种数据处理方法和装置

Also Published As

Publication number Publication date
CN104580011B (zh) 2017-12-15
US20160266925A1 (en) 2016-09-15
WO2015058699A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
CN104579695A (zh) 一种数据转发装置和方法
CN104580011A (zh) 一种数据转发装置和方法
US20220214919A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
US8503468B2 (en) PCI express load sharing network interface controller cluster
US9813283B2 (en) Efficient data transfer between servers and remote peripherals
US7634650B1 (en) Virtualized shared security engine and creation of a protected zone
US7334178B1 (en) Randomized self-checking test system
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
US7983257B2 (en) Hardware switch for hypervisors and blade servers
KR100992050B1 (ko) 가상화된 네트워크 환경에서 입력/출력 공유를 가지는프로토콜 오프로드 및 다이렉트 입력/출력을 위한 방법 및시스템
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
US8949472B2 (en) Data affinity based scheme for mapping connections to CPUs in I/O adapter
US20040037313A1 (en) Packet data service over hyper transport link(s)
US8825910B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
WO2019190859A1 (en) Efficient and reliable message channel between a host system and an integrated circuit acceleration system
US9401879B1 (en) Systems and methods for sending and receiving information via a network device
CN114050998A (zh) 实现远程直接内存访问的方法、装置、电子设备及介质
US20230116614A1 (en) Deterministic networking node
US8194670B2 (en) Upper layer based dynamic hardware transmit descriptor reclaiming
WO2022252634A1 (zh) 数据流传输方法、装置、计算机设备及存储介质
CN117041147B (zh) 智能网卡设备、主机设备和方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant