CN101156408B - 用于操作系统分区的网络通信 - Google Patents

用于操作系统分区的网络通信 Download PDF

Info

Publication number
CN101156408B
CN101156408B CN2006800110804A CN200680011080A CN101156408B CN 101156408 B CN101156408 B CN 101156408B CN 2006800110804 A CN2006800110804 A CN 2006800110804A CN 200680011080 A CN200680011080 A CN 200680011080A CN 101156408 B CN101156408 B CN 101156408B
Authority
CN
China
Prior art keywords
packet
bag
multicast
network
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.)
Active
Application number
CN2006800110804A
Other languages
English (en)
Other versions
CN101156408A (zh
Inventor
C·巴索
J·卡尔维纳克
C-J·常
P·达蒙
R·E·富斯
H·G·基尔
N·瓦伊达亚纳塔
F·韦普朗肯
C·B·韦里利
A·K·卢克
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101156408A publication Critical patent/CN101156408A/zh
Application granted granted Critical
Publication of CN101156408B publication Critical patent/CN101156408B/zh
Active 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
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

提供在操作系统分区和计算机网络之间的通信。在一方面中,用于在多个操作系统分区之间分布网络通信的装置包括:允许所述网络与所述计算机系统之间的通信的物理端口,以及关联于所述物理端口的逻辑端口,其中每个逻辑端口关联于所述操作系统分区之一。每个逻辑端口使能在物理端口和相关联的操作系统分区之间的通信,以及允许所述系统的网络资源的可配置性。其它方面包括用于逻辑和物理端口的逻辑交换机,以及用于每个连接和用于每个逻辑端口的包队列。

Description

用于操作系统分区的网络通信
相关申请的交叉引用
本发明涉及以下共同待决的美国专利申请:
题为“Host Ethernet Adapter for Networking Offload in ServerEnvironment”的美国专利申请(代理卷号RPS920050059US1/3485P),与本发明同日提交并被转让给本发明的受让人。
题为“Method and System for Accommodating Several Ethernet Portsand a Wrap Transmitted Flow Handled by a Simplified Frame-By-FrameUpper Structure”的美国专利申请(代理卷号RPS920050060US1/3486P),与本发明同日提交并被转让给本发明的受让人。
题为“Method and Apparatus for Providing a Network ConnectionTable”的美国专利申请(代理卷号RPS920050061US1/3487P),与本发明同日提交并被转让给本发明的受让人。
题为“Configurable Ports for a Host Ethernet Adapter”的美国专利申请(代理卷号RPS920050073US1/3502P),与本发明同日提交并被转让给本发明的受让人。
题为“System and Method for Parsing,Filtering,and Computing theChecksum in a Host Ethernet Adapter(HEA)”的美国专利申请(代理卷号RPS920050074US1/3503P),与本发明同日提交并被转让给本发明的受让人。
题为“System and Method for a Method for Reducing Latency in aHost Ethernet Adapter(HEA)”的美国专利申请(代理卷号RPS920050075US1/3504P),与本发明同日提交并被转让给本发明的受让人。
题为“Method and Apparatus for Blind Checksum and Correction forNetwork Transmissions”的美国专利申请(代理卷号RPS920050076US1/3505P),与本发明同日提交并被转让给本发明的受让人。
题为“Method and System for Performing a Packet Header Lookup”的美国专利申请(代理卷号RPS920050082US1/3512P),与本发明同日提交并被转让给本发明的受让人。
题为“System and Method for Computing a Blind Checksum in a HostEthernet Adapter(HEA)”的美国专利申请(代理卷号RPS920050089US1/3516P),与本发明同日提交并被转让给本发明的受让人。
技术领域
本发明涉及计算机网络中的通信,并更具体地涉及在操作系统分区和计算机网络之间的通信。
背景技术
计算机系统通过建立和使用网络连接而在网络上彼此通信,所述网络连接使用诸如以太网的公知标准。典型地,在系统上运行的多个实体或过程可以各自独立地在网络上通信。为了帮助使能在对于系统的多个连接上的高效通信,提供了网络端口用于系统的输入和输出。例如,系统可包括网络适配器接口卡,其包括一个或多个到网络的物理端口。
某些计算机系统允许多个操作系统(OS)并行和独立运行。例如,IBM公司的某些服务器系统运行多个操作系统,这是通过在该服务器上在每个操作系统自己的分区中提供该操作系统。例如,Linux分区、AIX分区以及不同的Unix分区可以同时在服务器上运行。为了允许所有这些OS分区在网络上通信,可以使用不同的方法。在一种方法中,服务器的I/O托管分区必须处理在系统上运行的所有分区的通信需求。不过,这创建了到OS分区的较慢通信,因为多个分区通过单个I/O托管分区在网络上进行其I/O通信成为瓶颈,例如每个分区必须通过单个I/O托管分区转发和接收其数据,所述I/O托管分区包括连接于单个网络适配器的包转发器。
在另一配置中,为了允许较快通信,可以对同一机器上的每个OS分区提供网络适配器和物理网络端口。这样,例如,向五个不同OS分区的每个提供其自己的专用网络适配器和物理端口。不过,这种配置的费用可能变得过高,特别是当实现了较大数量的OS分区时。
使多个OS分区在系统上运行还需要:由系统接收以及由系统发送的信息被路由到所有适当的网络目的地,并且分区能够将信息发送到在同一服务器上运行的其它分区以及从所述其它分区接收信息。其它OS分区可能被指定为用于数据包的专用目的地,或者可以被包括在对于包的若干目的地的组中。例如,在以太网网络上的广播(BC)和多播(MC)网络功能允许多个目的地接收由特定系统或分区发送的信息。如果一个分区将广播信息发送到网络上的所有可用目的地,则系统上的所有其它OS分区需要接收该广播信息。
在现有系统中,通过使用若干可用方法中的任一种,向和从不同OS分区提供网络流量。在一种方法中,通过在服务器系统外部的路由器来实施层3路由,其中所有数据包被发送到系统外部,并被发送回系统中到达适当的OS分区。不过,由于花费较长时间的外部路径,此方法可能是低效的,并且可能不支持所有想要的功能,诸如层2协议支持。在另一方法中,可以在网络适配器上嵌入完全以太网交换机。该交换机在需要时在不同分区之间进行交换以向适当的目的地提供包。不过,此方法是昂贵的,因为以太网交换机在适配器上的现有电路的外部,并且还可能需要非标准的、定制特征和功能。
服务器系统的另一网络通信问题包括对数据包排队。传统上,提供单个队列来存储从操作系统发送出或者由操作系统接收的数据包,其中在操作系统的内核中的栈处理队列中的包。在某些其它系统中,可以使用其它类型的排队。不过,现有排队方法未解决具有多个分区的系统的需求,或者具有用户-空间队列以及OS内核队列二者的可能性。
因而,所需要的是一种用于与操作系统分区和计算机网络高效和廉价地进行通信的装置和方法,包括在具有有限数量的物理端口、可配置线速度、分配资源的高效方式以及不同类型的包队列的计算机系统上对多个OS分区的使用。本发明解决了这样的需求。
发明内容
本应用发明涉及计算机网络中的通信,以及在操作系统分区和计算机网络之间的通信。在本发明的一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置包括:至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信。包括了关联于所述至少一个物理端口的逻辑端口,其中每个逻辑端口关联于所述操作系统分区之一。每个逻辑端口使能在相关联的物理端口和相关联的操作系统分区之间的信息传送,以及允许所述系统的网络资源的可配置性。
在本发明的另一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的方法包括:在操作系统分区和至少一个关联于所述操作系统分区的逻辑端口之间传送信息。多个操作系统分区中的每一个可以与相关联的至少一个逻辑端口通信。所述方法还包括:在所述至少一个关联于所述操作系统分区的逻辑端口和关联于所述至少一个逻辑端口的至少一个物理端口之间传送信息,其中所述物理端口耦合于网络。
在本发明的另一方面中,一种用于在计算机系统上分布网络通信的方法包括:在所述计算机系统中的逻辑交换机处接收数据包,所述计算机系统运行多个操作系统分区。当来自所述计算机系统的一个操作系统分区的数据包中的信息指示出返转路径时,将所述数据包通过在所述计算机系统内部的硬件路径返转到所述计算机系统的另一个操作系统分区。当从操作系统分区接收的数据包中的信息指示出非返转路径时,将所述数据包发送到耦合于外部网络的物理端口,或者当从外部网络接收的数据包中的信息指示出非返转路径时,将所述数据包发送到操作系统分区。
在本发明的另一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置包括:至少一个耦合于外部网络的物理端口,所述物理端口允许所述外部网络与所述计算机系统之间的通信。所包括的逻辑端口的每个关联于所述操作系统分区之一。在所述计算机系统内部实现的逻辑交换机选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端口。
在本发明的另一方面中,一种用于提供用于计算机系统的网络通信的装置包括:至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信。包括了多个连接队列,用于存储将从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包,其中每个连接队列关联于所述至少一个过程之一和所述网络之间的不同的网络连接。还包括了默认操作系统队列,用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包。
在本发明的另一方面中,一种用于提供用于计算机系统的网络通信的方法包括:在网络适配器处接收数据包。所述数据包被存储在连接队列中,其中所述连接队列存储将经由相关联的网络连接从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包。如果无法找到对于所述数据包的网络连接,则将所述数据包存储在默认操作系统队列中,其中所述默认操作系统队列存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包。
本发明允许对于在服务器系统上提供的多个操作系统(OS)分区的快速和高效通信。通过使用对软件透明的本发明的网络适配器,可以实现如同每个分区具有其自己的专用以太网适配器那样的相同性能,而不必非要为每个分区提供适配器,以及使用标准适配器硬件。本发明的逻辑交换机允许所有类型的数据包(包括单播、广播和多播包)被高效提供给网络和OS分区,并且本发明的包队列允许例如在具有多个OS分区的系统中支持多种类型的排队。本发明提供了一种虚拟化以太网或类似网络、分配资源以及配置线速度和其它资源的高效方式。
附图说明
图1是适于与本发明一起使用的系统的示例的框图;
图2是由图1所示的适配器实现的、被提供用于使用的本发明的逻辑端口系统的图示;
图3是包括逻辑交换机的本发明的通信系统的框图;
图4是说明了用于向和从计算机系统上的多个操作系统分区发送包的方法的流程图;
图5是说明了用于管理在或从计算机系统中分发的多播或广播包的本发明的方法的流程图;
图6是包括逻辑交换机的本发明的通信系统的框图;
图7是包括逻辑交换机的本发明的通信系统的框图;
图8是包括逻辑交换机的本发明的通信系统的框图;
图9是用于给网络包排队的本发明的排队系统的图示;以及
图10是说明用于选择用于包存储的队列的本发明的方法的流程图。
具体实施方式
本发明涉及计算机网络中的通信,并更具体地涉及在操作系统分区和计算机网络之间的通信。所呈现的以下描述使得本领域技术人员能够制造和使用本发明,并且在专利申请及其要求的上下文中提供以下描述。这里描述的一般原理和特征以及对优选实施例的各种修改对于本领域技术人员将显而易见。因此,本发明并未意在被限制为所示出的实施例,而是将符合与这里描述的原理和特征相一致的最广泛范围。
本发明主要根据在特定实现中提供的系统来描述。不过,本领域普通技术人员将容易地认识到,此方法和系统将在其它实现中有效工作。例如,可与本发明一起使用的系统体系结构和网络配置可以采用多种不同形式。本发明还将在具有特定步骤的特定方法的上下文中描述。不过,所述方法和系统可以有效工作于具有与本发明不一致的不同的和/或额外的步骤的其它方法。
为了更具体地描述本发明的特征,请结合以下讨论来参考图1至10。在IEEE 802.3以太网网络协议和传输控制协议/因特网协议(TCP/IP)客户端-服务器系统的上下文中描述了本发明。其它协议(诸如用户数据报协议(UDP))和配置可以在其它实施例中使用(例如UDP 5元组可以被映射到队列)。
图1是适于与本发明一起使用的系统10的框图。系统10是计算机系统,诸如服务器、大型机、台式客户端计算机、工作站、或其它计算机或电子设备。在此处所述的实施例中,系统10一般被称为服务器系统。如所公知的,在系统10中提供一个或多个微处理器、存储器(RAM和/或ROM)以及其它组件。
在所述实施例中,服务器系统10可以经由网络连接14与多种其它计算机系统12通信。计算机系统12可以是服务器、客户端机器、或其它计算机或电子设备。例如,服务器系统10可以使用连网协议(诸如以太网、TCP/IP、和/或其它类型的协议)与计算机系统12通信。
对于此处所述的若干实施例,服务器系统10包括多个操作系统(OS)分区16。操作系统可以在每个分区16中独立运行。例如,操作系统(诸如Unix、Linux、IBM公司的AIX、微软公司的Windows、苹果计算机公司的MacOS、或者其它操作系统)可以各自在分区16中运行,并且某种类型的OS的多个实例可以在独立分区16中运行。
每个OS分区16可以在网络14上发送和接收信息,并且可以充当数据包在网络上的源和/或目的地。例如,在分区16中运行的OS可以在“用户空间”中提供服务器应用或过程,例如将网页数据提供给计算机系统12和/或提供由一个或多个计算机系统12所提交的数据库数据或过程数据的web服务器应用。
每个活动分区16通过网络适配器20向/从网络14发送和接收数据。适配器20处理向适当的OS分区16提供在网络上从计算机系统12接收的数据包。网络适配器20也从OS分区16接收包,并控制向适当的目的地发送该信息,所述目的地是网络14上的计算机系统12或者是另一OS分区16。网络适配器提供将进入数据流的适当数据发送到不同OS分区的多路分解功能。网络适配器20可以是硬件接口适配器,其提供一个或多个物理端口22作为到网络14的硬件连接。适配器20可以包括硬件逻辑、微处理器、存储器(RAM和/或ROM)、和/或实施本发明功能的其它适当组件,如下文更详细描述的。适配器20可以作为被插入服务器系统并可从中移除的独立卡而提供,或者可以被并入其它服务器系统组件中。在其它实施例中,适配器20的功能可以用软件、或用硬件和软件的组合来实施。
如在整个本说明书中所描述的、可以与本发明的特征一起使用的系统组件的示例可以在2005年4月1日提交的、题为“Host Ethernet Adapterfor a Networking Offload in a Server Environment”(RPS 9 2005 0059US1/3485)的共同待决的有关于多路分解的专利申请中找到和描述,在此通过参考将其整体引入。
图2是由图1所示的适配器20实现的、被提供用于使用的本发明的逻辑端口系统50的图示。在系统10中实现OS分区16,如参考图1所描述的。在图2的示例中,有32个可用OS分区。
在图2中示出两个逻辑端口58的组54和56。本发明的逻辑端口58是系统10上的OS分区16到物理端口22的映射。在图2的示例中,五个物理端口22a、22b、22c、22d和22e在网络适配器20上可用。这些物理端口优选地可以关于多少带宽可被分配给它们中的每个而进行配置。在图2的示例中,四个物理端口22a-d各自已经被分配了1吉比特/秒,而物理端口22e已经被分配了10吉比特/秒。在其它实施例中可以使用其它分配;优选地,终端用户能够在需要时在网络适配器20的物理限制之内配置带宽分配。
每个逻辑端口58将物理端口22映射到OS分区16之一,从而相关联的OS分区“拥有”该特定逻辑端口。在所示的示例中,逻辑端口58a将分区16a中的OS 2映射到物理端口22a,逻辑端口58b将分区16b中的OS 4映射到物理端口22a,等等。如所示,多个逻辑端口58可以将单个OS分区16映射到一个或多个物理端口。因此,总共三个逻辑端口58被示出将OS 4映射到总共四个物理端口22。每个物理端口和被分配给该物理端口的逻辑端口由逻辑交换机进行选择,下文参考图3描述。每个逻辑端口可以在逻辑交换机上具有独立的端口。
从在每个OS分区16上运行的OS的视角看来,该OS获得对可用物理端口22的独占使用。逻辑端口58被建立以对OS分区透明,使得OS分区不知道逻辑端口的虚拟化和组织,即,每个OS分区将其所分配的每个逻辑端口看成物理端口(对于OS,逻辑端口看上去不是特别像物理端口结构)。OS例如看到关联于每个逻辑端口的队列(参考图9描述),并且与关联于每个逻辑端口的资源相交互。
逻辑端口58可以被组织为端口组,诸如端口组54和56。每个端口组中的逻辑端口被分配给它们可以引用的物理端口的特定集合;这些物理端口也被认为是在该端口组中。例如,端口组54中的逻辑端口58可以被分配给物理端口22a-d,而不是物理端口22e。同样,端口组56中的逻辑端口58可以被分配给物理端口22e,而不是物理端口22a-d。
每个端口组54或56被指定具有N个可用逻辑端口,所述端口组是系统管理器在配置系统时可以按需要命令进行分配的资源池。每个逻辑端口可以被分配给该端口组中的任意物理端口。这允许用户、系统管理员或程序按照需要配置每个端口组中的资源,诸如将带宽分布到端口组中的物理端口、对分区访问的分布等等。系统约束(存储器等)可限制每个端口组中的逻辑端口的数量;例如,在图2的示例中,每个端口组可被限于13个逻辑端口。
端口组54或56的使用允许为每个端口组分配大致相同的固定数量的资源使用,诸如带宽。例如,端口组54(其可以具有四个1吉比特的物理端口)可以被限于与端口组56(其具有一个10吉比特的物理端口)大致相同的带宽资源。(其它因素也可以对于管理资源分配起作用,诸如用于更多数量的物理端口(例如多于四个1吉比特的物理端口)所需的I/O引脚的数量。)在每个较小带宽的物理端口(例如1吉比特)上的网络吞吐量优选地不会与较大带宽的端口(例如10吉比特)上的吞吐量被共享同样多,以减少在物理端口处的瓶颈。因此,在图2的示例中,在准备将OS带宽使用分布在所有四个物理端口22a-d之中时,每个1吉比特的端口22a-d被分配来处理最多五个OS分区。相对地,单个10吉比特的端口22e在端口组56中的所有13个逻辑端口58之间共享带宽。
每个逻辑端口58可以被分配一个标识值或指示,从而进入包可以被分配给逻辑端口。例如,一实施例可以向每个逻辑端口58分配不同的媒体访问控制(MAC)地址以标识逻辑端口。MAC地址是唯一地标识网络中的节点的硬件地址。由此,到达物理端口的每个包被分配给下述逻辑端口,该逻辑端口具有的MAC地址匹配于该包中的目的地(DA)MAC地址。
每个逻辑端口还可以与默认逻辑端口队列相关联,并使得用于传送和接收操作的过程排队。这在下文参考图9和10更详细描述。
每个逻辑端口58优选地具有其自己的关联资源集合以及通常关联于每个物理端口22的配置参数。这些资源和配置参数允许每个逻辑端口实施功能,就如同它是物理端口那样。例如,每个逻辑端口58可以具有其自己的管理信息库(MIB)计数器的集合,所述计数器对由该逻辑端口所传送和接收的包和字节的数量、在该逻辑端口处检测到的每种类型的错误的数量等等进行计数。每个逻辑端口可以具有其自己的过滤表,这允许每个逻辑端口独立地实施过滤过程,诸如使用针对每个逻辑端口的独立准则基于包类型或者虚拟局域网(VLAN)类型等过滤某些类型的包;和/或过滤多播地址。其它过滤配置包括:用于过滤以太网的“SNAP”帧、“JUMBO”(大型)帧、或用于包的其它帧格式的准则。配置可以包括VLAN提取配置,其允许从进入包的帧中提取VLAN标志。此外,配置可以被设置为针对于可以在找到检查和错误(例如针对IP或TCP协议)时采取的动作,诸如允许包通过,或者在没有发现错误的情况下不采取动作。同样,配置资源可以包括对本发明的其它特征的使能设置,诸如预连接排队(下文参考图9描述)。
逻辑端口58允许多个OS分区共享可以在单个网络适配器20上提供的单个物理端口22集合。通过本发明,潜在大量的OS分区(例如25个)可以在使用数量少得多的物理端口(例如5个)之时全部访问网络。另一优点是端口组的可配置性,从而一个组的端口可以在物理级被设置于例如1×10G或4×1G的带宽,而不会影响逻辑或级别视图。因此,当物理端口带宽分配改变时,端口的OS分区视图不需要改变。此外,OS分区可以被分配逻辑端口,其可以出于更高效率和速度被分布,以便分布带宽,即,每个端口组被限于大致相同的带宽总数,从而允许快速通信,而无需为每个OS分区提供专用网络适配器和物理端口。
图3是包括逻辑交换机的本发明的通信系统100的框图。OS分区16在服务器系统10上提供,并被逻辑端口58映射到端口组102。物理端口22也被包括在端口组102中。
逻辑端口58通过逻辑交换机104连接于相关联的物理端口22。这些逻辑交换机是优选地在网络适配器20中用硬件实现的逻辑交换机,并且确定用于由OS分区16发送和接收的包的路径。逻辑端口和物理端口全部成为连接到逻辑交换机的虚拟端口,其中逻辑交换机可以交换到这些虚拟端口中的任一个,以通过该端口发送数据或从该端口接收数据。
如图3所示,逻辑交换机104可以被提供用于网络适配器的每个物理端口22,并且将该物理端口链接到关联于该物理端口22的逻辑端口58。因此,物理端口105关联于逻辑交换机108,逻辑交换机108连接到逻辑端口109a-c和分区112、114和116。同样地,物理端口106关联于逻辑交换机110,逻辑交换机110连接到逻辑端口111a-c和分区118、120和122。
外部交换机124可以耦合于物理端口22,以在网络14和物理端口之间进行接口。此交换机是典型在网络适配器20和系统10外部的硬件组件。例如,外部交换机124可以将进入包路由到适当的物理端口(例如,其保持目的地MAC地址到端口的表),以及可以将从所有物理端口输出的包路由到网络14。外部交换机124可以是层2或层3外部交换机,或者处理这两层。
逻辑交换机104不仅可以将进入包发送到正确的OS分区16以及将外出包从OS分区16发送到相关联的物理端口,而且可以将适当的包从一个OS分区16发送到同一服务器系统10中的一个或多个其它OS分区16。当一个包将在内部从一个OS分区被发送到另一OS分区时,在此被称为“返转(wrap)”路径,这指示出该包在服务器中返转。“非返转”路径是其中在OS分区和外部网络14之间传送包的路径。因此,逻辑交换机104可以在服务器系统10和外部网络之间路由包,如路径128所指示的;在位于同一逻辑交换机104的两个OS分区之间路由包,如路径130所指示的;以及在位于不同逻辑交换机的两个OS分区之间路由包,如路径132所指示的。路径132示出了两个逻辑交换机18之间的路径可以通过适当的物理端口22以及通过外部交换机124。
图4是说明了用于向和从服务器系统上的多个OS分区发送包的方法200的流程图。此过程是当网络适配器20获得来自OS分区16、通过物理端口22来自网络14、或者来自多播/广播管理器(以下描述)的信息包时来自网络适配器20的视角。因此,过程200描述了被传送到网络的包以及从网络接收的包。本领域普通技术人员将理解,此过程可以被分为两个不同过程,一个用于将包传送到网络14,以及一个用于从网络和返转路径接收包。所述方法优选地用硬件实现,诸如逻辑电路和门、处理器等,但可替换地可以用软件或软件和硬件的组合来实现。
所述方法开始于202,并且在步骤204中,在网络适配器20处获得包。在一种情形中,包从OS分区16或服务器系统的多播/广播管理器(以下描述)获得,用于跨网络14进行传送或传送到另一OS分区16。在另一种情形中,包通过网络适配器的物理端口22经由网络14从计算机系统12或其它设备获得(接收)。
在步骤206,所述过程检查与所接收的包一起获得的包控制描述符,以确定包的状态。在所述实施例中,包控制描述符可以具有三个可能值之一,其中每个值指示出包的不同状态。一个值指示出包具有“正常”状态,即,所述包尚未被修改用于与本发明一起使用。这一类包被OS分区16正常发送出或在网络14上被发送/接收。第二值指示出该包具有“挤出(forceout)”状态,即,所述包已经被修改用于与本发明一起使用(如图5中详细描述的),以便自动被发送出网络适配器的物理端口22。第三值指示出该包具有“再循环(recirculate)”状态,即,所述包已经被修改(如图5中详细描述的),以便自动被返转到服务器系统10中的OS分区16。
在步骤208,所述过程确定所述包是具有正常状态还是非正常状态。如果所述包是正常包,则所述过程继续到步骤210,其中所述过程检查所述包是单播(UC)包还是多播(MC)/广播(BC)包。如所公知的,单播包具有单个指定目的地,多播包具有多个指定目的地,而广播包将被发送到所有可用目的地。如果所述包是UC包,则所述过程继续到步骤212,其中所述过程检查所述包的目的地(DA)MAC地址是否指示出所述包是应该被发送到内部目的地,诸如服务器10的OS分区16,还是应该经由物理端口22被传送出网络。所述包的目的地可以从该MAC地址确定。系统10的每个逻辑端口58已经被分配了MAC地址;因此,在经由物理端口22从网络接收到包时,将所获得的包的DA MAC与关联于接收了该包的物理端口的逻辑交换机的每个逻辑端口的每个MAC进行比较。
如果所述包将被发送到内部目的地,则所述过程继续到步骤214,其中所述包例如在内部被发送到位于下述逻辑端口的OS分区16,所述逻辑端口具有在所述包中发现的目的地地址MAC。如上所述,目的地MAC地址被用于找到具有被映射到所想要的OS分区的相同MAC地址的逻辑端口58。当所述包处在返转路径上时,即,它从OS分区或MC/BC管理器获得,并被发送到不同的OS分区,则所述包被注入网络适配器20的接收端多路分解逻辑,就好像所述包立即从网络和物理端口接收到一样。接着所述过程在218完成。
如果在步骤212所述包未在内部被发送,即,所述包将在网络上进行传送,则在步骤216,所述包从适当的物理端口22输出,以在网络14上被发送到目的地。如上所述,所述包通过关联于下述端口组的物理端口22被发送出,所述端口组包括在步骤204从其获得所述包的OS分区的逻辑端口。接着所述过程在218完成。
如果在步骤210发现所述包是多播或广播(MC/BC)包,则所述过程继续到步骤220,其中所述包从网络适配器20发送到服务器系统10的内部MC/BC管理器。如果在步骤204 OS分区16提供包,则所述包在返转路径上被发送到网络适配器20的接收端多路分解逻辑,就好像所述包立即从网络接收到,并跟随到MC/BC管理器的多路分解流。所述过程接着在218完成。MC/BC管理器可以是在服务器系统10上提供的软件过程,并且可以比使用硬件更慢,但是由于MC或BC包典型地只占所有网络流量的很小百分比,所以这不会显著降低系统性能。下文参考图5描述了MC/BC管理器当接收包时的过程。
如果在步骤208发现所接收的包不具有正常状态,则所述包从MC/BC管理器获得。MC/BC管理器已经修改了在步骤220的之前迭代中被发送到它的包的状态,这是通过修改所述包的包控制描述符,或者MC/BC管理器已经创建了具有非正常状态的复制包,如下文参考图5描述的。所述过程200在步骤222检查所述包控制描述符,以确定所接收的非正常包具有“挤出”状态还是“再循环”状态。如果所述包是挤出包,则所述过程继续到步骤224,其中所述包经由物理端口被传送出到网络14,以被发送到由其多播/广播MAC地址所指示的目的地,即,此包已被MC/BC管理器指定发送到外部。接着所述过程在218完成。
如果在步骤222所述包是再循环包,则所述过程继续到步骤226,其中所述包被发送到由伴随所述包的目的地标志所指示的内部逻辑端口(所述标志优选地与包分离)。所述标志和包控制描述符与被返转的包一起沿着内部返转路径被传递到接收端多路分解逻辑。所述目的地标志被MC/BC管理器添加到所述包,以提供指向所述包将被路由到的内部逻辑端口58的指针,并且由此适配器20在此步骤中忽略所述包的DA MAC地址,并将所述包路由到位于在所述标志中指定的逻辑端口的OS分区。接着所述过程在218完成。在本发明中对目的地标志的使用允许所述包的初始DAMAC地址在包中保持未修改,从而允许所述包的DA MAC地址被需要它的任意其它之后的网络过程所使用,这是当前实现的重要优点。
图5是说明了用于管理在或从服务器系统10中分发的多播或广播包的本发明的方法250的流程图。此方法优选地由MC/BC管理器(图7中示出)实施,其由服务器系统10的软件实现,并且其可以与网络适配器20进行接口。
所述方法在252开始,并且在步骤254中,MC/BC包由MC/BC管理器从网络适配器20接收。在图4的方法200的步骤220中由适配器将MC/BC包发送到管理器。多播或广播包具有指示出该包的该MC或BC状态的MAC地址。在步骤256,所述过程检查此包是否将被返转到MC/BC管理器驻留在其中的系统10的OS分区16。由于MC或BC包将被发送到多个目的地,管理器可以检查所有的目的地。在此确定中,MC/BC管理器检查任何其余的OS分区是否需要接收所述包或者最初接收的包的副本。广播包将总是需要被返转以及在网络14上从物理端口输出到可用目的地;按照需要,返转或外部传送均可以被首先实施(被复制的包将最终被发送到所有目的地,如下所述)。取决于由多播MAC提供的指定目的地(MC目的地通过使用所维护的针对具体MC地址进行登记的分区的数据库来确定),多播包可能需要被返转到一个或多个内部OS分区,和/或被传送到外部目的地。
如果管理器所接收的包由OS分区16在内部发出,则管理器将总是把包发送出以被传送到网络。适配器20的传送端逻辑将包提供给管理器。管理器通过比较所述包的源MAC以及系统10的内部MAC并找到匹配而知道所述包在内部发出;在此情形中,所述管理器将总是把包发送出物理端口,并且该包的特定外部目的地稍后被确定(例如,通过外部交换机;管理器在系统10内部,并且不知道哪些特定的外部目的地应该接收多播包)。不过,如果管理器并未将所述包的源MAC匹配于系统10的内部MAC之一,则它知道所述包从网络14接收,并通过适配器20的接收端多路分解逻辑,并且它将不会发送出任何包以被传送到外部网络。
如果对于此包的拷贝将不实施返转,则所述过程继续到步骤258,其中管理器通过把适当值写入所述包的包控制描述符中而将包的状态设为“挤出”。接着所述过程继续到步骤260,其中管理器将所述包发送到网络适配器20。如上所述,在方法200的步骤204网络适配器接收包,并且将其发送出物理端口22。
如果对于此包将实施返转,则所述过程继续到步骤262,其中管理器通过把适当值写入所述包的包控制描述符中而将包的状态设为“再循环”。此外,管理器添加再循环标志以伴随所述包,其中所述标志包括对所述包将被发送到的逻辑端口的指定。这允许网络适配器20通过读取不同于MAC地址的信息而将再循环包路由到逻辑端口,从而允许所述包的初始多播MAC地址保持为未修改。接着所述过程继续到步骤260,其中管理器将所述包(以及标志)发送到网络适配器20。
在步骤258或步骤262之后,步骤264被实施,其中所述过程检查是否存在要发送的包的另一拷贝。由于多播和广播包将被发送到多个目的地,MC/BC管理器确定哪些目的地被指定,并且在此步骤检查是否存在任何目的地尚未被发送包的副本。如果存在要发送的另一个包,则在步骤266,管理器复制初始接收的包,并且所述过程返回步骤256,以便在将已复制包发送到网络适配器20用于正确路由之前相应地修改已复制包。如果在步骤264不存在需要被发送的任何复制包,则所述过程在268完成。在所述实施例中,MC/BC管理器不需要复制挤出包,因为外部交换机124可以复制将在网络上被发送到外部目的地的包。
应该注意,在其它实施例中,所述步骤可以用不同于在过程250中所示出的顺序来实施。例如,管理器可以创建所接收包的副本,并在缓冲器中保持所有已复制包,直到所有包都经由步骤258和/或262进行准备为止,并且接着在类似于步骤260的步骤中将它们全部立刻发送到网络适配器。
图6是说明了如上参考图4所述的单播(UC)包流的本发明的系统300的框图。被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。OS分区308、310和312耦合于逻辑端口304a-c。在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上。例如,分区308可以具有MAC地址11以及TCP/IP地址9.1.1.1,分区310可以具有MAC地址12以及TCP/IP地址9.1.1.2,分区312可以具有MAC地址13以及TCP/IP地址9.1.1.3,计算机系统324可以具有MAC地址31以及TCP/IP地址9.1.1.13,以及计算机系统326可以具有MAC地址41以及TCP/IP地址9.1.1.14。
在返转由OS分区传送的包的示例中,分区308在路径318上发送出正常的单播包,并且所述包一旦由网络适配器20的逻辑交换机302接收就进行UC目的地MAC地址查找过程212a。在以上图4的步骤212中描述了UC MAC查找。MAC查找指示出所述包应该被返转,于是所述包被逻辑交换机发送,以在路径318上继续到达目的地,所述目的地是经由逻辑端口304b到达的OS分区310。如果分区310发出具有目的地为分区308的正常单播包,则在反方向将发生类似过程。
在非返转包传送或接收的不同示例中,分区312在路径320上发送出正常UC包,并且所述包一旦由逻辑交换机302接收就类似地进行UC目的地MAC地址查找过程212b。MAC查找指示出所述包应该被发送出外部,于是逻辑交换机在路径320上将所述包发送通过物理端口306、通过外部交换机322、以及到达目的地计算机系统324。如果计算机系统324发出由网络适配器20通过物理端口306接收的正常单播包,则在反方向将发生类似过程;所述包将进行位于逻辑交换机的DA MAC查找,并通过逻辑端口被提供给其目的地,例如通过逻辑端口304c到达分区312。
图7是说明了如上参考图4和5所述的多播/广播(MC/BC)包外出流(传送)的本发明的系统350的框图。被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。OS分区308、310和312耦合于逻辑端口304a-c。在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上,类似于以上对于图6所描述的那样。
在此示例中,包的外出流从OS分区提供给其它目的地。分区308在路径352上发送出正常的MC或BC包,并且所述包一旦由逻辑交换机302接收就进行MC目的地MAC地址检查210a,如以上图4的步骤210中描述的。MAC检查指示出所述包为MC或BC包,于是所述包在路径352上被发送到在服务器系统10中实现的MC/BC管理器354。
MC/BC管理器354确定所述包的目的地,产生复制包,改变包描述符,以及添加再循环标志,如上文参考图5所描述的。在此示例中,管理器354已确定所述包是具有三个目的地的MC包,并且四个包将被发送出去:两个返转到OS分区,两个发送到外部目的地。因此,管理器354在路径358上发送出再循环MC包以及再循环标志356到适配器20,所述适配器20读取标志356以找到逻辑端口304c,并将所述包返转到分区312。类似地,管理器354在路径362上发送出再循环MC包以及再循环标志360到适配器20,所述适配器20读取标志360以找到逻辑端口304b,并将所述包返转到分区310。管理器354还在路径364上发送出挤出MC包到适配器20,所述适配器20将这些包发送出物理端口306并通过外部交换机322。外部交换机322复制所述包,从而通过网络14所述包的副本之一被提供给外部计算机系统324,另一副本被提供给外部计算机系统326。
图8是说明了如上参考图4和5所述的多播/广播(MC/BC)包进入流(接收)的本发明的系统370的框图。被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。OS分区308、310和312耦合于逻辑端口304a-c。与上文类似,在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上。
在此示例中,来自外部目的地(诸如计算机系统326)的包的进入流被提供给内部OS分区。计算机系统326在路径372上发送出正常的MC或BC包,并且在适当时外部交换机322将所述包的一个拷贝发送到网络14上的其它目的地,诸如外部计算机系统324。交换机322将另一个包拷贝通过物理端口306发送到系统10,并且所述包在路径374上被路由到逻辑交换机。所述包一旦由逻辑交换机302接收就进行MC目的地MAC地址检查210a,如以上图4的步骤210中描述的。MAC检查指示出所述包为MC或BC包,于是所述包在路径374上被发送到MC/BC管理器354。
MC/BC管理器354确定所述包的目的地,产生复制包,改变包描述符,以及添加再循环标志,如上参考图5所描述的。在此示例中,管理器354已确定所述包是具有三个内部目的地的MC包,并且该三个包将被发送到内部OS分区。因此,管理器354在路径378上发送出再循环MC包以及再循环标志376到适配器20,所述适配器20读取标志376以找到逻辑端口304c,并将所述包返转到分区312(从管理器354到内部OS分区的路径也被称为“返转”)。类似地,管理器354在路径382上发送出再循环MC包以及再循环标志380,其被返转到逻辑端口304b以及分区310,以及管理器354在路径386上发送出再循环MC包以及再循环标志384,其被返转到逻辑端口304a以及分区308。
图9是用于给网络包排队的本发明的排队系统400的图示。服务器系统10可以包括队列集合,其用于保有将由OS分区内核接收、或者直接由每个OS分区的用户空间中的应用/过程接收的包,以及用于保有将由分区或用户空间过程传送到物理端口22的包。下述队列可以在系统10的主存储器中实现,其可以由网络适配器20访问以在队列中存储包,以及由协议栈和设备驱动程序访问以从队列中检索包。
在系统400中包括的第一类队列是连接队列402。这些队列提供用于被发送到在服务器系统的用户空间中的过程404的包的缓冲区,以及从过程404通过网络发送到目的地(诸如其它过程、OS分区或外部计算机系统)的包的缓冲区。用户空间是提供下述过程的OS分区中的软件空间,在所述过程中应用运行,并且应用通过网络连接与网络14通信。典型在OS的内核中运行的某些或全部TCP/IP栈被迁移到每个用户空间,并且具有其自己的连接队列。这允许高效率,因为对于许多TCP/IP发送和接收操作,内核可以被绕过。到用户空间中的过程/应用404的每个网络连接具有其自己的用于存储包的连接队列402。例如,当接收到TCP/IP包时,TCP/IP栈过程可以在连接直接表中查找连接信息,以找到连接队列号,从而所接收的包可以被放置在适当的连接队列中并最终由所述栈处理。从队列中的包处理的信息被发送到用户空间中的过程(例如每个过程中的应用)。所接收的包被网络适配器20中的硬件指引到正确的队列(在2005年4月1日提交的题为“Host Ethernet Adapter for a Networking Offload in aServer Environment”(RPS 9 2005 0059 US1/3485)的相关专利申请中描述),并且接着用户空间中的TCP栈接管了对访问队列的控制。
在一个示例中,连接队列可以最佳地适于长时间连接,其中不期望出现IP包的碎片,并且期望低等待时间。用户空间应用或过程可以利用用户-空间套接字库(user-space socket library),其支持由网络适配器10提供的连接排队机制。
在系统400中包括的第二类队列是默认逻辑端口(LP)队列406。这些队列提供用于被发送到服务器系统10的OS分区16的内核408的包的缓冲区。向每个OS分区16提供其自己的默认LP队列406,从而每个默认LP队列可以关联于与期望的OS分区相关联的单个逻辑端口58。因此,每个逻辑端口通过其自己的默认队列对应于逻辑以太网接口。典型地,默认LP队列中的包被相关联的操作系统的内核408所处理,即,操作系统的内核连网栈处理用于该操作系统的默认队列406。在本发明中,如果对于包的MAC地址未使能预连接查找(预连接查找使能可以是可由系统管理器或操作者配置的逻辑端口配置资源之一),或者如果包为再循环多播/广播包,则当对于包无法找到连接队列402时,默认LP队列406存储所述包,如下文参考图10更详细描述的。
默认LP队列406(以及下述的特殊默认队列410)中的每一个可以被分配属性,类似于上文参考图2描述的、逻辑端口58可以被分配属性的方式。例如,对每个队列的过滤可以被使能或禁用。属性可以具有相同格式,用以进行配置以允许更容易的包管理。由于所述配置在队列类型之间相同,还可以共享某种硬件逻辑。
在系统400中包括的第三类队列是特殊默认队列410。这些队列被用于存储未被存储在其它可用队列中的包。在本发明中,提供了三种特殊默认队列:单播默认队列412、多播默认队列414、以及广播默认队列416。当针对包无法找到默认LP队列406时,单播默认队列412存储所述包。多播默认队列414以及广播默认队列416分别存储多播和广播包,所述包不匹配(位于网络适配器20的硬件中的)MAC查找表中的MAC地址之一,或者所述包是再循环的。这些在下文参考图10更详细描述。
以上列举的每类队列优选地关联于在网络适配器20上提供的每个物理端口。因此,每个物理端口优选地具有连接队列402的集合、关联于针对该物理端口的逻辑端口58的默认LP队列406的集合、以及特殊默认队列410的集合。
图10是说明用于选择用于包存储的队列的本发明的方法450的流程图。此方法由网络适配器20上的硬件所实现,针对从网络14中或在返转路径上接收的包。可替换地,其可以用软件和/或服务器系统10的不同组件来实现。
所述方法开始于452,并且在步骤454,由网络适配器从网络14中或经由内部返转路径接收包。在步骤456,所述过程检查其是否是再循环包,即,已经被MC/BC管理器354指定用于返转路径的包,如上文参考图4和5所描述的。再循环包已经被管理器处理,并由此可以被发送到其目的地;因此,如果所述包是再循环包,则所述过程继续到步骤470,以在默认LP队列中存储包,如下所述。如果所述包不是再循环包,则在步骤457所述过程检查所述包是单播(UC)包还是多播(MC)/广播(BC)包。这可以例如从所述包的MAC地址中确定。如果所述包是MC/BC包,则在步骤458所述过程分别在关联于接收了所述包的物理端口的特殊默认MC/BC队列414或416中存储包。所述过程接着在460完成。默认MC和BC队列414和416中的包最终被提供给MC/BC管理器354用于处理,如上文参考图5所描述的。如果所述包已经到达专用于单个OS分区的物理端口上,则MC和BC队列中的包可以被提供给中央OS队列,例如,用于该分区的默认LP队列406。
如果在步骤457确定所述包是UC包,则所述过程继续到步骤462,其中实施连接查找。(在一实现中,即使存储在连接队列中,也可以实施对逻辑端口的MAC地址查找,例如可以实施6元组查找,其中第6元组是逻辑端口号;这允许相同的5元组连接信息在每个逻辑端口58上出现且不会重叠。)在所述实施例中,适配器20上的硬件采用包中的连接信息的2元组、3元组或5元组模式,并且当连接成为可用或被建立时尝试将该模式与存储在连接表中的连接信息相匹配。所述方法的一实施例在2005年4月1日提交的题为“Method and Apparatus for Providing a NetworkConnection Table”(RPS920050061US1/3487)的共同待决的专利申请中描述,在此通过参考将其整体引入。
在下一步骤464,所述过程检查是否找到对于连接查找的匹配。例如,是否在连接表中找到匹配的连接信息模式。如果是,则所述过程在关联于匹配连接的连接队列中存储所述包。例如,引用所想要的连接队列的多个指针可以与匹配的连接信息一起被存储在连接表中。所述包可以最终从连接队列中进行处理,并被提供给适当的用户空间中的过程404。接着所述过程在460完成。
如果在步骤464未找到对于所述包的匹配模式(或者如果对于所述包中的MAC地址未使能预连接排队),则所述过程在步骤468检查是否找到对于所述包的默认LP队列。如上所述,每个逻辑端口58都具有相关联的默认LP队列406。通过实施在逻辑端口MAC地址(如上所述,每个逻辑包58被分配了MAC地址)的列表或表中对所述包的目的地MAC地址的查找,确定默认队列。因此,在此步骤中,如果逻辑端口的MAC地址匹配所述包中的目的地MAC地址,则在步骤470所述过程在该逻辑端口的默认LP队列406中存储包,并且所述过程在460完成。在默认LP队列406中的包被路由到关联于这些队列的OS分区16的内核连网栈。
如果没有找到对于所述包的默认LP队列406,则所述过程继续到步骤472,以在关联于接收了所述包的物理端口的特殊默认UC队列412中存储所述包(如果特殊队列412被使能的话),并且所述过程在460完成。一个包可能并非意在发送到系统10的逻辑端口58和MAC地址中的任一个,并因此该包将不会匹配已配置逻辑端口MAC地址中的任一个;因此,它可以被存储在默认队列412中。例如,如果系统处于“混杂模式(promiscuous mode)”或具有“检漏(sniffer)”功能,其中所传送的每个数据包可以被网络适配器接收和读取,例如以便监视网络活动,从而针对其它目的地的包以及意在发送到系统10的包都被分析,则上述内容可能出现。或者,如果由系统10实现网络桥接功能,其中网络14被连接到另一网络,并且每个包被分析以确定它是被传递到网络14中的目的地、还是被转发到已知在另一互连网络上的目的地,则上述内容可能出现。
默认UC队列412是可选的,从而在其它实施例中,或者如果队列412被禁用,则不实施步骤472;相反,如果没有找到对于所述包的默认LP队列,则所述包被丢弃。例如,如果“混杂模式”被禁用,则特殊队列412可能被禁用。
本发明的方法450允许两种极端情况之间的灵活性,即,对于每个连接排队以及对于每个逻辑端口排队(OS队列)。在本发明中,这两种模型可以与具有其自己的排队的某些连接以及通过默认逻辑端口队列进行排队的某些连接一起工作。方法450还提供了多个OS分区,并支持在分区之间的以太网的层2交换,包括多播/广播包(例如IEEE 802.3)。
尽管已经根据所示实施例描述了本发明,但是本领域普通技术人员将容易地认识到,将存在对实施例的变体,并且这些变体将落在本发明的精神和范围中。从而,本领域普通技术人员可以做出许多修改,而不会脱离权利要求的精神和范围。

Claims (28)

1.一种用于在计算机系统上分布网络通信的方法,所述方法包括:
在所述计算机系统中的逻辑交换机处接收数据包,所述计算机系统运行多个操作系统分区;
当来自所述计算机系统的一个操作系统分区的数据包中的信息指示出返转路径时,将所述数据包通过在所述计算机系统内部的硬件路径返转到所述计算机系统的另一个操作系统分区;以及
当从操作系统分区接收的数据包中的信息指示出非返转路径时,将所述数据包发送到耦合于外部网络的物理端口,或者当从外部网络接收的数据包中的信息指示出非返转路径时,将所述数据包发送到操作系统分区,
其中所述计算机系统包括至少一个耦合于外部网络的物理端口,以及其中每个操作系统分区具有用于发送和接收数据的一个或多个逻辑端口,从而所述逻辑端口和相关联的物理端口充当由逻辑交换机进行选择以通过其发送数据包的虚拟端口;
其中所述数据包中的信息包括目的地地址和包控制描述符。
2.根据权利要求1所述的方法,其中所述数据包是单播包、多播包和广播包中的一个。
3.根据权利要求2所述的方法,其中,如果所述数据包是单播包,则所述数据包的目的地地址被检查,以确定是将所述数据包发送到内部操作系统分区还是发送到外部网络上的目的地。
4.根据权利要求2所述的方法,其中,如果所述数据包是多播包或广播包,则将所述数据包发送到在所述计算机系统上实现的多播/广播管理器。
5.根据权利要求4所述的方法,其中所述多播/广播管理器对于所述数据包的任意额外目的地复制所述数据包,并且改变所述数据包和任意已复制数据包的包控制描述符以指示出它们已经由所述多播/广播管理器处理,并且将所述数据包和任意已复制数据包输出,从而它们被发送到所述 计算机系统和外部网络的适当目的地。
6.根据权利要求5所述的方法,其中,如果由所述多播/广播管理器接收的数据包将被发送到所述计算机系统的操作系统分区,则所述多播/广播管理器把指示出将把所述数据包发送到的具体操作系统分区的标志添加到所述数据包。
7.根据权利要求4所述的方法,其中,如果所接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是挤出包,则所述数据包被发送到所述外部网络上的目的地。
8.根据权利要求4所述的方法,其中,如果所接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是再循环包,则所述数据包被发送到如关联于所述数据包并由所述多播/广播管理器提供的标志所指示的所述计算机系统的操作系统分区。
9.一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置,所述装置包括:
至少一个耦合于外部网络的物理端口,所述物理端口允许所述外部网络与所述计算机系统之间的通信;
多个逻辑端口,其中每个逻辑端口关联于所述操作系统分区之一;以及
在所述计算机系统内部实现的逻辑交换机,其选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端口;其中,当所述逻辑交换机接收数据包时,当来自所述操作系统分区之一的数据包中的信息指示出返转路径时,所述逻辑交换机将所述数据包通过在所述计算机系统内部的硬件路径返转到另一个操作系统分区,以及其中,当来自操作系统分区的数据包中的信息指示出非返转路径时,所述逻辑交换机将所述数据包发送到外部网络上的目的地,或者当来自外部网络的数据包中的信息指示出非返转路径时,所述逻辑交换机将所述数据包发送到所述操作 系统分区之一;
其中所述数据包中的信息包括目的地地址和包控制描述符。
10.根据权利要求9所述的装置,其中所述数据包是单播包、多播包和广播包中的一个。
11.根据权利要求10所述的装置,其中,如果所述数据包是单播包,则所述逻辑交换机检查所述数据包的目的地地址,以确定是将所述数据包发送到操作系统分区还是发送到外部网络上的目的地。
12.根据权利要求10所述的装置,其中,如果所述数据包是多播包或广播包,则所述逻辑交换机将所述数据包发送到在所述计算机系统上实现的多播/广播管理器。
13.根据权利要求12所述的装置,其中所述多播/广播管理器对于所述数据包的任意额外目的地复制所述数据包,并且改变所述数据包和任意已复制数据包的包控制描述符以指示出它们已经由所述多播/广播管理器处理,并且将所述数据包和任意已复制数据包输出,从而它们被发送到所述计算机系统和外部网络的适当目的地。
14.根据权利要求13所述的装置,其中,如果由所述多播/广播管理器接收的数据包将被发送到所述计算机系统的操作系统分区,则所述多播/广播管理器把指示出将把所述数据包发送到的具体操作系统分区的标志添加到所述数据包。
15.根据权利要求12所述的装置,其中,如果由所述逻辑交换机接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是挤出包,则所述数据包被发送到所述外部网络上的目的地。
16.根据权利要求12所述的装置,其中,如果由所述逻辑交换机接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是再循环包,则所述数据包被发送到如关联于所述数据包并由所述多播/广播管理器提供的标志所指示的所述计算机系统的操作系统分区。 
17.一种用于提供用于计算机系统的网络通信的装置,所述装置包括:
至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信;
多个连接队列,用于存储将从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包,其中每个连接队列关联于所述至少一个过程之一和所述网络之间的不同的网络连接;
默认操作系统队列,用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包;以及
多个操作系统分区和关联于所述操作系统分区中的每个的逻辑端口,其中每个逻辑端口具有相关联的默认操作系统队列,从而存储在默认操作系统队列中的数据包将从相关联的操作系统分区的内核发送或由其接收;
其中,当无法找到对于数据包的网络连接时,所述默认操作系统队列存储该数据包。
18.根据权利要求17所述的装置,进一步包括在所述计算机系统内部实现的逻辑交换机,其选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端口。
19.根据权利要求17所述的装置,其中所述用户空间中的至少一个过程具有多个网络连接,并且由关联于这些网络连接的连接队列所服务。
20.根据权利要求17所述的装置,进一步包括特殊默认队列,用于存储未存储在所述连接队列或默认操作系统队列中的数据包。
21.根据权利要求17所述的装置,进一步包括特殊多播和广播默认队列,用于分别存储多播和广播数据包。
22.根据权利要求21所述的装置,其中所述多播和广播特殊默认队列中的数据包被提供给在所述计算机系统上实现的多播/广播管理器,其中所述多播/广播管理器复制所述数据包,并将所述数据包和复制数据包输出,以被发送到多个目的地。
23.一种用于提供用于计算机系统的网络通信的方法,所述方法包括:
在网络适配器处接收数据包; 
在多个连接队列中之一中存储所述数据包,所述连接队列用于存储将经由相关联的网络连接从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包;以及
如果无法找到对于所述数据包的网络连接,则将所述数据包存储在默认操作系统队列中,所述默认操作系统队列用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包,
其中所述计算机系统提供多个操作系统分区和关联于所述操作系统分区中的每个的逻辑端口,其中每个逻辑端口具有相关联的默认操作系统队列,从而存储在默认操作系统队列中的数据包将从相关联的操作系统分区的内核发送或由其接收。
24.根据权利要求23所述的方法,其中所述网络连接在所述至少一个过程和网络之间提供,其中所述计算机系统的至少一个物理端口耦合于所述网络,所述至少一个物理端口允许所述网络与所述计算机系统之间的通信。
25.根据权利要求23所述的方法,进一步包括:如果所述数据包无法存储在连接队列或默认操作系统队列中,则将所述数据包存储在特殊默认队列中。
26.根据权利要求23所述的方法,进一步包括:如果所述数据包是多播或广播包,则分别将所述数据包存储在特殊多播或广播默认队列中。
27.根据权利要求26所述的方法,其中所述多播和广播特殊默认队列中的数据包被提供给在所述计算机系统上实现的多播/广播管理器,其中所述多播/广播管理器复制所述数据包,并将所述数据包和复制数据包输出,以被发送到多个目的地。
28.根据权利要求26所述的方法,其中所述用户空间中的至少一个过程具有多个网络连接,并且由关联于这些网络连接的连接队列所服务。 
CN2006800110804A 2005-04-01 2006-03-15 用于操作系统分区的网络通信 Active CN101156408B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/097,051 2005-04-01
US11/097,051 US7697536B2 (en) 2005-04-01 2005-04-01 Network communications for operating system partitions
PCT/EP2006/060733 WO2006103168A1 (en) 2005-04-01 2006-03-15 Network communications for operating system partitions

Publications (2)

Publication Number Publication Date
CN101156408A CN101156408A (zh) 2008-04-02
CN101156408B true CN101156408B (zh) 2012-08-08

Family

ID=36572449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800110804A Active CN101156408B (zh) 2005-04-01 2006-03-15 用于操作系统分区的网络通信

Country Status (6)

Country Link
US (1) US7697536B2 (zh)
EP (2) EP1864465B1 (zh)
JP (1) JP4898781B2 (zh)
CN (1) CN101156408B (zh)
TW (1) TWI423038B (zh)
WO (1) WO2006103168A1 (zh)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US7822594B2 (en) * 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US7715428B2 (en) * 2007-01-31 2010-05-11 International Business Machines Corporation Multicore communication processing
US20080285551A1 (en) * 2007-05-18 2008-11-20 Shamsundar Ashok Method, Apparatus, and Computer Program Product for Implementing Bandwidth Capping at Logical Port Level for Shared Ethernet Port
US8392991B2 (en) * 2007-05-25 2013-03-05 New Jersey Institute Of Technology Proactive test-based differentiation method and system to mitigate low rate DoS attacks
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
JP5393686B2 (ja) 2007-09-26 2014-01-22 ニシラ, インコーポレイテッド ネットワークを管理する及び安全にするためのネットワークオペレーティングシステム
KR101480449B1 (ko) 2007-10-16 2015-01-12 엘지전자 주식회사 멀티미디어 기반 교통 및 여행 정보 메시지를 이용한 상세정보 제공방법 및 이를 수행하기 위한 단말기
US7752300B2 (en) * 2007-11-19 2010-07-06 International Business Machines Corporation Automatically determining management information base modules for a device
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
WO2010005430A1 (en) * 2008-07-08 2010-01-14 Hewlett-Packard Development Company, L.P. Adaptable external drive
US7853253B2 (en) * 2008-07-10 2010-12-14 Apple Inc. System and method of regulating data traffic between a client device and a server
US7908368B2 (en) * 2008-09-23 2011-03-15 International Business Machines Corporation Method and apparatus for redirecting data traffic based on external switch port status
US8201168B2 (en) * 2008-12-25 2012-06-12 Voltaire Ltd. Virtual input-output connections for machine virtualization
CA2756289C (en) 2009-04-01 2016-02-02 Nicira Networks, Inc. Method and apparatus for implementing and managing virtual switches
CN101714925B (zh) * 2009-11-09 2012-04-18 华为终端有限公司 通信设备端口管理方法和系统、管理设备和通信设备
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US8964528B2 (en) 2010-07-06 2015-02-24 Nicira, Inc. Method and apparatus for robust packet distribution among hierarchical managed switching elements
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US8958292B2 (en) 2010-07-06 2015-02-17 Nicira, Inc. Network control apparatus and method with port security controls
US10142218B2 (en) 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US20120182993A1 (en) * 2011-01-14 2012-07-19 International Business Machines Corporation Hypervisor application of service tags in a virtual networking environment
US9043452B2 (en) 2011-05-04 2015-05-26 Nicira, Inc. Network control apparatus and method for port isolation
US8588224B2 (en) * 2011-05-14 2013-11-19 International Business Machines Corporation Priority based flow control in a distributed fabric protocol (DFP) switching network architecture
US8635614B2 (en) * 2011-05-14 2014-01-21 International Business Machines Corporation Method for providing location independent dynamic port mirroring on distributed virtual switches
US9092492B2 (en) * 2011-05-24 2015-07-28 Avaya Inc. Social media identity discovery and mapping
US10091028B2 (en) 2011-08-17 2018-10-02 Nicira, Inc. Hierarchical controller clusters for interconnecting two or more logical datapath sets
EP3605969B1 (en) 2011-08-17 2021-05-26 Nicira Inc. Distributed logical l3 routing
US9137107B2 (en) 2011-10-25 2015-09-15 Nicira, Inc. Physical controllers for converting universal flows
US9178833B2 (en) 2011-10-25 2015-11-03 Nicira, Inc. Chassis controller
US9288104B2 (en) 2011-10-25 2016-03-15 Nicira, Inc. Chassis controllers for converting universal flows
US9203701B2 (en) 2011-10-25 2015-12-01 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
EP2748714B1 (en) 2011-11-15 2021-01-13 Nicira, Inc. Connection identifier assignment and source network address translation
JP5667552B2 (ja) * 2011-12-08 2015-02-12 株式会社日立製作所 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
EP2748706B1 (en) 2012-04-18 2020-01-22 Nicira Inc. Exchange of network state information between forwarding elements
CN102811172B (zh) * 2012-07-25 2018-09-04 南京中兴软件有限责任公司 基于虚拟端口映射的聚合链路调度方法和数据转发装置
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US9344349B2 (en) 2013-07-12 2016-05-17 Nicira, Inc. Tracing network packets by a cluster of network controllers
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9479457B2 (en) 2014-03-31 2016-10-25 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
US9703743B2 (en) * 2014-03-31 2017-07-11 Juniper Networks, Inc. PCIe-based host network accelerators (HNAS) for data center overlay network
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
CN106533822B (zh) * 2015-09-14 2020-06-09 中兴通讯股份有限公司 物理端口控制方法及装置
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US10243840B2 (en) 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10805239B2 (en) 2017-03-07 2020-10-13 Nicira, Inc. Visualization of path between logical network endpoints
US10637800B2 (en) 2017-06-30 2020-04-28 Nicira, Inc Replacement of logical network addresses with physical network addresses
US10681000B2 (en) 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US10735529B2 (en) 2017-12-07 2020-08-04 At&T Intellectual Property I, L.P. Operations control of network services
US10346608B2 (en) * 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
EP3611642B1 (en) * 2018-08-17 2020-08-12 Omron Corporation Method for operating an industrial pc device and industrial pc device
CN112930664B (zh) * 2018-12-05 2023-06-23 北京比特大陆科技有限公司 地址信息处理方法、装置、电子设备及存储介质
CN110995668B (zh) * 2019-11-19 2022-03-08 中国航空工业集团公司西安航空计算技术研究所 应用于arinc653操作系统分区间的fc网络通信装置及方法
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
JP7367873B2 (ja) * 2020-06-26 2023-10-24 日本電信電話株式会社 データノード、データノード管理方法、および、データノード管理プログラム
WO2022003909A1 (ja) * 2020-07-02 2022-01-06 日本電信電話株式会社 通信装置、通信装置制御システム、通信装置の制御方法およびプログラム
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
CN112073438B (zh) * 2020-10-10 2021-12-17 迈普通信技术股份有限公司 一种访问控制规则配置方法、装置、交换机及存储介质
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US12021893B2 (en) 2021-06-10 2024-06-25 Nxp B.V. Method for partitioning a plurality of devices in a communications system and a device therefor
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1070751A (zh) * 1991-09-18 1993-04-07 国际商业机器公司 多媒体信号处理器计算机系统
US5920705A (en) * 1996-01-31 1999-07-06 Nokia Ip, Inc. Method and apparatus for dynamically shifting between routing and switching packets in a transmission network
EP1508855A2 (en) * 2003-08-20 2005-02-23 Katana Technology, Inc. Method and apparatus for providing virtual computing services

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1724198A (en) * 1927-06-30 1929-08-13 Utica Products Inc Electric heater
US4825406A (en) * 1981-10-05 1989-04-25 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
US5172371A (en) * 1990-08-09 1992-12-15 At&T Bell Laboratories Growable switch
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
US5430842A (en) * 1992-05-29 1995-07-04 Hewlett-Packard Company Insertion of network data checksums by a network adapter
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
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
JPH098844A (ja) * 1995-06-16 1997-01-10 Hitachi Ltd 広域マルチキャスト通信方法
US5752078A (en) * 1995-07-10 1998-05-12 International Business Machines Corporation System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US5793954A (en) * 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US5983274A (en) * 1997-05-08 1999-11-09 Microsoft Corporation Creation and use of control information associated with packetized network data by protocol drivers and device drivers
US5991299A (en) * 1997-09-11 1999-11-23 3Com Corporation High speed header translation processing
US6041058A (en) * 1997-09-11 2000-03-21 3Com Corporation Hardware filtering method and apparatus
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6970419B1 (en) * 1998-08-07 2005-11-29 Nortel Networks Limited Method and apparatus for preserving frame ordering across aggregated links between source and destination nodes
US6650640B1 (en) * 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
US6400730B1 (en) * 1999-03-10 2002-06-04 Nishan Systems, Inc. Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network
US6937574B1 (en) * 1999-03-16 2005-08-30 Nortel Networks Limited Virtual private networks and methods for their operation
GB2352360B (en) * 1999-07-20 2003-09-17 Sony Uk Ltd Network terminator
US6427169B1 (en) * 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US6404752B1 (en) * 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6724769B1 (en) * 1999-09-23 2004-04-20 Advanced Micro Devices, Inc. Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
US6822968B1 (en) * 1999-12-29 2004-11-23 Advanced Micro Devices, Inc. Method and apparatus for accounting for delays caused by logic in a network interface by integrating logic into a media access controller
US7308006B1 (en) * 2000-02-11 2007-12-11 Lucent Technologies Inc. Propagation and detection of faults in a multiplexed communication system
US6988235B2 (en) 2000-03-02 2006-01-17 Agere Systems Inc. Checksum engine and a method of operation thereof
US6795870B1 (en) * 2000-04-13 2004-09-21 International Business Machines Corporation Method and system for network processor scheduler
US6735670B1 (en) * 2000-05-12 2004-05-11 3Com Corporation Forwarding table incorporating hash table and content addressable memory
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
US6678746B1 (en) * 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
CA2415888C (en) * 2000-08-04 2008-10-21 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7218632B1 (en) * 2000-12-06 2007-05-15 Cisco Technology, Inc. Packet processing engine architecture
US6954463B1 (en) * 2000-12-11 2005-10-11 Cisco Technology, Inc. Distributed packet processing architecture for network access servers
US7131140B1 (en) * 2000-12-29 2006-10-31 Cisco Technology, Inc. Method for protecting a firewall load balancer from a denial of service attack
US7023811B2 (en) * 2001-01-17 2006-04-04 Intel Corporation Switched fabric network and method of mapping nodes using batch requests
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US6728929B1 (en) * 2001-02-16 2004-04-27 Spirent Communications Of Calabasas, Inc. System and method to insert a TCP checksum in a protocol neutral manner
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
US7366194B2 (en) * 2001-04-18 2008-04-29 Brocade Communications Systems, Inc. Fibre channel zoning by logical unit number in hardware
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
JP3936550B2 (ja) * 2001-05-14 2007-06-27 富士通株式会社 パケットバッファ
US7164678B2 (en) * 2001-06-25 2007-01-16 Intel Corporation Control of processing order for received network packets
US20030026252A1 (en) * 2001-07-31 2003-02-06 Thunquest Gary L. Data packet structure for directly addressed multicast protocol
US6976205B1 (en) * 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US7360217B2 (en) * 2001-09-28 2008-04-15 Consentry Networks, Inc. Multi-threaded packet processing engine for stateful packet processing
US7124198B2 (en) * 2001-10-30 2006-10-17 Microsoft Corporation Apparatus and method for scaling TCP off load buffer requirements by segment size
US6907466B2 (en) * 2001-11-08 2005-06-14 Extreme Networks, Inc. Methods and systems for efficiently delivering data to a plurality of destinations in a computer network
EP1464144A4 (en) * 2001-11-09 2010-09-22 Vitesse Semiconductor Corp MEANS AND METHOD FOR SWITCHING PACKETS OR DATA FRAMES
US7286557B2 (en) * 2001-11-16 2007-10-23 Intel Corporation Interface and related methods for rate pacing in an ethernet architecture
US7236492B2 (en) * 2001-11-21 2007-06-26 Alcatel-Lucent Canada Inc. Configurable packet processor
AU2002365837A1 (en) 2001-12-03 2003-06-17 Tagore-Brage, Jens P. Interface to operate groups of inputs/outputs
US8370936B2 (en) * 2002-02-08 2013-02-05 Juniper Networks, Inc. Multi-method gateway-based network security systems and methods
US7269661B2 (en) * 2002-02-12 2007-09-11 Bradley Richard Ree Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US7283528B1 (en) * 2002-03-22 2007-10-16 Raymond Marcelino Manese Lim On the fly header checksum processing using dedicated logic
US7304941B2 (en) * 2002-04-11 2007-12-04 International Business Machines Corporation Switchover system and method in a data packet switching network
US20040030766A1 (en) 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US7251704B2 (en) 2002-08-23 2007-07-31 Intel Corporation Store and forward switch device, system and method
US7031304B1 (en) * 2002-09-11 2006-04-18 Redback Networks Inc. Method and apparatus for selective packet Mirroring
KR100486713B1 (ko) * 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
US7349399B1 (en) * 2002-09-20 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets using linked lists
US7271706B2 (en) * 2002-10-09 2007-09-18 The University Of Mississippi Termite acoustic detection
US6760304B2 (en) * 2002-10-28 2004-07-06 Silverback Systems, Inc. Apparatus and method for receive transport protocol termination
KR100454681B1 (ko) * 2002-11-07 2004-11-03 한국전자통신연구원 프레임 다중화를 이용한 이더넷 스위칭 장치 및 방법
KR100460672B1 (ko) * 2002-12-10 2004-12-09 한국전자통신연구원 10 기가비트 이더넷 회선 정합 장치 및 그 제어 방법
US8296452B2 (en) * 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7283473B2 (en) * 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US20040218623A1 (en) * 2003-05-01 2004-11-04 Dror Goldenberg Hardware calculation of encapsulated IP, TCP and UDP checksums by a switch fabric channel adapter
US7298761B2 (en) * 2003-05-09 2007-11-20 Institute For Information Industry Link path searching and maintaining method for a bluetooth scatternet
US20050022017A1 (en) * 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US7098685B1 (en) * 2003-07-14 2006-08-29 Lattice Semiconductor Corporation Scalable serializer-deserializer architecture and programmable interface
US7483374B2 (en) * 2003-08-05 2009-01-27 Scalent Systems, Inc. Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
JP4437650B2 (ja) * 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
US7441179B2 (en) * 2003-10-23 2008-10-21 Intel Corporation Determining a checksum from packet data
US7219294B2 (en) * 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US20050114663A1 (en) * 2003-11-21 2005-05-26 Finisar Corporation Secure network access devices with data encryption
JP2005223829A (ja) * 2004-02-09 2005-08-18 Nec Electronics Corp 分数分周回路及びこれを用いたデータ伝送装置
US7292591B2 (en) * 2004-03-30 2007-11-06 Extreme Networks, Inc. Packet processing system architecture and method
US7502474B2 (en) * 2004-05-06 2009-03-10 Advanced Micro Devices, Inc. Network interface with security association data prefetch for high speed offloaded security processing
US7461183B2 (en) * 2004-08-03 2008-12-02 Lsi Corporation Method of processing a context for execution
US7134796B2 (en) * 2004-08-25 2006-11-14 Opnext, Inc. XFP adapter module
US7436773B2 (en) * 2004-12-07 2008-10-14 International Business Machines Corporation Packet flow control in switched full duplex ethernet networks
US8040903B2 (en) * 2005-02-01 2011-10-18 Hewlett-Packard Development Company, L.P. Automated configuration of point-to-point load balancing between teamed network resources of peer devices
US7620754B2 (en) * 2005-03-25 2009-11-17 Cisco Technology, Inc. Carrier card converter for 10 gigabit ethernet slots

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1070751A (zh) * 1991-09-18 1993-04-07 国际商业机器公司 多媒体信号处理器计算机系统
US5920705A (en) * 1996-01-31 1999-07-06 Nokia Ip, Inc. Method and apparatus for dynamically shifting between routing and switching packets in a transmission network
EP1508855A2 (en) * 2003-08-20 2005-02-23 Katana Technology, Inc. Method and apparatus for providing virtual computing services

Also Published As

Publication number Publication date
US7697536B2 (en) 2010-04-13
WO2006103168A1 (en) 2006-10-05
EP1864465B1 (en) 2013-05-08
CN101156408A (zh) 2008-04-02
US20060221961A1 (en) 2006-10-05
JP2008535342A (ja) 2008-08-28
EP1864465A1 (en) 2007-12-12
TWI423038B (zh) 2014-01-11
TW200705206A (en) 2007-02-01
JP4898781B2 (ja) 2012-03-21
EP2388974A1 (en) 2011-11-23

Similar Documents

Publication Publication Date Title
CN101156408B (zh) 用于操作系统分区的网络通信
US5856974A (en) Internetwork address mapping gateway
US6665304B2 (en) Method and apparatus for providing an integrated cluster alias address
US7483395B2 (en) Network device with VLAN topology discovery functions
US6512774B1 (en) Fail over with multiple network interface cards
EP2356775B1 (en) Central controller for coordinating multicast message transmissions in distributed virtual network switch environment
US6049834A (en) Layer 3 switch unicast protocol
Deering et al. Host groups: A multicast extension to the internet protocol
US5583996A (en) Method and system for shortcut routing over public data networks
US9054980B2 (en) System and method for local packet transport services within distributed routers
EP1019833B1 (en) Mechanism for packet field replacement in a multi-layered switched network element
US9948576B2 (en) Mechanism for enabling layer two host addresses to be shielded from the switches in a network
JP4587446B2 (ja) ネットワークシステム、並びにスイッチ装置及び経路管理サーバ及びそれらの制御方法、及び、コンピュータプログラム及びコンピュータ可読記憶媒体
US7145866B1 (en) Virtual network devices
EP0909062A1 (en) Methods and apparatus for accelerating OSI layer 3 routers
US7974192B2 (en) Multicast switching in a distributed communication system
US7984127B2 (en) Data matrix method and system for distribution of data
US20090046734A1 (en) Method for Traffic Management, Traffic Prioritization, Access Control, and Packet Forwarding in a Datagram Computer Network
US20080310416A1 (en) Vlan server
US6778540B1 (en) Facility for forwarding data from a network adapter to a router partition without internet protocol (ip) processing
US20080107109A1 (en) Method and Apparatus for Managing Multicast Traffic in a Network at the Data Link or Level 2 Layer
US6760336B1 (en) Flow detection scheme to support QoS flows between source and destination nodes
Jones et al. Protocol design for large group multicasting: the message distribution protocol
US7203176B2 (en) System, device, and method for address reporting in a distributed communication environment
JPH08237285A (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