CN101102305A - 管理网络信息处理的***和方法 - Google Patents
管理网络信息处理的***和方法 Download PDFInfo
- Publication number
- CN101102305A CN101102305A CNA2007100936261A CN200710093626A CN101102305A CN 101102305 A CN101102305 A CN 101102305A CN A2007100936261 A CNA2007100936261 A CN A2007100936261A CN 200710093626 A CN200710093626 A CN 200710093626A CN 101102305 A CN101102305 A CN 101102305A
- Authority
- CN
- China
- Prior art keywords
- gos
- formation
- nic
- client operating
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种操作***虚拟认知网络接口卡(NIC)的方法和***。NIC可为主机***中多个同时运行的客户操作***(GOS)中的每个提供直接I/O功能。所述NIC包括针对每个GOS的GOS队列,其中每个GOS队列包括发送(TX)队列、接收(RX)队列和事件队列。所述NIC可通过对应的TX队列和RX队列与GOS传输数据。所述NIC可通过对应的事件队列通知GOS发生了事件,例如,下行链路、上行链路、数据包发送和数据包接收。所述NIC还可支持GOS之间的单播、广播和/或多播通信。如果地址对应主机***中运行的GOS之一,所述NIC也可验证缓存的地址。
Description
技术领域
本发明涉及TCP(传输控制协议)数据和相关的TCP信息的处理,更具体地说,涉及一种操作***虚拟认知网络接口卡(virtualization-aware networkinterface card)***和方法。
背景技术
在网络***中,一个服务器可同时支持多个服务器操作或服务。例如,一个服务器可提供对商业应用程序的访问,并可同时用作电子邮件服务器、数据库服务器和/或交换服务器。服务器通过使用一个操作***(OS)支持各种服务器操作。通过一个OS,服务器操作使用服务器处理资源,例如,中央处理器(CPU)、存储器、网络接口卡(NIC)、外设声卡和/或图形卡。在许多情况中,服务器资源可能不被充分地使用,因为服务器操作的需求基于提供的服务和/或用户的需要而变化。将服务器的服务合并为一个操作可改善服务器的效率。然而,合并后操作的安全性也不如分离的操作的安全性高。例如,如果操作被合并,数据库服务器的崩溃或故障可导致电子邮件服务、交换服务和/或应用程序服务的丢失。
另一种改善服务器效率的方法是同时运行多个操作***,每个操作***支持不同的服务器操作。该多个操作***可称作客户操作***(GOS)。这种方法在服务器操作未被合并的情况下保持安全性级别,并同时优化服务器的处理资源的使用。多客户操作***的使用又称为OS虚拟化,因为每个GOS都认为有充分访问服务器的硬件资源。在这点上,GOS不知道还有其它的GOS在同一服务器上运行。为了实现OS虚拟化,需要有软件层来仲裁对服务器硬件资源的访问。例如,所述软件层可以是***管理器(hypervisor)或虚拟机(VM)监视器。该***管理器可允许多个GOS以分时(time-sharing)的方式访问硬件资源。
NIC(网络接口卡)可一种被至少一个服务器操作或服务频繁使用的硬件。在这点上,所述***管理器或VM监视器可允许创建GOS所使用的NIC的软件表示。所述NIC的软件表示可称作“虚拟NIC”。然而,虚拟NIC在提供给GOS的NIC的功能或特性上受到限制。例如,虚拟NIC不能支持传输控制协议(TCP)卸载功能。从CPU卸载至少一部分TCP处理至NIC上的处理器可提高网络吞吐量。没有卸载功能,服务器的数据传输率在某些情况下可能受限制。另一个限制是,虚拟NIC仅可对多个GOS提供基础层2(L2)网络功能。虚拟NIC在提供GOS和网络之间的数据通信方面也受到限制。在这点上,虚拟NIC不能支持其它高级特征,例如远程直接存储器访问(RDMA)和/或互联网小型计算机***接口(ISCSI)。
除了虚拟NIC可提供的特性的限制之外,在管理多个GOS和服务器硬件资源之间的交互时,还要求***管理器处理大量的工作。使用***管理器层会引入更多的开销至基础L2网络操作,而在使用一个OS时,不会出现所述开销。例如,在从任意GOS传输数据时,需要***管理器仲裁对NIC的访问。在NIC接收到数据时,需要***管理器确定是哪个恰当的GOS发送该接收的数据的。此外,因为每个GOS和该***管理器会使用存储器的不同部分,***管理器还具有管理数据从存储器的一个部分传输至另一部分的附加责任。
随着在一个服务器内支持多个GOS的需求增加,需要有新的解决方案来降低***管理器引入的开销,和/或通过一部分服务器硬件资源例如网络接口卡的虚拟化来支持高级特性,。
比较本发明后续将要结合附图介绍的***,现有技术的其它局限性和弊端对于本领域的普通技术人员来说是显而易见的。
发明内容
本发明提供一种操作***(OS)虚拟认知网络接口卡***和/或方法,在后续部分给出充分的展示和/或结合至少一个附图进行了描述,并在权利要求中对技术方案进行了完整的记载。
根据本发明的一个方面,提供一种管理网络信息处理的方法,所述方法包括:通过网络接口卡内的多个客户操作***(GOS)队列中对应的至少一个队列,与主机***内同时运行的多个客户操作***中的每一个客户操作***传输数据。
优选地,所述多个客户操作***队列中的每个队列包括发送(TX)队列、接收(RX)队列和事件队列中至少其一。
优选地,所述方法进一步包括:通过所述对应的客户操作***队列中的发送队列,从所述网络接口卡传输数据至所述多个同时运行的客户操作***之一。
优选地,所述方法进一步包括:通过所述对应的客户操作***队列中的接收队列,从所述多个同时运行的客户操作***之一传输数据至所述网络接口卡。
优选地,所述方法进一步包括:通过所述对应的客户操作***队列中的事件队列,将通信事件的发生从所述网络接口卡指示给所述多个同时运行的客户操作***之一。
优选地,所述通信事件是上行链路事件、下行链路事件、数据包发送事件和数据包接收事件之一。
优选地,所述方法进一步包括:通过所述网络接口卡,在所述多个同时运行的客户操作***中至少两个客户操作***之间传输数据。
优选地,所述方法进一步包括:验证缓存在所述网络接口卡中的客户操作***媒体访问控制(MAC)地址。
根据本发明的一个方面,提供一种机器可读存储器,其内存储的计算机程序具有至少一个用于管理网络信息处理的代码段,所述至少一个代码段由机器执行后使得所述机器执行如下步骤:通过网络接口卡内的多个客户操作***(GOS)队列中对应的至少一个队列,与主机***内同时运行的多个客户操作***中的每一个客户操作***传输数据。
优选地,所述多个客户操作***队列中的每个队列包括发送(TX)队列、接收(RX)队列和事件队列中至少其一。
优选地,所述机器可读存储器进一步包括有用于通过所述对应的客户操作***队列中的发送队列,从所述网络接口卡传输数据至所述多个同时运行的客户操作***之一的代码。
优选地,所述机器可读存储器进一步包括有用于通过所述对应的客户操作***队列中的接收队列,从所述多个同时运行的客户操作***之一传输数据至所述网络接口卡的代码。
优选地,所述机器可读存储器进一步包括有用于通过所述对应的客户操作***队列中的事件队列,将通信事件的发生从所述网络接口卡指示给所述多个同时运行的客户操作***之一的代码。
优选地,所述通信事件是上行链路事件、下行链路事件、数据包发送事件和数据包接收事件之一。
优选地,所述机器可读存储器进一步包括有用于通过所述网络接口卡,在所述多个同时运行的客户操作***中至少两个客户操作***之间传输数据的代码。
优选地,所述机器可读存储器进一步包括有验证缓存在所述网络接口卡内的客户操作***媒体访问控制(MAC)地址的编码。
根据本发明的一个方面,提供一种管理网络信息处理的***,所述***包括网络接口卡(NIC)中的电路,允许所述网络接口卡与主机***内同时运行的多个客户操作***(GOS)中的每一个客户操作***之间,通过所述网络接口卡内的多个客户操作***队列中对应的至少一个队列传输数据。
优选地,所述多个客户操作***队列中的每个队列包括发送(TX)队列、接收(RX)队列和事件队列中至少其一。
优选地,所述***进一步包括有位于所述网络接口卡内的、用于通过所述对应的客户操作***队列中的发送队列从所述网络接口卡传输数据至所述多个同时运行的客户操作***之一的电路。
优选地,所述***进一步包括有位于所述网络接口卡内的、用于通过所述对应的客户操作***队列中的接收队列从所述多个同时运行的客户操作***之一传输数据至所述网络接口卡的电路。
优选地,所述***进一步包括有位于所述网络接口卡内的、用于通过所述对应的客户操作***队列中的事件队列将通信事件的发生从所述网络接口卡指示给所述多个同时运行的客户操作***之一的电路。
优选地,所述通信事件是上行链路事件、下行链路事件、数据包发送事件和数据包接收事件之一。
优选地,所述***进一步包括有位于所述网络接口卡内的、用于通过所述网络接口卡在所述多个同时运行的客户操作***中至少两个客户操作***之间传输数据的电路。
优选地,所述***进一步包括有位于所述网络接口卡内的、验证缓存在所述网络接口卡内的客户操作***媒体访问控制(MAC)地址的电路。
本发明的各种优点、各个方面和创新特征,以及其中所示例的实施例的细节,将在以下的说明书和附图中进行详细介绍。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明通信连接至支持多个客户操作***(GOS)的主机***的网络接口卡的模块图;
图2A是本发明操作***(OS)虚拟认知NIC的一个实施例的模块图;
图2B是本发明OS虚拟认知NIC的另一实施例的模块图;
图2C是本发明通过OS虚拟认知NIC发送和接收数据包的流程图;
图2D是本发明通过OS虚拟认知NIC发送和接收数据包的过程中GOS和主驱动器的操作的流程图;
图3是本发明支持统计值采集(statistics collection)的OS虚拟认知NIC的一个实施例的模块图;
图4A是本发明支持主机***中GOS之间通信的第二级(L2)交换的OS虚拟认知NIC的一个实施例的模块图;
图4B是本发明通过OS虚拟认知NIC进行单播、多播和/或广播的步骤流程图。
具体实施方式
本发明的各个实施例涉及一种操作***(OS)虚拟认知网络接口卡(NIC)的方法和***。所述***包括NIC,为主机***中多个同时运行的客户操作***(GOS)提供直接I/O功能。所述NIC包括有用于每个GOS的GOS队列,其中每个GOS队列包括发送(TX)队列、接收(RX)队列和事件队列。所述NIC可与GOS通过对应的TX队列和RX队列传输数据。所述NIC可通过对应的事件队列,通知GOS有事件发生,例如下行链路、上行链路、数据包发送和数据包接收。所述NIC也可支持GOS之间的单播、广播和/或多播通信。当有地址与主机***中的GOS之一相对应时,所述NIC也可验证该被缓存的地址。
图1是本发明通信连接至支持多个客户操作***(GOS)的主机***的网络接口卡的模块图。参照图1,展示了第一GOS 102a、第二GOS 102b、第三GOS 102c、***管理器104、主机***106、发送(TX)队列108a、接收(RX)队列108b和NIC 110。NIC 110包括NIC处理器118和NIC存储器116。主机***106包括主机处理器122和主机存储器120。
主机***106可包括恰当的逻辑、电路和/或编码,例如,可进行数据处理和/或网络操作。在某些例子中,主机***106还包括有其它硬件资源,例如,图形卡和/或外设声卡。主机***106可通过***管理器104支持第一GOS102a、第二GOS 102b和第三GOS 102c的操作。主机***106通过使用***管理器104支持的GOS的数量不限于图1中的实施例所示。例如,主机***106可支持两个或多个GOS。
***管理器104可用作实现主机***106中硬件资源OS虚拟化和/或通信连接至主机***106的硬件资源虚拟化的软件层,例如,NIC 110。***管理器104也可实现GOS和主机***106中的硬件资源和/或连接至主机***106的硬件资源之间的数据传输。例如,***管理器204可实现主机***106所支持的GOS和NIC 110之间通过TX队列108a和/或RX队列108b传输数据包。
主处理器122可包括恰当的逻辑、电路和/或编码,可控制和/或管理与主机***106相关的数据处理和/或网络操作。主机存储器120包括恰当的逻辑、电路和/或编码,可存储主机***106所使用的数据。主机存储器120可被分割为多个存储区。例如,主机***106所支持的每个GOS在主机存储器120中具有对应的存储区。此外,***管理器104在主机存储器120中具有对应的存储区。因此,***管理器104可通过控制数据从对应一个GOS的存储器120的一部分传输到对应另一个GOS的存储器120的另一部分,实现GOS之间的数据传输。
NIC 110包括恰当的逻辑、电路和/或编码,可实现与网络的数据传输。例如,NIC 110可进行基础级2(L2)交换操作。TX队列108a包括恰当的逻辑、电路和/或编码,可登记(posting)数据以通过NIC 110发送。RX队列108b包括恰当的逻辑、电路和/或编码,可登记通过NIC 110接收到的数据以供主机***106处理。因而,NIC 110可登记RX队列108b中从网络接收的数据,并可获取TX队列108a中由主机***106登记的数据以发送到该网络。例如,TX队列108a和RX队列108b可集成在NIC 110中。NIC处理器118包括恰当的逻辑、电路和/或编码,可控制和/或管理NIC 110中的数据处理和/或网络操作。NIC存储器116包括恰当的逻辑、电路和/或编码,可存储NIC 110所使用的数据。
第一GOS 102a、第二GOS 102b和第三GOS 102每个均对应一个操作***,可运行或执行操作或服务,例如,应用程序、电子邮件服务器操作、数据库服务器操作和/或交换服务器操作。第一GOS 102a包括虚拟NIC 112a,第二GOS 102b包括虚拟NIC 112b,第三GOS 102c包括虚拟NIC 112c。例如,虚拟NIC 112a、虚拟NIC 112b和虚拟NIC 112c对应于NIC 110资源的软件表示。因而,NIC 110资源包括TX队列108a和RX队列108b。通过虚拟NIC 112a、虚拟NIC 112b和虚拟NIC 112c的NIC 110资源的虚拟化,可使得***管理器104提供NIC 110所提供的L2交换支持给第一GOS 102a、第二GOS 102b和第三GOS 102。然而,在这个例子中,通过***管理器104实现的NIC 110资源的虚拟化,可能不支持其它高级功能,例如,GOS中的TCP卸载、iSCSI和/或RDMA。
操作中,当图1A中所示的GOS需要发送数据包至网络时,该数据包传输可至少部分地由***管理器104控制。如果不止一个GOS需要发送数据包至网络,***管理器104对访问NIC 110资源进行仲裁。在这点上,作为仲裁结果,***管理器104可使用虚拟NIC将NIC 110传输资源的当前可用性通知给对应的GOS。***管理器104可依据仲裁操作的结果将数据包登入TX队列108a内,从而协调GOS的数据包传输。数据包传输所发生的仲裁和/或协调操作将增加***管理器104的开销。
通过NIC 110从网络接收数据包时,***管理器104确定与该数据包相关联的媒体访问控制(MAC)地址,以便将接收到的数据包传送给恰当的GOS。在这点上,***管理器104可从RX队列108b接收数据包,并对该数据包解多路复用,以传输至恰当的GOS。在为接收的数据包确定MAC地址和恰当的GOS后,***管理器104将接收的数据包从主机存储器120的***管理器区内的缓存中传输到主机存储器120的对应恰当GOS的存储区内的缓存中。与接收数据包和传输数据包至恰当的GOS相关的操作也会增加***管理器104的开销。
图2A是本发明操作***(OS)虚拟认知NIC的一个实施例的模块图。参照图2A,展示了第一GOS 202a、第二GOS 202b、第三GOS 202c、***管理器204、主机***206、事件队列208a、212a和214a、发送(TX)队列208b、212b和214b、接收(RX)队列208c、212c和214c,以及NIC 210。NIC 210包括NIC处理器218和NIC存储器216。主机***206包括主机处理器222和主机存储器220。***管理器204包括主驱动器224。
主机***206包括恰当的逻辑、电路和/或编码,可进行数据处理和/或网络操作。在某些例子中,主机***206也可包括其它硬件资源,例如,图形卡和/或外设声卡。主机***206通过***管理器204支持第一GOS 202a、第二GOS 202b和第三GOS 202c的操作。第一GOS 202a、第二GOS 202b和第三GOS 202每个均对应于可运行或执行操作或服务的操作***,例如,所述操作或服务可以是应用程序、电子邮件服务器操作、数据库服务器操作和/或交换服务器操作。主机***206通过使用***管理器104所支持的GOS的数量不限于图2A中描述的实施例。例如,主机***206可支持两个或多个GOS。
***管理器204可运行为软件层,实现主机***206内的硬件资源的虚拟化和/或通信连接至主机***206的硬件资源的虚拟化,例如,NIC 210。***管理器204也可实现GOS和主机***206中硬件资源和/或连接至主机***206的硬件资源之间的数据通信。例如,***管理器204可通过事件队列208a、212a和214a、TX队列208b、212b和214b和/或RX队列208c、212c和214c实现主机***206支持的GOS和NIC 210之间的通信。在这点上,第一GOS202a和NIC 210之间的通信可通过事件队列208a、TX队列208b和RX队列208c发生。同样地,第二GOS 202b和NIC 210之间的通信可通过事件队列212a、TX队列212b和RX队列212c发生。第三GOS 202c和NIC 210之间的通信可通过事件队列214a、TX队列214b和RX队列214c发生。每组队列彼此之间单独和独立地运行。
***管理器204包括主驱动器224,其可协调GOS和队列之间的数据传输。主驱动器224可与GOS 202a中的GOS驱动器226a、GOS 202b中的GOS驱动器226b和/或GOS 202c中的GOS驱动器226c通信。每个GOS驱动器对应于一部分GOS,通过主驱动器224进行GOS所执行的操作或服务与恰当的队列之间的数据传输。例如,来自第一GOS 202a中的操作或服务传输的数据包和/或数据包描述符可通过GOS驱动器226a传输至TX队列208b。在另一个例子中,由NIC 210登入事件队列208a中以指示网络条件或报告数据发送或数据接收的数据,将被传输至由GOS驱动器226a登记的缓存中。在另一个例子中,由NIC 210从网络接收的、具有对应第一GOS 202a的MAC地址的数据包,可从RX队列208c传输至由GOS驱动器226a登记的缓存中。
主机处理器222包括恰当的逻辑、电路和/或编码,可控制和/或管理与主机***206相关的数据处理和/或网络操作。主机存储器220包括恰当的逻辑、电路和/或编码,可存储主机***206所使用的数据。主机存储器220可被分割为多个存储区。例如,主机***206所支持的每个GOS在主机存储器220中具有对应的存储区。此外,***管理器204在主机存储器220中具有对应的存储区。因而,***管理器204可通过控制数据从对应一个GOS的存储器220的存储区传输至对应另一个GOS的存储器220的另一存储区,来实现GOS之间的数据传输。
NIC 210包括恰当的逻辑、电路和/或编码,可实现与网络传输数据。NIC210可实现基础L2交换、TCP卸载、iSCSI和/或RDMA操作。NIC 210可称为OS虚拟认知NIC,因为与每个GOS的通信通过独立的队列组完成。NIC 210可确定所接收的数据包的MAC地址,并可将接收的数据包发送给与具有恰当MAC地址的GOS相对应的RX队列。同样地,NIC 210可通过协调和/或仲裁TX队列中登记的数据包被发送的顺序,来实现从GOS到网络的数据包传输。在这点上,NIC 210可实现直接输入/输出(I/O)或***管理器旁路操作。
事件队列208a、212a和214a包括恰当的逻辑、电路和/或编码,可通过NIC 210登入数据以表示事件的发生。例如,NIC 210可在事件队列中登入数据以表示下行链路或上行链路。链路的当前状态,无论是上行的还是下行的,都将登记给所有事件队列。
TX队列208b、212b和214b包括恰当的逻辑、电路和/或编码,可通过NIC 110从第一GOS 202a、第二GOS 202b和第三GOS 202c登记数据。RX队列208c、212c和214c包括恰当的逻辑、电路和/或编码,可登入通过NIC 110接收到的数据以供第一GOS 202a、第二GOS 202b和第三GOS 202c处理。TX队列208b、212b和214b和/或RX队列208c、212c和214c可集成在NIC 210内。
NIC处理器218包括恰当的逻辑、电路和/或编码,可控制和/或管理NIC210中的数据处理和/或网络操作。NIC存储器216包括恰当的逻辑、电路和/或编码,可存储NIC 210所使用的数据。
图2B是本发明OS虚拟认知NIC的另一实施例的模块图。参照图2B,所示的主机***206可支持N个GOS和一个NIC 210,该NIC 210可支持N组队列。主机***206如图2A中描述,并可支持GOS 2021、…、GOS 202N的操作,其中1≤N。每个GOS可用于提供单独的操作或服务。***管理器204和主驱动器224可支持N个GOS和队列组2281、…、228N之间的数据通信。主机存储器220的一部分可与每个GOS 2021、…、GOS 202N以及***管理器204相关联。图2B中展示的GOS驱动器2281、…、228N可用于在GOS2021、…、GOS 202N执行的操作或服务和对应的队列2281、…、228N之间传输数据。GOS驱动器2281、…、228N和对应的队列2281、…、228N之间的数据传输可通过主驱动器224发生。在这点上,GOS驱动器和主驱动器224如图2A中展示。
NIC 210如图2A描述,并也可称作OS虚拟认知NIC。NIC 210可通过队列组2261、…、226N实现网络和N个GOS的每个之间的通信。例如,网络和GOS 2021之间的通信可通过队列组2261发生。在另一个例子中,网络和GOS202N之间的通信可通过队列组226N发生。每组队列可包括事件队列、发送(TX)队列和接收(RX)队列。队列组2261,…,226N中的事件队列、TX队列和RX队列如图2A所描述。
图2C是本发明通过OS虚拟认知NIC发送和接收数据包的流程图。参照图2C,展示了流程图230。起始步骤232后,步骤234中,当数据包准备好通过图2A-2B中的OS虚拟认知NIC 210从GSO传输至网络时,流程图230中的处理可进入步骤236。步骤236中,GOS中的GOS驱动器可通过***管理器204中的主驱动器224发送将要登入对应TX队列中的数据包。步骤238中,将数据包从TX队列传输至NIC 210用于传输。步骤240中,NIC 210可传输该数据包至与网络连接的终端和/或设备。在这点上,NIC 210可在与发起数据包传输的GOS相对应的事件队列中登记一个标识,以此报告数据包已经被传输至网络。步骤240后,流程图230中的处理进入结束步骤242。
回到步骤234,当数据包将通过图2A-2B中的OS虚拟认知NIC 210从网络接收到时,流程图230可进入步骤244。步骤244中,NIC 210可基于为每个数据包确定的MAC地址对从网络接收的数据包进行解多路复用。步骤246中,NIC 210可将该数据包登入对应的RX队列中,该RX队列与所确定的MAC地址对应的GOS相关联。此外,NIC 210可在与所确定的MAC地址对应的GOS相关联的事件队列中登记一个标识,以此报告已经从网络中接收到数据包。步骤248中,将数据包从RX队列传输至由对应的GOS中的GOS驱动器所登记的缓存中。在这点上,该传输可通过***管理器204中的主驱动器224发生。步骤248后,流程图230中的处理进入结束步骤242。
图2D是本发明通过OS虚拟认知NIC发送和接收数据包的过程中GOS和主驱动器的操作流程图。参照图2D,展示了流程图252。步骤254中,当数据包准备好通过图2A-2B中的OS虚拟认知NIC 210从GOS传输至网络时,流程图230中的处理可进入步骤256。步骤256中,GOS中的GOS驱动器发送数据包,通过***管理器204中的主驱动器224将该数据包登入对应的TX队列中。步骤258中,将该数据包从TX队列传输至NIC 210以供传输。NIC 210可传输数据包至与网络连接的设备和/或终端。在这点上,NIC 210可在与发起数据包传输的GOS相对应的事件队列中登记一个标识,以报告数据包已经传输至网络。步骤258后,流程图250的处理进入结束步骤260。
回到步骤254,当对从网络接收的数据包使用一个中断时,流程图250的处理进入步骤264。步骤264中,NIC 210为收到的数据包确定MAC地址,且该数据包可登入对应的RX队列中。此外,NIC 210可生成数据包到达标识并将该标识登记在对应的事件队列中。步骤266中,NIC 210可生成中断信号并将其传送至***管理器204内的主驱动器224。步骤268中,主驱动器224通知与收到的数据包的MAC地址相对应的GOS内的GOS驱动器,数据包已经登记在对应的RX队列中。对应该合适GOS的主机存储器220中存储区内的缓存被登入数据包。步骤270后,流程图250的处理进入结束步骤260。
回到步骤262,当多信号中断(MSI)方法用于从网络接收的数据包时,流程图250的处理可进入步骤272。步骤272中,NIC 210确定收到的数据包的MAC地址,并且所述数据包被登入对应的RX队列中。此外,NIC 210可产生数据包到达通知,并且可将所述通知登入对应的事件队列中。步骤274中,在NIC 210和主机***206之间激活MSI。在这点上,NIC 210可产生多个中断信号,且该多个中断信号被传输至***管理器204所使用的存储器位置内。NIC 210可写所述存储器位置以表示特定的GOS接收到了数据包。步骤276中,在读取了包含有关于多个中断信号的信息的存储器位置后,主驱动器224可通知对应的GOS驱动器数据包已经到达。步骤278中,GOS驱动器登记一个缓存用于存储RX队列中登入的数据包。该缓存可位于与合适的GOS相对应的主机存储器220内的一个存储区内。步骤278后,流程图250的处理可进入结束步骤260。
图3是本发明支持统计值采集的OS虚拟认知NIC的模块图。参照图3,展示了图2A-2B中描述的NIC 210。在这点上,NIC 210可包括有存储或存储器缓存,例如,存储器302a、存储器302b、存储器302c和存储器304,其中NIC 210可存储与网络传输数据包相关的统计信息。例如,标记为存储器302a、存储器302b和存储器302c的缓存可基于NIC存储器216实现,并可存储对应主机***206支持的每个GOS的统计信息。例如,存储器302a可存储NIC210产生的关于GOS 202a的数据包通信的统计信息。例如,存储器302b可存储NIC 210产生的关于GOS 202b的数据包通信的统计信息。例如,GOS 202c和网络之间的通信有关的统计信息可存储在存储器302c内。在本发明的这个实施例中,每个GOS的统计信息可存储在单独的缓存中。在本发明的另一个实施例中,所有统计信息可存储在一个缓存中。
缓冲存储器302a、302b和302c可用于存储每个GOS的统计信息,例如,NIC 210为每个GOS接收的正确数据包的数量、接收的数据包中字节的数量和/或正确地传递至每个GOS的数据包的数量。所述统计数据可称作“好”统计值(good statistics),并可由NIC 210用于通信操作。
缓冲存储器304可存储与主机***206所支持的任意GOS相对应的关于数据包错误的统计信息。例如,缓存304可用于存储统计信息,例如,不符合循环冗余校验(CRC)的数据包和/或长度短于以太网通信规范的数据包。因为这些错误不能使NIC 210确定数据包对应的GOS,NIC 210可将这些统计值收集并存储在单个缓冲存储器304中。这些统计信息可称作“坏”统计信息(badstatistics),并可由NIC 210用于通信操作。
图4A是本发明支持主机***中GOS之间通信的第二级(L2)交换的OS虚拟认知NIC的模块图。参照图4A,展示了图2A-2B中描述的NIC 210。如图所示,NIC 210包括L2交换机(switch)400。L2交换机400包括恰当的逻辑、电路和/或编码,可使得NIC 210支持GOS和网络之间和/或GOS之间的数据包通信。L2交换机400可支持单播、广播和/或多播操作。单播操作指的是到一个MAC地址的数据包传输。广播操作指的是到所有MAC地址的数据包传输。多播操作指的是到一组特定MAC地址的数据包传输。
例如,图2A中的GOS 202a可发送数据包至与网络连接的至少一个设备。在这个情况中,GOS驱动器226a可传输数据包至对应于GOS 202a的TX队列208b。L2交换机400可接收来自TX队列208b的该数据包,并可确定MAC地址对应于网络上的某个或多个设备。然后NIC 210可传输该数据包至对应的MAC地址。
又例如,GOS 202a可发送数据包至GOS 202b和/或GOS 202c。在这个例子中,GOS驱动器226a可传输数据包至对应GOS 202a的TX队列208b。L2交换机400从TX队列208b接收数据包,并可确定MAC地址对应于GOS 202b和/或GOS 202c的地址。L2交换机400可传输该数据包至对应于GOS 202b和/或GOS 202c的RX队列212c和/或RX队列214c。GOS驱动器226b和/或GOS驱动器226c可被通知接收到数据包,并可在主机存储器220的恰当存储区内登记缓存。执行在GOS 202b和/或GOS 202c上的操作或服务可从该被登记的缓存中读取接收到的数据包。
图4A中的NIC 210还包括有地址验证器402。地址验证器402包括恰当的逻辑、电路和/或编码,可验证由GOS驱动器所登记的、用以存储接收的数据包的缓存的地址。例如,在将RX队列中的数据包传输至被登记的缓存之前,地址验证器402可验证被登记的缓存是位于与接收的数据包相关的GOS对应的地址或存储器位置中。如果地址通过验证,则将该接收的数据包从RX队列传输至被登记的缓存中。如果地址未通过验证,则GOS驱动器需要登记一个新的缓存来接收来自RX队列的数据包。
图4B是本发明通过OS虚拟认知NIC进行单播、多播和/或广播的步骤流程图。参照图4,展示了流程图410。开始步骤402后,在步骤404中,图2A-2B中描述的主机***206支持的GOS可产生数据包以供传输。GOS驱动器可传输该数据包至恰当的TX队列。图4A中的L2交换机400可从TX队列接收数据包,并确定目的地MAC地址。步骤406中,基于对应数据包目的地的MAC地址,L2交换机400可确定数据包传输是单播、广播还是多播。如果该数据包的传输是多播或广播,流程410进入步骤408。
步骤408中,L2交换机400可传输数据包至网络上列为多播或广播传输的一部分的恰当的MAC地址。步骤410中,L2交换机400还传输数据包至具有列为多播或广播传输的一部分的恰当的MAC地址的每个GOS的RX队列。列出的每个GOS的GOS驱动器可被通知已接收到数据包,并可在主机存储器220的恰当存储区中登记缓存。执行在列出的每个GOS上的操作或服务可从登记的缓存中读取接收的数据包。步骤410后,流程410进入结束步骤418。
回到步骤406,如果该数据包的传输是单播传输,流程410进入步骤412。步骤412中,L2交换机400可确定MAC地址是否对应于主机***206支持的GOS或者对应于线缆或网络上的设备。如果将被传输的数据包的MAC地址对应于某个GOS,流程410进入步骤414。步骤414中,L2交换机400传输该数据包至与具有恰当MAC地址的GOS相对应的RX队列。GOS驱动器可被通知数据包已接收到,并在主机***220的恰当存储区部分内登记一个缓存。GOS上执行的操作或服务可从被登记的缓存中读取所接收到的数据包。步骤414后,流程410进入结束步骤418。
回到步骤412,如果将被传输的数据包的MAC地址对应网络上的设备,流程410进入步骤416。步骤416中,L2交换机400传输数据包至网络上恰当的MAC地址。步骤416后,流程410进入结束步骤418。
本申请中描述的OS虚拟认知NIC可实现OS虚拟化,降低***管理器层在GOS和网络之间和/或GOS之间传输数据包的开销要求。OS虚拟认知NIC可支持多个GOS。此外,OS虚拟认知NIC可实现高级特性的虚拟化,例如,TCP卸载功能、RDMA和/或iSCSI接口。
本发明可以通过硬件、软件,或者软、硬件结合来实现。本发明可以在至少一个计算机***中以集中方式实现,或者由分布在几个互连的计算机***中的不同部分以分散方式实现。任何可以实现所述方法的计算机***或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机***,通过安装和执行所述程序控制计算机***,使其按所述方法运行。在计算机***中,利用处理器和存储单元来实现所述方法。
本发明还可以通过计算机程序产品进行实施,所述程序包含能够实现本发明方法的全部特征,当其安装到计算机***中时,通过运行,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使***具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
Claims (10)
1、一种管理网络信息处理的方法,其特征在于,所述方法包括:通过网络接口卡内的多个客户操作***队列中对应的至少一个队列,与主机***内同时运行的多个客户操作***中的每一个客户操作***传输数据。
2、根据权利要求1所述的方法,其特征在于,所述多个客户操作***队列中的每个队列包括发送队列、接收队列和事件队列中至少其一。
3、根据权利要求2所述的方法,其特征在于,所述方法进一步包括:通过所述对应的客户操作***队列中的发送队列,从所述网络接口卡传输数据至所述多个同时运行的客户操作***之一。
4、根据权利要求2所述的方法,其特征在于,所述方法进一步包括:通过所述对应的客户操作***队列中的接收队列,从所述多个同时运行的客户操作***之一传输数据至所述网络接口卡。
5、根据权利要求2所述的方法,其特征在于,所述方法进一步包括:通过所述对应的客户操作***队列中的事件队列,将通信事件的发生从所述网络接口卡指示给所述多个同时运行的客户操作***之一。
6、一种机器可读存储器,其特征在于,其内存储的计算机程序具有至少一个用于管理网络信息处理的代码段,所述至少一个代码段由机器执行后使得所述机器执行如下步骤:通过网络接口卡内的多个客户操作***队列中对应的至少一个队列,与主机***内同时运行的多个客户操作***中的每一个客户操作***传输数据。
7、根据权利要求6所述的机器可读存储器,其特征在于,所述多个客户操作***队列中的每个队列包括发送队列、接收队列和事件队列中至少其一。
8、一种管理网络信息处理的***,其特征在于,所述***包括网络接口卡中的电路,允许所述网络接口卡与主机***内同时运行的多个客户操作***中的每一个客户操作***之间,通过所述网络接口卡内的多个客户操作***队列中对应的至少一个队列传输数据。
9、根据权利要求8所述的***,其特征在于,所述多个客户操作***队列中的每个队列包括发送队列、接收队列和事件队列中至少其一。
10、根据权利要求9所述的***,其特征在于,所述***进一步包括有位于所述网络接口卡内的、用于通过所述对应的客户操作***队列中的发送队列从所述网络接口卡传输数据至所述多个同时运行的客户操作***之一的电路。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78839606P | 2006-03-31 | 2006-03-31 | |
US60/788,396 | 2006-03-31 | ||
US11/435,075 US8635388B2 (en) | 2006-03-31 | 2006-05-16 | Method and system for an OS virtualization-aware network interface card |
US11/435,075 | 2006-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101102305A true CN101102305A (zh) | 2008-01-09 |
CN101102305B CN101102305B (zh) | 2013-03-20 |
Family
ID=38308721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100936261A Expired - Fee Related CN101102305B (zh) | 2006-03-31 | 2007-03-26 | 管理网络信息处理的***和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8635388B2 (zh) |
EP (1) | EP1841162B1 (zh) |
CN (1) | CN101102305B (zh) |
TW (1) | TWI458307B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790777A (zh) * | 2012-08-07 | 2012-11-21 | 华为技术有限公司 | 网络接口适配器注册方法及驱动设备、服务器 |
CN102857494A (zh) * | 2011-06-30 | 2013-01-02 | 美国博通公司 | 通用网络接口控制器 |
US9253121B2 (en) | 2012-12-31 | 2016-02-02 | Broadcom Corporation | Universal network interface controller |
CN106055989A (zh) * | 2016-05-26 | 2016-10-26 | 深圳市金立通信设备有限公司 | 一种数据传递方法及终端 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635388B2 (en) | 2006-03-31 | 2014-01-21 | Broadcom Corporation | Method and system for an OS virtualization-aware network interface card |
US7672299B2 (en) * | 2006-06-30 | 2010-03-02 | Sun Microsystems, Inc. | Network interface card virtualization based on hardware resources and software rings |
US8005022B2 (en) * | 2006-07-20 | 2011-08-23 | Oracle America, Inc. | Host operating system bypass for packets destined for a virtual machine |
US7894453B2 (en) * | 2006-07-20 | 2011-02-22 | Oracle America, Inc. | Multiple virtual network stack instances |
US7885257B2 (en) * | 2006-07-20 | 2011-02-08 | Oracle America, Inc. | Multiple virtual network stack instances using virtual network interface cards |
US8001282B2 (en) * | 2007-08-14 | 2011-08-16 | Intel Corporation | Virtualization aware hard drive |
US8095661B2 (en) * | 2007-12-10 | 2012-01-10 | Oracle America, Inc. | Method and system for scaling applications on a blade chassis |
US8086739B2 (en) * | 2007-12-10 | 2011-12-27 | Oracle America, Inc. | Method and system for monitoring virtual wires |
US7962587B2 (en) * | 2007-12-10 | 2011-06-14 | Oracle America, Inc. | Method and system for enforcing resource constraints for virtual machines across migration |
US7945647B2 (en) * | 2007-12-10 | 2011-05-17 | Oracle America, Inc. | Method and system for creating a virtual network path |
US8370530B2 (en) * | 2007-12-10 | 2013-02-05 | Oracle America, Inc. | Method and system for controlling network traffic in a blade chassis |
US7984123B2 (en) * | 2007-12-10 | 2011-07-19 | Oracle America, Inc. | Method and system for reconfiguring a virtual network path |
US8990799B1 (en) * | 2008-01-30 | 2015-03-24 | Emc Corporation | Direct memory access through virtual switch in device driver |
US7965714B2 (en) * | 2008-02-29 | 2011-06-21 | Oracle America, Inc. | Method and system for offloading network processing |
US7970951B2 (en) * | 2008-02-29 | 2011-06-28 | Oracle America, Inc. | Method and system for media-based data transfer |
US7944923B2 (en) * | 2008-03-24 | 2011-05-17 | Oracle America, Inc. | Method and system for classifying network traffic |
US8307405B2 (en) * | 2008-04-28 | 2012-11-06 | International Business Machines Corporation | Methods, hardware products, and computer program products for implementing zero-trust policy in storage reports |
US8336099B2 (en) * | 2008-05-08 | 2012-12-18 | International Business Machines Corporation | Methods, hardware products, and computer program products for implementing introspection data comparison utilizing hypervisor guest introspection data |
US7941539B2 (en) * | 2008-06-30 | 2011-05-10 | Oracle America, Inc. | Method and system for creating a virtual router in a blade chassis to maintain connectivity |
US8739179B2 (en) * | 2008-06-30 | 2014-05-27 | Oracle America Inc. | Method and system for low-overhead data transfer |
US8406230B2 (en) * | 2008-06-30 | 2013-03-26 | Oracle America, Inc. Formerly Known As Sun Microsystems, Inc. | Method and system for classifying packets in a network interface card and interface for performing the same |
US8327355B2 (en) * | 2008-07-15 | 2012-12-04 | International Business Machines Corporation | Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit |
US8667187B2 (en) * | 2008-09-15 | 2014-03-04 | Vmware, Inc. | System and method for reducing communication overhead between network interface controllers and virtual machines |
US8566822B2 (en) | 2009-07-22 | 2013-10-22 | Broadcom Corporation | Method and system for distributing hypervisor functionality over multiple physical devices in a network and configuring sub-hypervisor to control the virtual machines |
US8873375B2 (en) | 2009-07-22 | 2014-10-28 | Broadcom Corporation | Method and system for fault tolerance and resilience for virtualized machines in a network |
US8086765B2 (en) * | 2010-04-29 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Direct I/O device access by a virtual machine with memory managed using memory disaggregation |
ES2639643T3 (es) | 2010-06-23 | 2017-10-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Gestión de interferencias de señales de referencia en despliegues de redes heterogéneas |
US8726093B2 (en) | 2010-06-30 | 2014-05-13 | Oracle America, Inc. | Method and system for maintaining direct hardware access in the event of network interface card failure |
US9858241B2 (en) | 2013-11-05 | 2018-01-02 | Oracle International Corporation | System and method for supporting optimized buffer utilization for packet processing in a networking device |
US8634415B2 (en) | 2011-02-16 | 2014-01-21 | Oracle International Corporation | Method and system for routing network traffic for a blade server |
US9237127B2 (en) * | 2011-05-12 | 2016-01-12 | Airmagnet, Inc. | Method and apparatus for dynamic host operating system firewall configuration |
US8966084B2 (en) | 2011-06-17 | 2015-02-24 | International Business Machines Corporation | Virtual machine load balancing |
US8949428B2 (en) | 2011-06-17 | 2015-02-03 | International Business Machines Corporation | Virtual machine load balancing |
US8843924B2 (en) | 2011-06-17 | 2014-09-23 | International Business Machines Corporation | Identification of over-constrained virtual machines |
US8838837B2 (en) | 2011-06-23 | 2014-09-16 | Microsoft Corporation | Failover mechanism |
US9571426B2 (en) * | 2013-08-26 | 2017-02-14 | Vmware, Inc. | Traffic and load aware dynamic queue management |
US9489327B2 (en) | 2013-11-05 | 2016-11-08 | Oracle International Corporation | System and method for supporting an efficient packet processing model in a network environment |
US11054884B2 (en) | 2016-12-12 | 2021-07-06 | Intel Corporation | Using network interface controller (NIC) queue depth for power state management |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US5968176A (en) * | 1997-05-29 | 1999-10-19 | 3Com Corporation | Multilayer firewall system |
US6718392B1 (en) * | 2000-10-24 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Queue pair partitioning in distributed computer system |
US6907600B2 (en) * | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US20030065856A1 (en) * | 2001-10-03 | 2003-04-03 | Mellanox Technologies Ltd. | Network adapter with multiple event queues |
US7346701B2 (en) | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
US6804729B2 (en) * | 2002-09-30 | 2004-10-12 | International Business Machines Corporation | Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel |
US7010633B2 (en) * | 2003-04-10 | 2006-03-07 | International Business Machines Corporation | Apparatus, system and method for controlling access to facilities based on usage classes |
US7299468B2 (en) * | 2003-04-29 | 2007-11-20 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US7356818B2 (en) * | 2003-06-24 | 2008-04-08 | International Business Machines Corporation | Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor |
US7934020B1 (en) * | 2003-09-19 | 2011-04-26 | Vmware, Inc. | Managing network data transfers in a virtual computer system |
US7979548B2 (en) * | 2003-09-30 | 2011-07-12 | International Business Machines Corporation | Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network |
US7478173B1 (en) * | 2003-12-18 | 2009-01-13 | Wmware, Inc. | Method and system for sharing a network connection in a virtual computer system |
US7562366B2 (en) * | 2005-02-03 | 2009-07-14 | Solarflare Communications, Inc. | Transmit completion event batching |
US7865908B2 (en) * | 2005-03-11 | 2011-01-04 | Microsoft Corporation | VM network traffic monitoring and filtering on the host |
US7353360B1 (en) * | 2005-04-05 | 2008-04-01 | Sun Microsystems, Inc. | Method for maximizing page locality |
US8230153B2 (en) * | 2006-01-20 | 2012-07-24 | Broadcom Corporation | Method and system for HBA assisted storage virtualization |
US8635388B2 (en) | 2006-03-31 | 2014-01-21 | Broadcom Corporation | Method and system for an OS virtualization-aware network interface card |
-
2006
- 2006-05-16 US US11/435,075 patent/US8635388B2/en active Active
- 2006-11-24 EP EP06024399.5A patent/EP1841162B1/en active Active
-
2007
- 2007-03-26 CN CN2007100936261A patent/CN101102305B/zh not_active Expired - Fee Related
- 2007-03-30 TW TW96111204A patent/TWI458307B/zh not_active IP Right Cessation
-
2013
- 2013-12-19 US US14/134,272 patent/US9258171B2/en active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857494A (zh) * | 2011-06-30 | 2013-01-02 | 美国博通公司 | 通用网络接口控制器 |
CN102857494B (zh) * | 2011-06-30 | 2015-11-18 | 美国博通公司 | 通用网络接口控制器 |
CN102790777A (zh) * | 2012-08-07 | 2012-11-21 | 华为技术有限公司 | 网络接口适配器注册方法及驱动设备、服务器 |
US9253121B2 (en) | 2012-12-31 | 2016-02-02 | Broadcom Corporation | Universal network interface controller |
US9515963B2 (en) | 2012-12-31 | 2016-12-06 | Broadcom Corporation | Universal network interface controller |
CN106055989A (zh) * | 2016-05-26 | 2016-10-26 | 深圳市金立通信设备有限公司 | 一种数据传递方法及终端 |
CN106055989B (zh) * | 2016-05-26 | 2019-05-17 | 深圳市金立通信设备有限公司 | 一种数据传递方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
EP1841162A3 (en) | 2010-01-13 |
US20070244972A1 (en) | 2007-10-18 |
US8635388B2 (en) | 2014-01-21 |
TWI458307B (zh) | 2014-10-21 |
US20140108676A1 (en) | 2014-04-17 |
US9258171B2 (en) | 2016-02-09 |
TW200810466A (en) | 2008-02-16 |
CN101102305B (zh) | 2013-03-20 |
EP1841162B1 (en) | 2016-02-24 |
EP1841162A2 (en) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101102305A (zh) | 管理网络信息处理的***和方法 | |
CN1212574C (zh) | 使用本地标识符的端节点分区 | |
US8099471B2 (en) | Method and system for communicating between memory regions | |
CN1647054B (zh) | 双模网络设备驱动设备、***和方法 | |
US6888792B2 (en) | Technique to provide automatic failover for channel-based communications | |
US7023811B2 (en) | Switched fabric network and method of mapping nodes using batch requests | |
US7698477B2 (en) | Method and apparatus for managing flow control in PCI express transaction layer | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
US20040267866A1 (en) | Virtual machine connection to a tangible network | |
JP2004534311A (ja) | 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成 | |
US20070288938A1 (en) | Sharing data between partitions in a partitionable system | |
US20030043794A1 (en) | Data stream multiplexing in data network | |
CN111064680B (zh) | 一种通信装置及数据处理方法 | |
US7269666B1 (en) | Memory utilization in a network interface | |
US7313146B2 (en) | Transparent data format within host device supporting differing transaction types | |
US11106359B1 (en) | Interconnection of peripheral devices on different electronic devices | |
CN101044727B (zh) | 使用直插式信用扩充器与主机总线适配器的方法及*** | |
JP3360727B2 (ja) | パケット転送システム及びそれを用いたパケット転送方法 | |
US20030027465A1 (en) | Connection device | |
EP1282287A2 (en) | A connection device | |
Richardson | Distributed Communications in Embedded Military Systems | |
CN102971723A (zh) | 一种分布式多进程通信方法和装置 | |
JP2001308885A (ja) | 交換処理装置の制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20160326 |
|
CF01 | Termination of patent right due to non-payment of annual fee |