CN101102305B - 管理网络信息处理的系统和方法 - Google Patents

管理网络信息处理的系统和方法 Download PDF

Info

Publication number
CN101102305B
CN101102305B CN2007100936261A CN200710093626A CN101102305B CN 101102305 B CN101102305 B CN 101102305B CN 2007100936261 A CN2007100936261 A CN 2007100936261A CN 200710093626 A CN200710093626 A CN 200710093626A CN 101102305 B CN101102305 B CN 101102305B
Authority
CN
China
Prior art keywords
gos
client operating
nic
packet
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.)
Expired - Fee Related
Application number
CN2007100936261A
Other languages
English (en)
Other versions
CN101102305A (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.)
Broadcom Corp
Zyray Wireless Inc
Original Assignee
Zyray Wireless Inc
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 Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN101102305A publication Critical patent/CN101102305A/zh
Application granted granted Critical
Publication of CN101102305B publication Critical patent/CN101102305B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-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 (3)

1.一种管理网络信息处理的方法,其特征在于,所述方法包括:网络接口卡通过与多个客户操作系统队列中对应的至少一个队列,与主机系统内同时运行的多个客户操作系统中的每一个客户操作系统传输数据;通过所述网络接口卡,在所述多个同时运行的客户操作系统中至少两个客户操作系统之间传输数据;其中,
每个客户操作系统的通信通过独立的队列组完成,且所述队列组集成在所述网络接口卡中,且彼此之间单独和独立地运行,所述队列组包括发送队列、接收队列和事件队列;所述网络接口卡通过协调和/或仲裁发送队列中登记的数据包被发送的顺序,来实现从所述客户操作系统到所述网络的数据包传输;
所述网络接口卡包括第二级交换机和地址验证器,其中,
所述地址验证器验证有客户操作系统所登记的、用以存储接收的数据包的缓存的地址;
所述第二级交换机从所述客户操作系统对应的发送队列接收数据包,并确定目的地MAC地址对应于网络上的某个或多个设备,并传输所述数据包至对应的MAC地址;或者,确定目的地MAC地址对应于的客户操作系统的地址,并传输所述数据包至对应的MAC地址的每个客户操作系统的接收队列。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:通过所述对应的客户操作系统队列中的事件队列,将通信事件的发生从所述网络接口卡指示给所述多个同时运行的客户操作系统之一。
3.一种管理网络信息处理的系统,其特征在于,所述系统包括网络接口卡中的电路,允许所述网络接口卡与主机系统内同时运行的多个客户操作系统中的每一个客户操作系统之间,通过所述网络接口卡内的多个客户操作系统队列中对应的至少一个队列传输数据;通过所述网络接口卡,在所述多个同时运行的客户操作系统中至少两个客户操作系统之间传输数据;其中,
每个客户操作系统的通信通过独立的队列组完成,且所述队列组集成在所述网络接口卡中,且彼此之间单独和独立地运行,所述队列组包括发送队列、接收队列和事件队列;所述网络接口卡通过协调和/或仲裁发送队列中登记的数据包被发送的顺序,来实现从所述客户操作系统到所述网络的数据包传输;
所述网络接口卡包括第二级交换机和地址验证器,其中,
所述地址验证器验证有客户操作系统所登记的、用以存储接收的数据包的缓存的地址;
所述第二级交换机从所述客户操作系统对应的发送队列接收数据包,并确定目的地MAC地址对应于网络上的某个或多个设备,并传输所述数据包至对应的MAC地址;或者,确定目的地MAC地址对应于的客户操作系统的地址,并传输所述数据包至对应的MAC地址的每个客户操作系统的接收队列。
CN2007100936261A 2006-03-31 2007-03-26 管理网络信息处理的系统和方法 Expired - Fee Related CN101102305B (zh)

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 CN101102305A (zh) 2008-01-09
CN101102305B true 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)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
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
US7885257B2 (en) * 2006-07-20 2011-02-08 Oracle America, Inc. Multiple virtual network stack instances using virtual network interface cards
US7894453B2 (en) * 2006-07-20 2011-02-22 Oracle America, Inc. Multiple virtual network stack instances
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
US7945647B2 (en) * 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US7962587B2 (en) * 2007-12-10 2011-06-14 Oracle America, Inc. Method and system for enforcing resource constraints for virtual machines across migration
US7984123B2 (en) * 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring 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
US8086739B2 (en) * 2007-12-10 2011-12-27 Oracle America, Inc. Method and system for monitoring virtual wires
US8990799B1 (en) * 2008-01-30 2015-03-24 Emc Corporation Direct memory access through virtual switch in device driver
US7970951B2 (en) * 2008-02-29 2011-06-28 Oracle America, Inc. Method and system for media-based data transfer
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
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
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
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
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
EP2586137B1 (en) 2010-06-23 2017-03-22 Telefonaktiebolaget LM Ericsson (publ) Reference signal interference management in heterogeneous network deployments
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
US9042383B2 (en) * 2011-06-30 2015-05-26 Broadcom Corporation Universal network interface controller
CN102790777B (zh) * 2012-08-07 2016-06-15 华为技术有限公司 网络接口适配器注册方法及驱动设备、服务器
US9253121B2 (en) 2012-12-31 2016-02-02 Broadcom Corporation Universal network interface controller
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
CN106055989B (zh) * 2016-05-26 2019-05-17 深圳市金立通信设备有限公司 一种数据传递方法及终端
US11054884B2 (en) * 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (18)

* Cited by examiner, † Cited by third party
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
EP1841162A2 (en) 2007-10-03
CN101102305A (zh) 2008-01-09
US20070244972A1 (en) 2007-10-18
TWI458307B (zh) 2014-10-21
US20140108676A1 (en) 2014-04-17
US9258171B2 (en) 2016-02-09
EP1841162A3 (en) 2010-01-13
US8635388B2 (en) 2014-01-21
TW200810466A (en) 2008-02-16
EP1841162B1 (en) 2016-02-24

Similar Documents

Publication Publication Date Title
CN101102305B (zh) 管理网络信息处理的系统和方法
US8099471B2 (en) Method and system for communicating between memory regions
CN1647054B (zh) 双模网络设备驱动设备、系统和方法
US7023811B2 (en) Switched fabric network and method of mapping nodes using batch requests
US6888792B2 (en) Technique to provide automatic failover for channel-based communications
US7698477B2 (en) Method and apparatus for managing flow control in PCI express transaction layer
US20040267866A1 (en) Virtual machine connection to a tangible network
US7324525B2 (en) Method and apparatus for coalescing acknowledge packets within a server
CN1520556A (zh) 使用本地标识符的端节点分区
US20070288938A1 (en) Sharing data between partitions in a partitionable system
US20030043794A1 (en) Data stream multiplexing in data network
CN111064680B (zh) 一种通信装置及数据处理方法
US10114771B1 (en) Interconnection of peripheral devices on different electronic devices
US7269666B1 (en) Memory utilization in a network interface
CN115657553A (zh) Pcie拓扑和pcie设备模拟方法、装置、设备及介质
US20040019834A1 (en) Monitoring system and method for monitoring and processing data transmitted between a host and a managing system
US11106359B1 (en) Interconnection of peripheral devices on different electronic devices
CN101044727B (zh) 使用直插式信用扩充器与主机总线适配器的方法及系统
JP3360727B2 (ja) パケット転送システム及びそれを用いたパケット転送方法
JPH0378659B2 (zh)
CN117874748A (zh) 一种跨平台操作系统的混合安全虚拟化方法
Richardson Distributed Communications in Embedded Military Systems
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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130320

Termination date: 20160326