CN101156408B - Network communications for operating system partitions - Google Patents

Network communications for operating system partitions Download PDF

Info

Publication number
CN101156408B
CN101156408B CN 200680011080 CN200680011080A CN101156408B CN 101156408 B CN101156408 B CN 101156408B CN 200680011080 CN200680011080 CN 200680011080 CN 200680011080 A CN200680011080 A CN 200680011080A CN 101156408 B CN101156408 B CN 101156408B
Authority
CN
China
Prior art keywords
packet
network
operating system
multicast
broadcast
Prior art date
Application number
CN 200680011080
Other languages
Chinese (zh)
Other versions
CN101156408A (en
Inventor
A·K·卢克
C·B·韦里利
C·巴索
C-J·常
F·韦普朗肯
H·G·基尔
J·卡尔维纳克
N·瓦伊达亚纳塔
P·达蒙
R·E·富斯
Original Assignee
国际商业机器公司
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
Priority to US11/097,051 priority Critical patent/US7697536B2/en
Priority to US11/097,051 priority
Application filed by 国际商业机器公司 filed Critical 国际商业机器公司
Priority to PCT/EP2006/060733 priority patent/WO2006103168A1/en
Publication of CN101156408A publication Critical patent/CN101156408A/en
Application granted granted Critical
Publication of CN101156408B publication Critical patent/CN101156408B/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00
    • H04L29/02Communication control; Communication processing
    • H04L29/06Communication control; Communication processing characterised by a protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Queuing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks

Abstract

Providing communications between operating system partitions and a computer network. In one aspect, an apparatus for distributing network communications among multiple operating system partitions includes a physical port allowing communications between the network and the computer system, and logical ports associated with the physical port, where each logical port is associated with one of the operating system partitions. Each of the logical ports enables communication between a physical port and the associated operating system partition and allows configurability of network resources of the system. Other aspects include a logical switch for logical and physical ports, and packet queues for each connection and for each logical port.

Description

用于操作系统分区的网络通信 A communication network operating system partition

[0001] 相关申请的交叉引用 CROSS [0001] REFERENCE TO RELATED APPLICATIONS

[0002] 本发明涉及以下共同待决的美国专利申请: [0002] The present invention relates to the following co-pending U.S. Patent Application of:

[0003] 题为“Host Ethernet Adapter for Networking Offload inServerEnvironment ”的美国专利申请(代理卷号RPS920050059US1/3485P),与本发明同日提交并被转让给本发明的受让人。 U.S. Patent Application [0003] entitled "Host Ethernet Adapter for Networking Offload inServerEnvironment" a (Attorney Docket No. RPS920050059US1 / 3485P), filed with the present invention, the same date and assigned to the assignee of the present invention.

[0004] 题为“Method and System for Accommodating Several Ethernet Portsand aWrap Transmitted Flow Handled by a Simplified Frame-By-FrameUpper Structure,,的美国专利申请(代理卷号RPS920050060US1/3486P),与本发明同日提交并被转让给本发明的受让人。 [0004], entitled "Method and System for Accommodating Several Ethernet Portsand aWrap Transmitted Flow Handled by a Simplified Frame-By-FrameUpper Structure ,, U.S. Patent Application (Attorney Docket No. RPS920050060US1 / 3486P), filed with the present invention, the same day and assigned to the assignee of the present invention.

[0005]题为 “Method and Apparatus for Providing a Network ConnectionTable,,的美国专利申请(代理卷号RPS920050061US1/3487P),与本发明同日提交并被转让给本发明的受让人。 [0005], entitled "Method and Apparatus for Providing a Network ConnectionTable ,, U.S. Patent Application (Attorney Docket No. RPS920050061US1 / 3487P), filed on the same day with the present invention and assigned to the assignee of the present invention.

[0006]题为“Configurable Ports for a Host Ethernet Adapter,,的美国专利申请(代理卷号RPS920050073US1/3502P),与本发明同日提交并被转让给本发明的受让人。 [0006], entitled "Configurable Ports for a Host Ethernet Adapter ,, U.S. Patent Application (Attorney Docket No. RPS920050073US1 / 3502P), filed with the present invention, the same date and assigned to the assignee of the present invention.

[0007] 题为“System and Method for Parsing, Filtering, and ComputingtheChecksum in a Host Ethernet Adapter (HEA) ” 的美国专利申请(代理卷号RPS920050074US1/3503P),与本发明同日提交并被转让给本发明的受让人。 [0007], entitled "System and Method for Parsing, Filtering, and ComputingtheChecksum in a Host Ethernet Adapter (HEA)" U.S. Patent Application (Attorney Docket No. RPS920050074US1 / 3503P), filed on the same day with the present invention and assigned to the present invention assignee.

[0008] 题为“System and Method for a Method for Reducing Latency in aHostEthernet Adapter (HEA) ”的美国专利申请(代理卷号RPS920050075US1/3504P),与本发明同日提交并被转让给本发明的受让人。 [0008], entitled "System and Method for a Method for Reducing Latency in aHostEthernet Adapter (HEA)" U.S. Patent Application (Attorney Docket No. RPS920050075US1 / 3504P), filed the same date of the present invention and is assigned to the assignee of the present invention. .

[0009] 题为“Method and Apparatus for Blind Checksum and Correction forNetworkTransmissions”的美国专利申请(代理卷号RPS920050076US1/3505P),与本发明同日提交并被转让给本发明的受让人。 U.S. Patent Application No. [0009], entitled "Method and Apparatus for Blind Checksum and Correction forNetworkTransmissions" a (Attorney Docket No. RPS920050076US1 / 3505P), filed with the present invention and assigned to the assignee of the present invention on the same date.

[0010]题为“Method and System for Performing a Packet Header Lookup”的美国专利申请(代理卷号RPS920050082US1/3512P),与本发明同日提交并被转让给本发明的受让人。 [0010], entitled "Method and System for Performing a Packet Header Lookup" U.S. Patent Application (Attorney Docket No. RPS920050082US1 / 3512P), filed with the present invention, the same date and assigned to the assignee of the present invention.

[0011] 题为“System and Method for Computing a Blind Checksum in a HostEthernetAdapter (HEA) ”的美国专利申请(代理卷号RPS920050089US1/3516P),与本发明同日提交并被转让给本发明的受让人。 [0011], entitled "System and Method for Computing a Blind Checksum in a HostEthernetAdapter (HEA)" U.S. Patent Application (Attorney Docket No. RPS920050089US1 / 3516P), filed with the present invention, the same date and assigned to the assignee of the present invention.

技术领域 FIELD

[0012] 本发明涉及计算机网络中的通信,并更具体地涉及在操作系统分区和计算机网络之间的通信。 [0012] The present invention relates to communication in computer networks, and more particularly to communications between operating system partitions and computer networks.

背景技术 Background technique

[0013] 计算机系统通过建立和使用网络连接而在网络上彼此通信,所述网络连接使用诸如以太网的公知标准。 [0013] Computer systems on a network communicate with each other using a network connection such as the well-known Ethernet standard and by establishing a network connection. 典型地,在系统上运行的多个实体或过程可以各自独立地在网络上通信。 Typically, a plurality of entities, or processes running on the system can independently communicate over the network. 为了帮助使能在对于系统的多个连接上的高效通信,提供了网络端口用于系统的输入和输出。 In order to help enable efficient communication to the plurality of connection systems to provide input and output ports for a network system. 例如,系统可包括网络适配器接口卡,其包括一个或多个到网络的物理端口。 For example, the system may include a network interface card adapter, including one or more physical network ports.

[0014] 某些计算机系统允许多个操作系统(OS)并行和独立运行。 [0014] Some computer systems allow multiple operating system (OS) running in parallel and independently. 例如,IBM公司的某些服务器系统运行多个操作系统,这是通过在该服务器上在每个操作系统自己的分区中提供该操作系统。 For example, IBM's some server systems to run multiple operating systems, this is provided by the operating system in each operating system in its own partition on the server. 例如,Linux分区、AIX分区以及不同的Unix分区可以同时在服务器上运行。 For example, Linux partition, AIX Unix partition and different partitions can be run on the server. 为了允许所有这些OS分区在网络上通信,可以使用不同的方法。 To allow all of these OS partition traffic on the network, you can use different methods. 在一种方法中,服务器的I/O托管分区必须处理在系统上运行的所有分区的通信需求。 In one approach, the server's I / O hosting partition must handle the communication needs of all partitions running on the system. 不过,这创建了到OS分区的较慢通信,因为多个分区通过单个I/O托管分区在网络上进行其I/O通信成为瓶颈,例如每个分区必须通过单个I/O托管分区转发和接收其数据,所述I/O托管分区包括连接于单个网络适配器的包转发器。 However, this creates a slower communication to the OS partitions, since a plurality of partitions O hosting partition for its I / O becomes the bottleneck of communication, through a single I / each partition on the network, for example, be a single I / O hosting partition forwarding and receiving its data, the I / O hosting partition comprises a single network adapter connected to a packet forwarding device.

[0015] 在另一配置中,为了允许较快通信,可以对同一机器上的每个OS分区提供网络适配器和物理网络端口。 [0015] In another configuration, to allow for faster communication, and a network adapter may be provided for each physical network port OS partitions on the same machine. 这样,例如,向五个不同OS分区的每个提供其自己的专用网络适配器和物理端口。 Thus, for example, provided with its own private network adapter and physical ports to each of five different OS partitions. 不过,这种配置的费用可能变得过高,特别是当实现了较大数量的OS分区时。 However, the cost of this configuration may become too high, especially when the realization of a large number of OS partition.

[0016] 使多个OS分区在系统上运行还需要:由系统接收以及由系统发送的信息被路由到所有适当的网络目的地,并且分区能够将信息发送到在同一服务器上运行的其它分区以及从所述其它分区接收信息。 [0016] The plurality of OS partitions also need to run on the system: receiving the system information transmitted by the system and is routed to all appropriate network destination, and the partition can transmit information to other partitions running on the same server, and receiving information from the other partitions. 其它OS分区可能被指定为用于数据包的专用目的地,或者可以被包括在对于包的若干目的地的组中。 Other OS partition may be designated as a destination for private packet, or may be included in a group of a plurality of destination for the packet. 例如,在以太网网络上的广播(Be) 和多播(MC)网络功能允许多个目的地接收由特定系统或分区发送的信息。 For example, a broadcast on the Ethernet network (Be) and multicast (MC) function allows a plurality of network destinations to receive information transmitted by a particular partition or system. 如果一个分区将广播信息发送到网络上的所有可用目的地,则系统上的所有其它OS分区需要接收该广播信息。 If a partition transmit the broadcast message to all available destinations in the network, all other OS partitions on the system needs to receive the broadcast information.

[0017] 在现有系统中,通过使用若干可用方法中的任一种,向和从不同OS分区提供网络流量。 [0017] In existing systems, by any of several available methods in use to provide different OS partitions, and network traffic. 在一种方法中,通过在服务器系统外部的路由器来实施层3路由,其中所有数据包被发送到系统外部,并被发送回系统中到达适当的OS分区。 In one method, the router in an external server system implemented layer 3 routing, all packets which are transmitted to the external system, and transmitted back to the appropriate system OS partition. 不过,由于花费较长时间的外部路径,此方法可能是低效的,并且可能不支持所有想要的功能,诸如层2协议支持。 However, because it takes a long time outside the path, this method may be inefficient and may not support all the features you want, such as a layer 2 protocol support. 在另一方法中,可以在网络适配器上嵌入完全以太网交换机。 In another approach, Ethernet switches may be embedded entirely on the network adapter. 该交换机在需要时在不同分区之间进行交换以向适当的目的地提供包。 The switch is exchanged between the different partitions as needed to provide the packet to the appropriate destination. 不过,此方法是昂贵的,因为以太网交换机在适配器上的现有电路的外部,并且还可能需要非标准的、定制特征和功能。 However, this method is expensive, since the external circuit on the adapter conventional Ethernet switch, and may also require non-standard, custom features and functions.

[0018] 服务器系统的另一网络通信问题包括对数据包排队。 [0018] Another problem of a network communication system includes a server for queued data packets. 传统上,提供单个队列来存储从操作系统发送出或者由操作系统接收的数据包,其中在操作系统的内核中的栈处理队列中的包。 Conventionally, a single queue for storing messages sent from or received by an operating system, the operating system of the data packet, wherein the stack of the operating system kernel process packet in the queue. 在某些其它系统中,可以使用其它类型的排队。 In certain other systems, other types of queues. 不过,现有排队方法未解决具有多个分区的系统的需求,或者具有用户-空间队列以及OS内核队列二者的可能性。 However, the conventional method does not address the needs of queuing a plurality of partitions having a system, or a user - the possibility of both the OS kernel space in the queue and the queue.

[0019] 因而,所需要的是一种用于与操作系统分区和计算机网络高效和廉价地进行通信的装置和方法,包括在具有有限数量的物理端口、可配置线速度、分配资源的高效方式以及不同类型的包队列的计算机系统上对多个OS分区的使用。 [0019] Accordingly, what is needed is a method for the operating system partitions and computer networks efficient and inexpensive apparatus and method for communication, including a limited number of physical ports, the line speed can be efficiently arranged, the allocation of resources and the use of multiple OS partitions on the computer systems of different type of packet queues. 本发明解决了这样的需求。 The present invention addresses such needs.

发明内容 SUMMARY

[0020] 本应用发明涉及计算机网络中的通信,以及在操作系统分区和计算机网络之间的通信。 [0020] The present invention relates to computer applications in a communication network, and the communication between the operating system partitions and computer networks. 在本发明的一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置包括:至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信。 In one aspect of the present invention, a method for a communication apparatus comprising a network of distribution among the plurality of operating system partitions provided on a computer system: at least one physical port coupled to a network, the physical port allowing the network and communication between the computer system. 包括了关联于所述至少一个物理端口的逻辑端口,其中每个逻辑端口关联于所述操作系统分区之一。 Including the associated at least one logical port physical port, wherein each one of said logical port associated with the operating system partition. 每个逻辑端口使能在相关联的物理端口和相关联的操作系统分区之间的信息传送,以及允许所述系统的网络资源的可配置性。 Each logical port enable transferring information between the operating system partitions and the physical port associated with the associated, and allow the network resource of the system may be configurable.

[0021] 在本发明的另一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的方法包括:在操作系统分区和至少一个关联于所述操作系统分区的逻辑端口之间传送信息。 [0021] In another aspect of the present invention, a method for communication between a plurality of distributed network operating system partitions provided on a computer system comprising: an operating system partition and at least one operating system partition associated with the the transfer information between the logical port. 多个操作系统分区中的每一个可以与相关联的至少一个逻辑端口通信。 Each communication may be a logical port associated with at least a plurality of operating systems partition. 所述方法还包括:在所述至少一个关联于所述操作系统分区的逻辑端口和关联于所述至少一个逻辑端口的至少一个物理端口之间传送信息,其中所述物理端口耦合于网络。 The method further comprising: at least one logical port associated with and associated with the operating system of the at least one logical partition to transfer information between the at least one physical port port, wherein said port is coupled to a physical network.

[0022] 在本发明的另一方面中,一种用于在计算机系统上分布网络通信的方法包括:在所述计算机系统中的逻辑交换机处接收数据包,所述计算机系统运行多个操作系统分区。 Method [0022] In another aspect of the present invention, a method for distributing network communications on a computer system, comprising: receiving a data packet at a logical switch in the computer system, the computer system running multiple operating systems partition. 当来自所述计算机系统的一个操作系统分区的数据包中的信息指示出返转路径时,将所述数据包通过在所述计算机系统内部的硬件路径返转到所述计算机系统的另一个操作系统分区。 When the information packet from the computer system in an operating system partition indicates that the wraparound path, the data packet by another operating hardware path internal to the computer system to return the computer system system partition. 当从操作系统分区接收的数据包中的信息指示出非返转路径时,将所述数据包发送到耦合于外部网络的物理端口,或者当从外部网络接收的数据包中的信息指示出非返转路径时,将所述数据包发送到操作系统分区。 When the partition information packet received from the operating system indicates that the non-reversal path, the data packet sent to the physical port is coupled to an external network, or when the information received from the external packet data network indicative of non- when the wraparound path, the data packet to the operating system partition.

[0023] 在本发明的另一方面中,一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置包括:至少一个耦合于外部网络的物理端口,所述物理端口允许所述外部网络与所述计算机系统之间的通信。 [0023] In another aspect of the present invention, an apparatus for communication between a plurality of distributed network operating system partitions provided on a computer system comprising: at least one physical port coupled to an external network, the physical port allowing the communication between the external network and the computer system. 所包括的逻辑端口的每个关联于所述操作系统分区之一。 Each associated logical port included in one of the operating system partition. 在所述计算机系统内部实现的逻辑交换机选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端口。 Physical port and a logical port select logic switch inside the computer-implemented system, and can make information to the operating system partitions and the physical port.

[0024] 在本发明的另一方面中,一种用于提供用于计算机系统的网络通信的装置包括:至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信。 Network communication means [0024] In another aspect of the present invention, a method for providing a computer system comprising: at least one physical port coupled to a network, the physical port allowing said network and said computer system communication between. 包括了多个连接队列,用于存储将从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包,其中每个连接队列关联于所述至少一个过程之一和所述网络之间的不同的网络连接。 At least one transmission or reception by the at least one user space comprises a plurality of connection queues, for storing the computer system from the data packets, wherein one of the at least one process for each connection queue is associated, and different network connections between the network. 还包括了默认操作系统队列,用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包。 Further comprising a default operating system queue, the transmission kernel for storing the operating system partition implemented by the computer from the system or received data packets.

[0025] 在本发明的另一方面中,一种用于提供用于计算机系统的网络通信的方法包括:在网络适配器处接收数据包。 [0025] In another aspect of the present invention, a method for providing network communications for a computer system, a method comprising: receiving a data packet at a network adapter. 所述数据包被存储在连接队列中,其中所述连接队列存储将经由相关联的网络连接从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包。 The data packet is stored in the connection queue, the connection queue store which is connected via at least one network associated with the process or by transmitting the data packets received from the at least one user space of the computer system. 如果无法找到对于所述数据包的网络连接,则将所述数据包存储在默认操作系统队列中,其中所述默认操作系统队列存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包。 If you can not find a network connected to said data packet, said data packet will be stored in a default operating system queue, wherein the operating system kernel to send the default operating system queue stores partition implemented by the computer from the system or It received packet therefrom.

[0026] 本发明允许对于在服务器系统上提供的多个操作系统(OS)分区的快速和高效通信。 [0026] The present invention allows for fast and efficient communication (OS) operating system for a plurality of partitions provided on the server system. 通过使用对软件透明的本发明的网络适配器,可以实现如同每个分区具有其自己的专用以太网适配器那样的相同性能,而不必非要为每个分区提供适配器,以及使用标准适配器硬件。 By using a network adapter of the present invention, the transparent software can be realized as if each partition has its own dedicated Ethernet adapter the same performance as, but do not have to provide an adapter for each partition, the hardware and the use of standard adapters. 本发明的逻辑交换机允许所有类型的数据包(包括单播、广播和多播包)被高效提供给网络和OS分区,并且本发明的包队列允许例如在具有多个OS分区的系统中支持多种类型的排队。 Logical switch of the present invention allows all types of data packets (including unicast, broadcast and multicast packets) is efficiently provided to the network and OS partition, and the packet queue according to the present invention allows, for example, in a system having multiple support multiple OS partitions types of queuing. 本发明提供了一种虚拟化以太网或类似网络、分配资源以及配置线速度和其它资源的高效方式。 The present invention provides a virtual Ethernet network or the like, and efficient allocation of resources are arranged in line speed and other resources.

附图说明 BRIEF DESCRIPTION

[0027] 图I是适于与本发明一起使用的系统的示例的框图 A block diagram of [0027] I is the system suitable for use with the present invention, an example of FIG.

[0028] 图2是由图I所示的适配器实现的、被提供用于使用的本发明的逻辑端口系统的图示; [0028] FIG. 2 is an adapter shown in FIG. I-implemented logical port is provided illustrating the system of the invention for use;

[0029] 图3是包括逻辑交换机的本发明的通信系统的框图; [0029] FIG. 3 is a block diagram of a communication system according to the present invention comprises the logical switch;

[0030] 图4是说明了用于向和从计算机系统上的多个操作系统分区发送包的方法的流程图; [0030] FIG 4 is a flowchart illustrating a method and to a computer system from a plurality of operating system partition of a transmission packet;

[0031]图5是说明了用于管理在或从计算机系统中分发的多播或广播包的本发明的方法的流程图; [0031] FIG. 5 is a flowchart of a method according to the present invention, a multicast or broadcast packet from the distribution or management of a computer system;

[0032] 图6是包括逻辑交换机的本发明的通信系统的框图; [0032] FIG. 6 is a block diagram of a communication system according to the present invention comprises the logical switch;

[0033] 图7是包括逻辑交换机的本发明的通信系统的框图; [0033] FIG. 7 is a block diagram of a communication system according to the present invention comprises the logical switch;

[0034] 图8是包括逻辑交换机的本发明的通信系统的框图; [0034] FIG. 8 is a block diagram of a communication system according to the present invention comprises the logical switch;

[0035] 图9是用于给网络包排队的本发明的排队系统的图示;以及 [0035] FIG. 9 is an illustration of a queuing system of the present invention to the network packet queue; and

[0036] 图10是说明用于选择用于包存储的队列的本发明的方法的流程图。 [0036] FIG. 10 is a flowchart illustrating a method for selecting a queue for storing packets of the present invention.

具体实施方式 Detailed ways

[0037] 本发明涉及计算机网络中的通信,并更具体地涉及在操作系统分区和计算机网络之间的通信。 [0037] The present invention relates to communication in computer networks, and more particularly to communications between operating system partitions and computer networks. 所呈现的以下描述使得本领域技术人员能够制造和使用本发明,并且在专利申请及其要求的上下文中提供以下描述。 The following description is presented to enable one skilled in the art to make and use the invention, and is provided in the context of a patent application and its requirements. 这里描述的一般原理和特征以及对优选实施例的各种修改对于本领域技术人员将显而易见。 General principles and features described herein and various modifications of the preferred embodiments of the skilled in the art will be apparent. 因此,本发明并未意在被限制为所示出的实施例,而是将符合与这里描述的原理和特征相一致的最广泛范围。 Accordingly, the present invention is not intended to be limited to the embodiments shown, but would be consistent with the principles and features described herein widest scope consistent.

[0038] 本发明主要根据在特定实现中提供的系统来描述。 [0038] The present invention will be described according to the system provided in a particular implementation. 不过,本领域普通技术人员将容易地认识到,此方法和系统将在其它实现中有效工作。 However, one of ordinary skill in the art will readily recognize that this method and system will operate effectively in other implementations. 例如,可与本发明一起使用的系统体系结构和网络配置可以采用多种不同形式。 For example, a variety of different forms of network architectures and systems may be used with the present invention, the configuration may be employed. 本发明还将在具有特定步骤的特定方法的上下文中描述。 The present invention will also be described in the context of particular methods having certain steps. 不过,所述方法和系统可以有效工作于具有与本发明不一致的不同的和/或额外的步骤的其它方法。 However, the method and system can work effectively in the present invention is inconsistent with different and / or additional steps in other methods.

[0039] 为了更具体地描述本发明的特征,请结合以下讨论来参考图I至10。 [0039] In order to more particularly describe the features of the present invention, incorporate discussed below with reference to FIGS. I to 10. 在IEEE802. 3以太网网络协议和传输控制协议/因特网协议(TCP/IP)客户端-服务器系统的上下文中描述了本发明。 In IEEE802 3 Ethernet network protocol and Transmission Control Protocol / Internet Protocol (TCP / IP) client - server system in the context of the present invention is described. 其它协议(诸如用户数据报协议(UDP))和配置可以在其它实施例中使用(例如UDP 5元组可以被映射到队列)。 Other protocols (such as the User Datagram Protocol (the UDP)) and configurations may be used (e.g. UDP 5-tuple may be mapped to a queue) in other embodiments.

[0040] 图I是适于与本发明一起使用的系统10的框图。 [0040] Figure I is a block diagram of a system suitable for use with the present invention 10. 系统10是计算机系统,诸如服务器、大型机、台式客户端计算机、工作站、或其它计算机或电子设备。 The system 10 is a computer system, such as a server, a mainframe, a desktop client computer, a workstation, or other computer or electronic device. 在此处所述的实施例中,系统10 —般被称为服务器系统。 In the embodiment described herein, the system 10 - generally called a server system. 如所公知的,在系统10中提供一个或多个微处理器、存储器(RAM和/或ROM)以及其它组件。 As is well known, in the system 10 provides one or more microprocessors, memory (RAM and / or ROM), and other components.

[0041] 在所述实施例中,服务器系统10可以经由网络连接14与多种其它计算机系统12通信。 [0041] In the illustrated embodiment, system 10 may be connected to the server 14 communicate with a variety of other computer system 12 via a network. 计算机系统12可以是服务器、客户端机器、或其它计算机或电子设备。 The computer system 12 may be a server, a client machine, or other computer or electronic devices. 例如,服务器系统10可以使用连网协议(诸如以太网、TCP/IP、和/或其它类型的协议)与计算机系统12通信。 For example, the server system 10 may use the networking protocols (such as Ethernet, TCP / IP, and / or other types of protocols) to communicate with the computer system 12.

[0042] 对于此处所述的若干实施例,服务器系统10包括多个操作系统(OS)分区16。 [0042] For several embodiments described herein, the server system 10 includes a plurality of operating systems (OS) partitions 16. 操作系统可以在每个分区16中独立运行。 The operating system can run independently in each partition 16. 例如,操作系统(诸如此丨1、1^111«、181公司的41父、微软公司的Windows、苹果计算机公司的MacOS、或者其它操作系统)可以各自在分区16中运行,并且某种类型的OS的多个实例可以在独立分区16中运行。 For example, the operating system (such as 111 in this Shu 1,1 ^ «, 41 181 parent company, Microsoft, Windows, Apple's MacOS, or other operating systems) can each run in a partition 16, and some type of multiple instances can be run in a separate OS partition 16.

[0043] 每个OS分区16可以在网络14上发送和接收信息,并且可以充当数据包在网络上的源和/或目的地。 [0043] each OS partition 16 can send and receive information over a network 14, and may act as a data packet on the network source and / or destination. 例如,在分区16中运行的OS可以在“用户空间”中提供服务器应用或过程,例如将网页数据提供给计算机系统12和/或提供由一个或多个计算机系统12所提交的数据库数据或过程数据的web服务器应用。 For example, running in OS partition 16 may be provided in the server application or process "user space", for example, the web page data to the computer system and / or provided by one or more computer systems or database data submitted during 12 12 web server application data.

[0044] 每个活动分区16通过网络适配器20向/从网络14发送和接收数据。 [0044] Each active partition 16 to send and receive data to / from the network 14 through the network 20 to the adapter. 适配器20处理向适当的OS分区16提供在网络上从计算机系统12接收的数据包。 Processing the adapter 20 provides packets received from the network on a computer system 12 to the appropriate OS partition 16. 网络适配器20也从OS分区16接收包,并控制向适当的目的地发送该信息,所述目的地是网络14上的计算机系统12或者是另一OS分区16。 Network adapter 20 also receives packets from the OS partitions 16, and transmits the information to control the appropriate destination, the destination is the computer system 12 or another OS partition 16 on the network 14. 网络适配器提供将进入数据流的适当数据发送到不同OS分区的多路分解功能。 Multiplex transmission network adapter provides the appropriate data into the data stream to a different OS partitions decomposition of functionality. 网络适配器20可以是硬件接口适配器,其提供一个或多个物理端口22作为到网络14的硬件连接。 Network adapter 20 may be a hardware interface adapter which provides one or more ports 22 as physical network 14 is connected to the hardware. 适配器20可以包括硬件逻辑、微处理器、存储器(RAM和/或ROM)、和/或实施本发明功能的其它适当组件,如下文更详细描述的。 Adapter 20 may comprise hardware logic, microprocessor, memory (RAM and / or ROM), and / or other suitable components of embodiments of the present invention functions, as described in more detail. 适配器20可以作为被插入服务器系统并可从中移除的独立卡而提供,或者可以被并入其它服务器系统组件中。 Adapter 20 may be provided as a server system is inserted into and removed from the stand-alone card, or may be incorporated in other components of the server system. 在其它实施例中,适配器20的功能可以用软件、或用硬件和软件的组合来实施。 In other embodiments, adapter 20 may function in software, or by a combination of hardware and software implemented.

[0045] 如在整个本说明书中所描述的、可以与本发明的特征一起使用的系统组件的示例可以在2005 年4 月I 日提交的、题为“Host Ethernet Adapterfor a Networking Offloadin a Server Environment”(RPS 9 2005 0059US1/3485)的共同待决的有关于多路分解的专利申请中找到和描述,在此通过参考将其整体引入。 [0045] As described throughout the present specification, examples of system components that may be used with the features of the present invention can be filed in April 2005 Day I, entitled "Host Ethernet Adapterfor a Networking Offloadin a Server Environment" (RPS 9 2005 0059US1 / 3485) relates to demultiplexing of co-pending patent application found and described, incorporated by reference in its entirety herein.

[0046] 图2是由图I所示的适配器20实现的、被提供用于使用的本发明的逻辑端口系统50的图示。 [0046] FIG. 2 is illustrated according to the present invention is provided for using a logical port system 50 of the adapter 20 shown in FIG. I achieved. 在系统10中实现OS分区16,如参考图I所描述的。 In the system 10 implemented OS partition 16, as described with reference to FIG I. 在图2的示例中,有32个可用OS分区。 In the example of FIG. 2, there are 32 available OS partition.

[0047] 在图2中示出两个逻辑端口58的组54和56。 [0047] FIG. 2 shows two sets 54 and 56 of the 58 logical ports. 本发明的逻辑端口58是系统10上的OS分区16到物理端口22的映射。 Logic port 58 of the present invention is a mapping system on OS partition 10 16 to 22 physical ports. 在图2的示例中,五个物理端口22a、22b、22c、22d和22e在网络适配器20上可用。 In the example of FIG. 2, five physical ports 22a, 22b, 22c, 22d and 22e available on the network adapter 20. 这些物理端口优选地可以关于多少带宽可被分配给它们中的每个而进行配置。 Preferably, these physical ports can be configured to how much bandwidth may be allocated to each of them. 在图2的示例中,四个物理端口22a-d各自已经被分配了I吉比特/秒,而物理端口22e已经被分配了10吉比特/秒。 In the example of FIG. 2, four physical ports 22a-d have each been allocated I Gbit / s, and the physical port 22e has been allocated a 10 Gbit / s. 在其它实施例中可以使用其它分配;优选地,终端用户能够在需要时在网络适配器20的物理限制之内配置带宽分配。 It may be used in other embodiments other dispensing embodiment; Preferably, the end user bandwidth allocation can be arranged within the physical limitations of the network adapter 20 when needed.

[0048] 每个逻辑端口58将物理端口22映射到OS分区16之一,从而相关联的OS分区“拥有”该特定逻辑端口。 [0048] Each logical port 58 to port 22 is mapped to a physical one OS partition 16, so that the associated OS partition "owns" that particular logical port. 在所示的示例中,逻辑端口58a将分区16a中的OS 2映射到物理端口22a,逻辑端口58b将分区16b中的OS 4映射到物理端口22a,等等。 In the illustrated example, the logical port 58a in the partition 16a OS 2 mapped to the physical ports 22a, 16b logical port 58b to partition the OS 4 is mapped to physical port 22a, and the like. 如所示,多个逻辑端口58可以将单个OS分区16映射到一个或多个物理端口。 As shown, a plurality of logical ports 58 may be mapped to a single OS partition 16 or a plurality of physical ports. 因此,总共三个逻辑端口58被示出将OS 4映射到总共四个物理端口22。 Thus, a total of three logical port 58 is shown to be mapped to a total of four OS 4 22 physical ports. 每个物理端口和被分配给该物理端口的逻辑端口由逻辑交换机进行选择,下文参考图3描述。 Each physical port and a physical port is assigned to the logical port is selected by the logical switch, described below with reference to FIG. 每个逻辑端口可以在逻辑交换机上具有独立的端口。 Each logical port can have a separate port on the logical switch.

[0049] 从在每个OS分区16上运行的OS的视角看来,该OS获得对可用物理端口22的独占使用。 [0049] From the perspective of the OS running on each OS partition 16 opinion, the OS to obtain exclusive use of the available physical port 22. 逻辑端口58被建立以对OS分区透明,使得OS分区不知道逻辑端口的虚拟化和组织,即,每个OS分区将其所分配的每个逻辑端口看成物理端口(对于OS,逻辑端口看上去不是特别像物理端口结构)。 Establish a logical port 58 is transparent to the OS partition, the partition does not know that logical port OS virtualization and tissues, i.e., each OS partition each logical port as its assigned physical port (for the OS, see the logical port up not particularly like physical port structure). OS例如看到关联于每个逻辑端口的队列(参考图9描述),并且与关联于每个逻辑端口的资源相交互。 See, for example, associated with OS (described with reference to FIG. 9) in the queue for each logical port, and interact with the resources associated with each logical port.

[0050] 逻辑端口58可以被组织为端口组,诸如端口组54和56。 [0050] The logical ports 58 may be organized into port groups, such as groups 54 and 56 ports. 每个端口组中的逻辑端口被分配给它们可以引用的物理端口的特定集合;这些物理端口也被认为是在该端口组中。 Port of each logical port group is assigned to a particular set of physical ports which may be cited; these are also considered to be a physical port in the port group. 例如,端口组54中的逻辑端口58可以被分配给物理端口22a-d,而不是物理端口22e。 For example, port group 54 of the logical port 58 may be assigned to the physical ports 22a-d, but not a physical port 22e. 同样,端口组56中的逻辑端口58可以被分配给物理端口22e,而不是物理端口22a_d。 Similarly, port group 56 of the logical port 58 may be assigned to a physical port 22e, instead of the physical port 22a_d.

[0051 ] 每个端口组54或56被指定具有N个可用逻辑端口,所述端口组是系统管理器在配置系统时可以按需要命令进行分配的资源池。 [0051] Each port group 54 or 56 is designated with N logical ports available, the group is a port system manager may be assigned when the system configuration commands needed resource pools. 每个逻辑端口可以被分配给该端口组中的任意物理端口。 Each logical port can be assigned to any physical port in the port group. 这允许用户、系统管理员或程序按照需要配置每个端口组中的资源,诸如将带宽分布到端口组中的物理端口、对分区访问的分布等等。 This allows the user, system administrator, or program as needed to configure each port group of resources, such as bandwidth distributed to the physical ports in a port group, the distribution of access to the partition like. 系统约束(存储器等)可限制每个端口组中的逻辑端口的数量;例如,在图2的示例中,每个端口组可被限于13个逻辑端□。 System constraints (memory, etc.) limit the number of logical ports in each port group; for example, in the example of FIG. 2, each port group 13 can be limited to a logical end □.

[0052] 端口组54或56的使用允许为每个端口组分配大致相同的固定数量的资源使用,诸如带宽。 [0052] using port 54 or 56 groups allows for each port group is assigned substantially the same fixed amount of resources, such as bandwidth. 例如,端口组54(其可以具有四个I吉比特的物理端口)可以被限于与端口组56(其具有一个10吉比特的物理端口)大致相同的带宽资源。 For example, 54 port group (which may have four gigabit physical port I) may be limited to a port group 56 (which has a 10 gigabit physical port) is substantially the same bandwidth. (其它因素也可以对于管理资源分配起作用,诸如用于更多数量的物理端口(例如多于四个I吉比特的物理端口)所需的I/O引脚的数量。)在每个较小带宽的物理端口(例如I吉比特)上的网络吞吐量优选地不会与较大带宽的端口(例如10吉比特)上的吞吐量被共享同样多,以减少在物理端口处的瓶颈。 (Other factors may also play a role to manage resource allocation, such as for a larger number of physical ports (e.g., more than four gigabit physical port I) of the required number of I / O pins.) In each higher network throughput throughput is preferably small bandwidth on the physical port (e.g. Gigabit I) is not larger bandwidth port (e.g., 10 Gbps) are shared on the same amount, to reduce the bottleneck at the physical port. 因此,在图2的示例中,在准备将OS带宽使用分布在所有四个物理端口22a-d之中时,每个I吉比特的端口22a-d被分配来处理最多五个OS分区。 Thus, in the example of FIG. 2, in preparation for the distribution of bandwidth usage in OS all four physical ports 22a-d in each I gigabit ports 22a-d are allocated to handle up to five OS partition. 相对地,单个10吉比特的端口22e在端口组56中的所有13个逻辑端口58之间共享带宽。 In contrast, a single 10 gigabit port 22e shared bandwidth among all 13 logical ports 58 in port group 56.

[0053] 每个逻辑端口58可以被分配一个标识值或指示,从而进入包可以被分配给逻辑端口。 [0053] Each logical port 58 may be assigned an identification value or an instruction to enter the packet may be assigned to logical port. 例如,一实施例可以向每个逻辑端口58分配不同的媒体访问控制(MAC)地址以标识逻辑端口。 For example, an embodiment may be assigned to a different medium access control of each logical port 58 (MAC) address to identify the logical port. MAC地址是唯一地标识网络中的节点的硬件地址。 MAC address is a hardware address that uniquely identifies a node in the network. 由此,到达物理端口的每个包被分配给下述逻辑端口,该逻辑端口具有的MAC地址匹配于该包中的目的地(DA) MAC地址。 Thus, each packet reaches the physical port is assigned to the following logical port, the logical port having a MAC address matches (the DA) MAC address of the packet destination.

[0054] 每个逻辑端口还可以与默认逻辑端口队列相关联,并使得用于传送和接收操作的过程排队。 [0054] Each logical port can also be the default logical port queues is associated, and that the process for transmitting and receiving operations queued. 这在下文参考图9和10更详细描述。 This is described in more detail below with reference to FIGS. 9 and 10.

[0055] 每个逻辑端口58优选地具有其自己的关联资源集合以及通常关联于每个物理端口22的配置参数。 [0055] Each logical port 58 preferably has its own set of resources associated commonly associated configuration parameters and 22 in each physical port. 这些资源和配置参数允许每个逻辑端口实施功能,就如同它是物理端口那样。 These resources and configuration parameters allow each logical port embodiment function as if it were a physical port so. 例如,每个逻辑端口58可以具有其自己的管理信息库(MIB)计数器的集合,所述计数器对由该逻辑端口所传送和接收的包和字节的数量、在该逻辑端口处检测到的每种类型的错误的数量等等进行计数。 For example, each logical port 58 may have its own set of management information base (MIB) counters, the counter of the number of packets and bytes transmitted and received by this port logic detects the logical port to the number of each type of error, etc. counted. 每个逻辑端口可以具有其自己的过滤表,这允许每个逻辑端口独立地实施过滤过程,诸如使用针对每个逻辑端口的独立准则基于包类型或者虚拟局域网(VLAN)类型等过滤某些类型的包;和/或过滤多播地址。 Each logical port can have its own filter table, which allows each logical port is independently a filtration process, such as the use of certain types of filtering criteria for the independent each logical port based on the packet type or virtual local area network (VLAN) type, etc. packets; and / or multicast address filtering. 其它过滤配置包括:用于过滤以太网的“SNAP”帧、“JUMB0”(大型)帧、或用于包的其它帧格式的准则。 Other filter configuration comprising: means for filtering Ethernet "SNAP" frame, Guidelines "JUMB0" (large) frame, or other frame format for packets. 配置可以包括VLAN提取配置,其允许从进入包的帧中提取VLAN标志。 Configuration may include extracting VLAN configuration, which allows the extraction from the frame into the VLAN tagged packet. 此外,配置可以被设置为针对于可以在找到检查和错误(例如针对IP或TCP协议)时采取的动作,诸如允许包通过,或者在没有发现错误的情况下不采取动作。 Further, the configuration may be arranged to be directed to find and check the actions taken when the error (for example IP or TCP protocol), as allowed by the package, or to take no action in the absence of errors found. 同样,配置资源可以包括对本发明的其它特征的使能设置,诸如预连接排队(下文参考图9描述)。 Similarly, the allocation of resources may include other features that the present invention can be provided, such as a pre-connection queues (described below with reference to FIG. 9).

[0056] 逻辑端口58允许多个OS分区共享可以在单个网络适配器20上提供的单个物理端口22集合。 [0056] The logical ports 58 may allow multiple OS partitions to share a single physical set of ports 22 provided on a single network adapter 20. 通过本发明,潜在大量的OS分区(例如25个)可以在使用数量少得多的物理端口(例如5个)之时全部访问网络。 By the present invention, a potentially large number of OS partitions (e.g., 25) may be (e.g., 5) all the time to access the network using a much smaller number of physical ports. 另一优点是端口组的可配置性,从而一个组的端口可以在物理级被设置于例如IX IOG或4X IG的带宽,而不会影响逻辑或级别视图。 Another advantage is that the configuration of the port group to a group of ports may be provided, for example, bandwidth or 4X IG IX IOG in the physical level, without affecting the level or logical view. 因此,当物理端口带宽分配改变时,端口的OS分区视图不需要改变。 Thus, when the physical port bandwidth allocation changes, the OS partitioned view port need not be changed. 此外,OS分区可以被分配逻辑端口,其可以出于更高效率和速度被分布,以便分布带宽,即,每个端口组被限于大致相同的带宽总数,从而允许快速通信,而无需为每个OS分区提供专用网络适配器和物理端口。 In addition, the OS partitions can be assigned logical port, which may be done for greater efficiency and speed of the profile, so that distribution of bandwidth, i.e., each port group is substantially the same as the total number of limited bandwidth allowing for fast communication, without the need for each OS partition dedicated network adapter and physical port.

[0057] 图3是包括逻辑交换机的本发明的通信系统100的框图。 [0057] FIG. 3 is a block diagram of a communication system according to the present invention includes logical switch 100. OS分区16在服务器系统10上提供,并被逻辑端口58映射到端口组102。 OS partition 16 provided on the server system 10, and port 58 is mapped to the logical port groups 102. 物理端口22也被包括在端口组102中。 22 also includes a physical port in the port group 102.

[0058] 逻辑端口58通过逻辑交换机104连接于相关联的物理端口22。 [0058] The logical ports 58 by the logical switch 104 is connected to the physical port associated 22. 这些逻辑交换机是优选地在网络适配器20中用硬件实现的逻辑交换机,并且确定用于由OS分区16发送和接收的包的路径。 These logical switches are preferably used in the network adapter 20 hardware logic switch 16 and determines a path for transmitting and receiving packets from the OS partitions. 逻辑端口和物理端口全部成为连接到逻辑交换机的虚拟端口,其中逻辑交换机可以交换到这些虚拟端口中的任一个,以通过该端口发送数据或从该端口接收数据。 All physical port and logical port becomes a virtual switch port connected to the logic, wherein the logic switch to any of these can be exchanged in a virtual port, through the port to send or receive data from the port.

[0059] 如图3所示,逻辑交换机104可以被提供用于网络适配器的每个物理端口22,并且将该物理端口链接到关联于该物理端口22的逻辑端口58。 [0059] 3, switch logic 104 may be provided for each physical port of the network adapter 22, and linked to the physical port associated with the physical port 22 of the 58 logical ports. 因此,物理端口105关联于逻辑交换机108,逻辑交换机108连接到逻辑端口109a-c和分区112、114和116。 Accordingly, the physical port 105 associated with logical switch 108, the switch 108 is connected to logical ports 109a-c and the logical partitions 112, 114 and 116. 同样地,物理端口106关联于逻辑交换机110,逻辑交换机110连接到逻辑端口llla-c和分区118、120和122。 Similarly, the physical port 106 associated with logical switch 110, the switch 110 is connected to the logic logical port llla-c and partitions 118, 120 and 122.

[0060] 外部交换机124可以耦合于物理端口22,以在网络14和物理端口之间进行接口。 [0060] The switch 124 may be coupled to external physical ports 22, 14 to perform an interface between the network and the physical port. 此交换机是典型在网络适配器20和系统10外部的硬件组件。 The switch 10 is typically in the external network adapter 20 and the system hardware components. 例如,外部交换机124可以将进入包路由到适当的物理端口(例如,其保持目的地MAC地址到端口的表),以及可以将从所有物理端口输出的包路由到网络14。 For example, switch 124 may be external incoming packets routed to the appropriate physical port (e.g., which holds the destination MAC address port table) and may route packets from all the output physical ports to the network 14. 外部交换机124可以是层2或层3外部交换机,或者处理这两层。 External switch 124 may be an external layer 2 or layer 3 switch, or process the two layers.

[0061] 逻辑交换机104不仅可以将进入包发送到正确的OS分区16以及将外出包从OS分区16发送到相关联的物理端口,而且可以将适当的包从一个OS分区16发送到同一服务器系统10中的一个或多个其它OS分区16。 [0061] The logical switch 104 may not only enter the packet to the correct OS partition 16, and the outgoing packets from the OS partitions 16 to the physical port associated with, and may be an appropriate packet transmitted from one OS partition 16 to the same server system 10 or a plurality of other OS partitions 16. 当一个包将在内部从一个OS分区被发送到另一OS分区时,在此被称为“返转(wrap) ”路径,这指示出该包在服务器中返转。 When a packet is sent from one partition to another OS OS partition inside, it referred to herein as "wraparound (wrap)" path, which indicates the packet wraparound in the server. “非返转”路径是其中在OS分区和外部网络14之间传送包的路径。 "Non-wraparound" path is the path where the packet is transmitted between the external network and the OS partition 14. 因此,逻辑交换机104可以在服务器系统10和外部网络之间路由包,如路径128所指示的;在位于同一逻辑交换机104的两个OS分区之间路由包,如路径130所指示的;以及在位于不同逻辑交换机的两个OS分区之间路由包,如路径132所指示的。 Thus, logic switch 104 can route packets between the server and the external network system 10, as indicated by path 128; in the same logical switch 104 routes packets between two partitions the OS, as indicated by path 130; and located in different logical partitions switch routes packets between two OS, as indicated by path 132. 路径132示出了两个逻辑交换机18之间的路径可以通过适当的物理端口22以及通过外部交换机124。 Path 132 shows a path between two logic switches 18 through 22 and the appropriate physical port 124 by an external switch.

[0062] 图4是说明了用于向和从服务器系统上的多个OS分区发送包的方法200的流程图。 [0062] FIG 4 is a flowchart illustrating a method for the OS and the plurality of partitions from the server system 200 transmits a packet. 此过程是当网络适配器20获得来自OS分区16、通过物理端口22来自网络14、或者来自多播/广播管理器(以下描述)的信息包时来自网络适配器20的视角。 This process is the network adapter 20 as the viewing angle is obtained from an OS partition 16, from the network adapter from a network 14 or the packet from the multicast / broadcast manager (described below) through a physical port 22 20. 因此,过程200描述了被传送到网络的包以及从网络接收的包。 Thus, process 200 is described is transmitted to the packet network and a packet received from the network. 本领域普通技术人员将理解,此过程可以被分为两个不同过程,一个用于将包传送到网络14,以及一个用于从网络和返转路径接收包。 Those of ordinary skill in the art will appreciate that this procedure can be divided into two different processes, one for transmitting the packet to the network 14 and from the network for a forwarding path and returning the received packet. 所述方法优选地用硬件实现,诸如逻辑电路和门、处理器等,但可替换地可以用软件或软件和硬件的组合来实现。 The method is preferably implemented in hardware such as logic circuits and gates, a processor, etc., but may alternatively be a combination of software and hardware or software implemented.

[0063] 所述方法开始于202,并且在步骤204中,在网络适配器20处获得包。 [0063] The method begins at 202, and the packet is obtained at the network adapter 20 at step 204. 在一种情形中,包从OS分区16或服务器系统的多播/广播管理器(以下描述)获得,用于跨网络14进行传送或传送到另一OS分区16。 In one case, the packet from the OS partition 16 or a multicast / broadcast server system manager (described below) is obtained, for transmission across the network 14 or transmitted to another OS partition 16. 在另一种情形中,包通过网络适配器的物理端口22经由网络14从计算机系统12或其它设备获得(接收)。 In another case, the package 2214 is obtained from the computer system 12 or other device through a physical network adapter port via a network (reception).

[0064] 在步骤206,所述过程检查与所接收的包一起获得的包控制描述符,以确定包的状态。 [0064] In step 206, the process checks the package obtained with the received packet control descriptor of the packet to determine the state. 在所述实施例中,包控制描述符可以具有三个可能值之一,其中每个值指示出包的不同状态。 In the illustrated embodiment, the packet control descriptor may have one of three possible values, where each value indicating a different state of the package. 一个值指示出包具有“正常”状态,即,所述包尚未被修改用于与本发明一起使用。 Packet having a value indicating a "normal" state, i.e., the packet has not been modified for use with the present invention. 这一类包被OS分区16正常发送出或在网络14上被发送/接收。 This type of packet is transmitted normal OS partition 16 or be transmitted / received over a network 14. 第二值指示出该包具有“挤出(forceout)”状态,S卩,所述包已经被修改用于与本发明一起使用(如图5中详细描述的),以便自动被发送出网络适配器的物理端口22。 A second value indicating that the packet has "extrusion (forceout)" state, S Jie, the packet has been modified for use with the present invention (described in detail in FIG. 5), is automatically transmitted to the network adapter physical port 22. 第三值指示出该包具有“再循环(recirculate) ”状态,即,所述包已经被修改(如图5中详细描述的),以便自动被返转到服务器系统10中的OS分区16。 A third value indicating that the packet has a "recirculation (recirculate)" state, i.e., the packet has been modified (described in detail in FIG. 5), so as to automatically return to OS partition 16 in the server system 10.

[0065] 在步骤208,所述过程确定所述包是具有正常状态还是非正常状态。 [0065] In step 208, the process determines whether the packet is a normal condition or abnormal state. 如果所述包是正常包,则所述过程继续到步骤210,其中所述过程检查所述包是单播(UC)包还是多播(MC)/广播(BC)包。 If the packet is a normal packet, the process continues to step 210, where the procedure checks the packet is a unicast (UC) packet or a multicast (MC) / broadcast (BC) packet. 如所公知的,单播包具有单个指定目的地,多播包具有多个指定目的地,而广播包将被发送到所有可用目的地。 As is well known, a single unicast packet having a specified destination, a plurality of multicast packets having a specified destination, and the broadcast packet will be sent to all available destinations. 如果所述包是UC包,则所述过程继续到步骤212,其中所述过程检查所述包的目的地(DA)MAC地址是否指示出所述包是应该被发送到内部目的地,诸如服务器10的OS分区16,还是应该经由物理端口22被传送出网络。 If the packet is a UC packet, the process continues to step 212, wherein the process of checking the packet destination (DA) MAC address indicates whether the packet should be sent to the internal destination, such as a server OS partition 1610, or be sent out to the network 22 via the physical port. 所述包的目的地可以从该MAC地址确定。 Destination of the packet may be determined from the MAC address. 系统10的每个逻辑端口58已经被分配了MAC地址;因此,在经由物理端口22从网络接收到包时,将所获得的包的DA MAC与关联于接收了该包的物理端口的逻辑交换机的每个逻辑端口的每个MAC进行比较。 Each logical port 58 the system 10 has been assigned a MAC address; Accordingly, when the packet is received from the network via a physical port 22, the DA MAC associated with the acquired packet to the logical switch physical port receiving the packet each logical port of each MAC is compared.

[0066] 如果所述包将被发送到内部目的地,则所述过程继续到步骤214,其中所述包例如在内部被发送到位于下述逻辑端口的OS分区16,所述逻辑端口具有在所述包中发现的目的地地址MAC。 [0066] If the packet to be transmitted to an internal destination, then the process continues to step 214, wherein the packet is transmitted to, for example, the following logical port located OS partition 16 in the interior, said logical port having the destination MAC address found in the packet. 如上所述,目的地MAC地址被用于找到具有被映射到所想要的OS分区的相同MAC地址的逻辑端口58。 As described above, the destination MAC address is used to find logical port 58 having the same MAC address is mapped to a desired OS partition. 当所述包处在返转路径上时,即,它从OS分区或MC/BC管理器获得,并被发送到不同的OS分区,则所述包被注入网络适配器20的接收端多路分解逻辑,就好像所述包立即从网络和物理端口接收到一样。 When the packet is on the wraparound path, i.e., it is obtained from the OS partitions or MC / BC manager and transmitted to a different OS partitions, then the packet is injected into the receiving end of the multiplexer 20 is an exploded network adapter logic, if the packet received from the network and immediately to the same physical port. 接着所述过程在218完成。 The process is then complete at 218.

[0067] 如果在步骤212所述包未在内部被发送,即,所述包将在网络上进行传送,则在步骤216,所述包从适当的物理端口22输出,以在网络14上被发送到目的地。 [0067] If the transmitted packet at step 212 is not the inside, i.e., the packet will be transmitted on the network, then at step 216, the packet output from the appropriate physical ports 22, 14 so as to be on the network sent to the destination. 如上所述,所述包通过关联于下述端口组的物理端口22被发送出,所述端口组包括在步骤204从其获得所述包的OS分区的逻辑端口。 As described above, the packet 22 is sent to the physical port associated by the following port group, the port group including the logical port of the packet is obtained from the OS partitions at step 204. 接着所述过程在218完成。 The process is then complete at 218.

[0068] 如果在步骤210发现所述包是多播或广播(MC/BC)包,则所述过程继续到步骤220,其中所述包从网络适配器20发送到服务器系统10的内部MC/BC管理器。 [0068] If in step 210 the packet is found to multicast or broadcast (MC / BC) packet, the process continues to step 220, where the packet sent to the network adapter 20 of the server system 10 from inside the MC / BC Manager. 如果在步骤204 OS分区16提供包,则所述包在返转路径上被发送到网络适配器20的接收端多路分解逻辑,就好像所述包立即从网络接收到,并跟随到MC/BC管理器的多路分解流。 If the package provided in step 204 OS partition 16, then the packet is transmitted to the network adapter receives the multiplexer 20 in the logic decomposition wraparound path, immediately if the packet received from the network, and to follow the MC / BC multiple managers break down stream. 所述过程接着在218完成。 The process is then complete at 218. MC/BC管理器可以是在服务器系统10上提供的软件过程,并且可以比使用硬件更慢,但是由于MC或BC包典型地只占所有网络流量的很小百分比,所以这不会显著降低系统性能。 MC / BC manager software processes may be provided on the server system 10, and may be slower than the hardware used, but since the MC or BC packets are typically only a small percentage of all network traffic, so it does not significantly reduce the system performance. 下文参考图5描述了MC/BC管理器当接收包时的过程。 Hereinafter described with reference to FIG. 5 MC / BC manager procedure when receiving a packet.

[0069] 如果在步骤208发现所接收的包不具有正常状态,则所述包从MC/BC管理器获得。 [0069] If you have not found a normal state in step 208 the received packet, then the packet is obtained from the MC / BC manager. MC/BC管理器已经修改了在步骤220的之前迭代中被发送到它的包的状态,这是通过修改所述包的包控制描述符,或者MC/BC管理器已经创建了具有非正常状态的复制包,如下文参考图5描述的。 MC / BC manager has changed its status is sent to the packet before the iteration step 220, this is by modifying the packet control descriptor of the packet, or MC / BC manager has created a non-normal state having replication package 5 is described below with reference to FIG. 所述过程200在步骤222检查所述包控制描述符,以确定所接收的非正常包具有“挤出”状态还是“再循环”状态。 The process 200 at step 222 the packet control descriptor is checked to determine whether the received packet has a non-normal "extrusion" state or an "recycle" state. 如果所述包是挤出包,则所述过程继续到步骤224,其中所述包经由物理端口被传送出到网络14,以被发送到由其多播/广播MAC地址所指示的目的地,即,此包已被MC/BC管理器指定发送到外部。 If the packet is an extruded packet, the process continues to step 224, wherein the packet is transmitted out to the network via a physical port 14, to be transmitted to the destination by a multicast / broadcast MAC address indicated, That is, this packet has been transmitted to the external designated MC / BC manager. 接着所述过程在218完成。 The process is then complete at 218.

[0070] 如果在步骤222所述包是再循环包,则所述过程继续到步骤226,其中所述包被发送到由伴随所述包的目的地标志所指示的内部逻辑端口(所述标志优选地与包分离)。 [0070] If at step 222 the packet is a recirculated packet, the process continues to step 226, wherein the packet is transmitted to the internal logic of the port of the packet destination flag accompanying indicated (the flag preferably, the packet separating). 所述标志和包控制描述符与被返转的包一起沿着内部返转路径被传递到接收端多路分解逻辑。 The flag and the packet control descriptor is returned with the packet transfer paths internal wraparound is transmitted to the receiving end along demultiplexing logic. 所述目的地标志被MC/BC管理器添加到所述包,以提供指向所述包将被路由到的内部逻辑端口58的指针,并且由此适配器20在此步骤中忽略所述包的DA MAC地址,并将所述包路由到位于在所述标志中指定的逻辑端口的OS分区。 The destination flag is added MC / BC manager to the packet to provide the packet will be routed point to the internal logic of the pointer port 58, 20 and ignoring the packet in this step whereby the adapter DA MAC address and routes the packet to the flag at the specified logical port OS partition. 接着所述过程在218完成。 The process is then complete at 218. 在本发明中对目的地标志的使用允许所述包的初始DAMAC地址在包中保持未修改,从而允许所述包的DA MAC地址被需要它的任意其它之后的网络过程所使用,这是当前实现的重要优点。 Use of the packet destination flag allows an initial address remains unmodified DAMAC in the present invention in a package, allowing the DA MAC address of the packet is any other network that need it to be used after the process, which is currently An important advantage achieved.

[0071] 图5是说明了用于管理在或从服务器系统10中分发的多播或广播包的本发明的方法250的流程图。 [0071] FIG. 5 is a flowchart illustrating the method for managing the present invention or a packet from the multicast or broadcast distribution server system 10 250. 此方法优选地由MC/BC管理器(图7中示出)实施,其由服务器系统10的软件实现,并且其可以与网络适配器20进行接口。 This method is preferably implemented by the MC / BC manager (shown in FIG. 7), which is implemented by the software server system 10, and which may interface with the network adapter 20.

[0072] 所述方法在252开始,并且在步骤254中,MC/BC包由MC/BC管理器从网络适配器20接收。 [0072] The method begins at 252, and in step 254, MC / BC packet from the MC / BC manager 20 receives from the network adapter. 在图4的方法200的步骤220中由适配器将MC/BC包发送到管理器。 In step 200 of the method of FIG. 4 from the adapter 220 MC / BC packet is sent to the manager. 多播或广播包具有指示出该包的该MC或BC状态的MAC地址。 Multicast or broadcast packet having the MAC address of the MC or BC indicating the state of the packet. 在步骤256,所述过程检查此包是否将被返转到MC/BC管理器驻留在其中的系统10的OS分区16。 In step 256, the process checks if the packet is returned to the MC / BC manager resident in the system partition 1610 of the OS. 由于MC或BC包将被发送到多个目的地,管理器可以检查所有的目的地。 Since the MC or BC packet will be sent to multiple destinations, the manager can check all destinations. 在此确定中,MC/BC管理器检查任何其余的OS分区是否需要接收所述包或者最初接收的包的副本。 In this determination, MC / BC manager checks whether any remaining copy of the packet OS partition needs to receive the first packet or received. 广播包将总是需要被返转以及在网络14上从物理端口输出到可用目的地;按照需要,返转或外部传送均可以被首先实施(被复制的包将最终被发送到所有目的地,如下所述)。 Broadcast packets will always need to be transferred back to the output physical port and from the destination is available on the network 14; as required, the external transfer or reversal can be implemented first (copied packets will eventually be sent to all destinations, below). 取决于由多播MAC提供的指定目的地(MC目的地通过使用所维护的针对具体MC地址进行登记的分区的数据库来确定),多播包可能需要被返转到一个或多个内部OS分区,和/或被传送到外部目的地。 Depends on the specified destination provided by the MAC multicast (MC destination by using the maintenance of the MC address for the particular partitioning a registration database to determine), multicast packets may need to be returned to one or more internal partitions OS and / or transmitted to an external destination.

[0073] 如果管理器所接收的包由OS分区16在内部发出,则管理器将总是把包发送出以被传送到网络。 [0073] If the received packet manager emitted from inside OS partition 16, the manager will always send the packet to the transmitted to the network. 适配器20的传送端逻辑将包提供给管理器。 Transmitter logic adapter 20 is provided to the packet manager. 管理器通过比较所述包的源MAC以及系统10的内部MAC并找到匹配而知道所述包在内部发出;在此情形中,所述管理器将总是把包发送出物理端口,并且该包的特定外部目的地稍后被确定(例如,通过外部交换机;管理器在系统10内部,并且不知道哪些特定的外部目的地应该接收多播包)。 Manager by comparing the packet and the source MAC of the MAC 10 and the internal system to find matching packet is sent inside the known; in this case, the manager will always send the packet a physical port, and the packet the specific external destinations is later determined (e.g., via an external switch; within the system manager 10, and does not know which particular external destinations should receive a multicast packet). 不过,如果管理器并未将所述包的源MAC匹配于系统10的内部MAC之一,则它知道所述包从网络14接收,并通过适配器20的接收端多路分解逻辑,并且它将不会发送出任何包以被传送到外部网络。 However, if the manager is not the source MAC address to the packet matches one internal MAC system 10, it knows the packet received from the network 14, and decomposed by the logic of the multiplexer receiving adapter 20, and it It does not send any packets transmitted to the external network. [0074] 如果对于此包的拷贝将不实施返转,则所述过程继续到步骤258,其中管理器通过把适当值写入所述包的包控制描述符中而将包的状态设为“挤出”。 [0074] If the packet for this copy will not be a wraparound embodiment, the process continues to step 258, wherein the manager control descriptor and status packet to the packet by writing appropriate values ​​to the packet " out. " 接着所述过程继续到步骤260,其中管理器将所述包发送到网络适配器20。 The process then continues to step 260, wherein the packet manager 20 transmits to the network adapter. 如上所述,在方法200的步骤204网络适配器接收包,并且将其发送出物理端口22。 As described above, the method in step 200 of the network adapter 204 receives the packet, and sends it out physical port 22.

[0075] 如果对于此包将实施返转,则所述过程继续到步骤262,其中管理器通过把适当值写入所述包的包控制描述符中而将包的状态设为“再循环”。 [0075] If the packet for this embodiment wraparound, the process continues to step 262, wherein the packet manager by writing appropriate values ​​to the packet control descriptor packet and the status is set to "recycle" . 此外,管理器添加再循环标志以伴随所述包,其中所述标志包括对所述包将被发送到的逻辑端口的指定。 Further, the manager added to the recirculation flag accompanying the packet, wherein the mark comprises a specified logical port of the packet to be transmitted. 这允许网络适配器20通过读取不同于MAC地址的信息而将再循环包路由到逻辑端口,从而允许所述包的初始多播MAC地址保持为未修改。 This allows the network adapter 20 and the recycle route packets to the logical port by reading the information is different from the MAC address, the packet so as to allow an initial multicast MAC address is left unmodified. 接着所述过程继续到步骤260,其中管理器将所述包(以及标志)发送到网络适配器20 。 The process then continues to step 260, wherein the packet manager (and sign) to the network adapter 20.

[0076] 在步骤258或步骤262之后,步骤264被实施,其中所述过程检查是否存在要发送的包的另一拷贝。 [0076] After step 258 or step 262, step 264 is implemented, where the procedure checks whether there is another copy of the packet to be transmitted. 由于多播和广播包将被发送到多个目的地,MC/BC管理器确定哪些目的地被指定,并且在此步骤检查是否存在任何目的地尚未被发送包的副本。 Since multicast and broadcast packets to be transmitted to multiple destinations, MC / BC manager determines which destination is specified, and checks whether there is any copy of the packet destination has not been transmitted in this step. 如果存在要发送的另一个包,则在步骤266,管理器复制初始接收的包,并且所述过程返回步骤256,以便在将已复制包发送到网络适配器20用于正确路由之前相应地修改已复制包。 If there is another packet to send, then at step 266, manager replication initially received packet, and the process returns to step 256 so as to send the copied packets have been modified accordingly before routing network adapter 20 for proper copy the package. 如果在步骤264不存在需要被发送的任何复制包,则所述过程在268完成。 If at step 264 any duplicate packets need to be sent does not exist, the process 268 is completed. 在所述实施例中,MC/BC管理器不需要复制挤出包,因为外部交换机124可以复制将在网络上被发送到外部目的地的包。 In the illustrated embodiment, MC / BC manager does not need to copy out the package, because the external switch 124 can copy the packet to be transmitted to the external destination on the network.

[0077] 应该注意,在其它实施例中,所述步骤可以用不同于在过程250中所示出的顺序来实施。 [0077] It should be noted that in other embodiments, the steps may be implemented in an order different than shown in process 250. 例如,管理器可以创建所接收包的副本,并在缓冲器中保持所有已复制包,直到所有包都经由步骤258和/或262进行准备为止,并且接着在类似于步骤260的步骤中将它们全部立刻发送到网络适配器。 For example, a manager can create a copy of the received packet, and keep all the duplicate packets in the buffer until all packets are ready for up via step 258 and / or 262, and then in a step similar to step 260 in which the all immediately sent to the network adapter.

[0078] 图6是说明了如上参考图4所述的单播(UC)包流的本发明的系统300的框图。 [0078] FIG. 6 is a block diagram illustrating packet flow system of the present invention described above with reference to 300 of FIG unicast (UC) 4 above. 被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。 Is shown as an Ethernet adapter network adapter 20 comprises a logic switch 302, which references logical ports 304a-c and physical port 306. OS分区308、310和312耦合于逻辑端口304a-c。 OS partition 308, 310 and 312 coupled to the logical ports 304a-c. 在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上。 In one example, the partition 308, 310 and 312 may be a computer system 324 on the network 14 and 326 in the same subset. 例如,分区308可以具有MAC地址11以及TCP/IP地址9. II 1,分区310可以具有MAC地址12以及TCP/IP地址9. II 2,分区312可以具有MAC地址13以及TCP/IP地址9. II 3,计算机系统324可以具有MAC地址31以及TCP/IP地址9. II 13,以及计算机系统326可以具有MAC地址41以及TCP/IP 地址9. II 14。 For example, the partition 308 may have a MAC address 11 and the TCP / IP address 9. II 1, the partition 310 may have a MAC address 12 and the TCP / IP address 9. II 2, the partition 312 may have a MAC address 13 and the TCP / IP address 9. II 3, the computer system 324 may have a MAC address 31 and the TCP / IP address 9. II 13, and a computer system 326 may have a MAC address 41 and the TCP / IP address 9. II 14.

[0079] 在返转由OS分区传送的包的示例中,分区308在路径318上发送出正常的单播包,并且所述包一旦由网络适配器20的逻辑交换机302接收就进行UC目的地MAC地址查找过程212a。 [0079] In the example of wraparound transmitted by the packet OS partition, the partition 308 transmits a normal unicast packet on the path 318, and upon receiving the packet switch 20 by the network adapter logic 302 proceeds UC destination MAC address lookup process 212a. 在以上图4的步骤212中描述了UC MAC查找。 In step 212 of FIG. 4 above describe the UC MAC lookup. MAC查找指示出所述包应该被返转,于是所述包被逻辑交换机发送,以在路径318上继续到达目的地,所述目的地是经由逻辑端口304b到达的OS分区310。 MAC lookup indicates that the packet should be transferred back, then the packet is transmitted logical switch, to continue on the path 318 to the destination, the destination is reachable via the logical port 304b OS partition 310. 如果分区310发出具有目的地为分区308的正常单播包,则在反方向将发生类似过程。 If the partition 310 to a destination having a normal single-partition multicast packet 308, then a similar process in the opposite direction will occur.

[0080] 在非返转包传送或接收的不同示例中,分区312在路径320上发送出正常UC包,并且所述包一旦由逻辑交换机302接收就类似地进行UC目的地MAC地址查找过程212b。 [0080] In a different example transmit or receive a non-return subcontract, the partition 312 sends on path 320 UC normal packet and the packet once received by the logical switch 302 similarly performed UC destination MAC address lookup process 212b . MAC查找指示出所述包应该被发送出外部,于是逻辑交换机在路径320上将所述包发送通过物理端口306、通过外部交换机322、以及到达目的地计算机系统324。 MAC lookup indicates that the packet should be sent out of the outside, then the logical switch 320 on the transmission path of the packet through the physical port 306, through the external switch 322, and the destination computer system 324. 如果计算机系统324发出由网络适配器20通过物理端口306接收的正常单播包,则在反方向将发生类似过程;所述包将进行位于逻辑交换机的DA MAC查找,并通过逻辑端口被提供给其目的地,例如通过逻辑端口304c到达分区312。 If the computer system 324 sent by the network adapter 20 by a normal physical port 306 receives unicast packets, then a similar process in the reverse direction occurs; the packet switch will be at a logic DA MAC lookup, and is supplied to the logical port by destination, for example, partition 312 reaches the logical port 304c.

[0081] 图7是说明了如上参考图4和5所述的多播/广播(MC/BC)包外出流(传送)的本发明的系统350的框图。 [0081] FIG. 7 is a block diagram illustrating the system of the present invention outgoing stream (transmission) 350 described above with reference to FIGS. 4 and 5 of the multicast / broadcast (MC / BC) packet. 被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。 Is shown as an Ethernet adapter network adapter 20 comprises a logic switch 302, which references logical ports 304a-c and physical port 306. OS分区308、310和312耦合于逻辑端口304a_c。 OS partition 308, 310 and 312 are coupled to the logical port 304a_c. 在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上,类似于以上对于图6所描述的那样。 In one example, the partition 308, 310 and 312 may be a computer system 324 on the network 14 and 326 in the same subset, similarly as described above for FIG. 6.

[0082] 在此示例中,包的外出流从OS分区提供给其它目的地。 [0082] In this example, outgoing packet stream supplied from the OS partitions to other destinations. 分区308在路径352上发送出正常的MC或BC包,并且所述包一旦由逻辑交换机302接收就进行MC目的地MAC地址检查210a,如以上图4的步骤210中描述的。 Partition 308 sent on path 352 normal MC or BC packet, and the packet once received by the logical switch 302 proceeds MC destination MAC address check 210a, as described above in step 210 of FIG. 4. MAC检查指示出所述包为MC或BC包,于是所述包在路径352上被发送到在服务器系统10中实现的MC/BC管理器354。 MAC check indicates that the packet is a MC or BC packet, so the packet is sent to the server system 10 MC implemented / BC manager 354 on path 352.

[0083] MC/BC管理器354确定所述包的目的地,产生复制包,改变包描述符,以及添加再循环标志,如上文参考图5所描述的。 [0083] MC / BC manager 354 determines the destination of the packet, the packet generation copy, change the packet descriptors, and add the recirculation flag, described above with reference to FIG 5. 在此示例中,管理器354已确定所述包是具有三个目的地的MC包,并且四个包将被发送出去:两个返转到OS分区,两个发送到外部目的地。 In this example, the manager 354 has determined that the packet destination is a MC packet having three and four packets will be sent out: two back to OS partition, two transmission to an external destination. 因此,管理器354在路径358上发送出再循环MC包以及再循环标志356到适配器20,所述适配器20读取标志356以找到逻辑端口304c,并将所述包返转到分区312。 Thus, manager 354 sends out packets on the MC recirculation path 358 and the flag 356 is recycled to the adapter 20, the adapter 20 reads the flag 356 to find logical port 304c, and the packet back to the partition 312. 类似地,管理器354在路径362上发送出再循环MC包以及再循环标志360到适配器20,所述适配器20读取标志360以找到逻辑端口304b,并将所述包返转到分区310。 Similarly, the manager 354 transmits the MC packet recirculation path 362 and a recirculation flag 360 to the adapter 20, the adapter 20 reads the flag 360 to find logical port 304b, and the packet back to the partition 310. 管理器354还在路径364上发送出挤出MC包到适配器20,所述适配器20将这些包发送出物理端口306并通过外部交换机322。 Manager 354 is also transmitted on the path 364 to the adapter 20 extruded MC packet, the adapter 20 transmits the packets to the physical ports 306 and 322 through the external switch. 外部交换机322复制所述包,从而通过网络14所述包的副本之一被提供给外部计算机系统324,另一副本被提供给外部计算机系统326。 Copying the packet external switch 322 so as to be supplied to the external computer system 324 through one of the copy of the packet network 14, another copy is provided to external computer system 326.

[0084] 图8是说明了如上参考图4和5所述的多播/广播(MC/BC)包进入流(接收)的本发明的系统370的框图。 [0084] FIG. 8 is a diagram illustrating the above with reference to FIG multicast / broadcast (MC / BC) 4 and 5 a block diagram of the system of the present invention, a stream (received) into the package 370. 被示为以太网适配器的网络适配器20包括逻辑交换机302,其引用逻辑端口304a-c以及物理端口306。 Is shown as an Ethernet adapter network adapter 20 comprises a logic switch 302, which references logical ports 304a-c and physical port 306. OS分区308、310和312耦合于逻辑端口304a_c。 OS partition 308, 310 and 312 are coupled to the logical port 304a_c. 与上文类似,在一个示例中,分区308、310和312可以与网络14上的计算机系统324和326在相同子集上。 Similarly to the above, in one example, the partition 308, 310 and 312 may be on the same subset of the computer system 324 and 326 in the network 14.

[0085] 在此示例中,来自外部目的地(诸如计算机系统326)的包的进入流被提供给内部OS分区。 [0085] In this example, the packet flow from the outside into the destination (such as a computer system 326) is supplied to the internal OS partitions. 计算机系统326在路径372上发送出正常的MC或BC包,并且在适当时外部交换机322将所述包的一个拷贝发送到网络14上的其它目的地,诸如外部计算机系统324。 The computer system 326 sent on path 372 normal MC or BC packet, and, when appropriate external switch 322 a copy of the packet is sent to other destinations on the network 14, such as an external computer system 324. 交换机322将另一个包拷贝通过物理端口306发送到系统10,并且所述包在路径374上被路由到逻辑交换机。 Another packet switch 322 will be copied to the system 10 via the physical port 306, and the packet is routed to the logical switch on path 374. 所述包一旦由逻辑交换机302接收就进行MC目的地MAC地址检查210a,如以上图4的步骤210中描述的。 Once the packet is received by the logical switch 302 proceeds MC destination MAC address check 210a, as described above in step 210 of FIG. 4. MAC检查指示出所述包为MC或BC包,于是所述包在路径374上被发送到MC/BC管理器354。 MAC check indicates that the packet is a MC or BC packet, so the packet is transmitted to the MC / BC manager 354 on path 374.

[0086] MC/BC管理器354确定所述包的目的地,产生复制包,改变包描述符,以及添加再循环标志,如上参考图5所描述的。 [0086] MC / BC manager 354 determines the destination of the packet, the packet generation copy, change the packet descriptors, and add the recirculation flag, 5 described above with reference to FIG. 在此示例中,管理器354已确定所述包是具有三个内部目的地的MC包,并且该三个包将被发送到内部OS分区。 In this example, the manager 354 has determined that the packet is a MC packet having three internal destination, and the packet will be sent to three internal OS partitions. 因此,管理器354在路径378上发送出再循环MC包以及再循环标志376到适配器20,所述适配器20读取标志376以找到逻辑端口304c,并将所述包返转到分区312 (从管理器354到内部OS分区的路径也被称为“返转”)。 Thus, the manager 354 transmits the MC packet recirculation path 378 and a recirculation flag 376 to the adapter 20, the adapter 20 reads the flag 376 to find logical port 304c, and the packet back to the partition 312 (from Manager OS partition 354 into the interior of the path is also called "wraparound"). 类似地,管理器354在路径382上发送出再循环MC包以及再循环标志380,其被返转到逻辑端口304b以及分区310,以及管理器354在路径386上发送出再循环MC包以及再循环标志384,其被返转到逻辑端口304a以及分区308。 Similarly, the manager 354 transmits the MC packet recirculation path 382 and a recirculation flag 380, which is recycled back to MC packet logical port 304b and the partition 310, and a transmission manager 354, and then on path 386 loop flag 384, which is returned to the logical partitions 308 and port 304a.

[0087] 图9是用于给网络包排队的本发明的排队系统400的图示。 [0087] FIG. 9 is an illustration of a queuing system according to the present invention, the network packet queue 400. 服务器系统10可以包括队列集合,其用于保有将由OS分区内核接收、或者直接由每个OS分区的用户空间中的应用/过程接收的包,以及用于保有将由分区或用户空间过程传送到物理端口22的包。 The server system 10 may include a set of queues for receiving retained by the core OS partition, or directly received by the user space for each OS partition application / process packet, and a partition or retained by the user during transmission to the physical space port 22 of the package. 下述队列可以在系统10的主存储器中实现,其可以由网络适配器20访问以在队列中存储包,以及由协议栈和设备驱动程序访问以从队列中检索包。 The following queues may be implemented in main memory system 10, which may be accessed by the network adapter 20 to store the packet, and an access by the device driver and protocol stack to search packet from the queue in the queue.

[0088] 在系统400中包括的第一类队列是连接队列402。 [0088] In system 400 includes a first type of connection queue 402 is a queue. 这些队列提供用于被发送到在服务器系统的用户空间中的过程404的包的缓冲区,以及从过程404通过网络发送到目的地(诸如其它过程、OS分区或外部计算机系统)的包的缓冲区。 Packet buffers provided for these queues is transmitted to the user space in a server system 404 processes the packet, and a destination (such as other processes, or the OS partition external computer system) is sent from process 404 through a network buffer Area. 用户空间是提供下述过程的OS分区中的软件空间,在所述过程中应用运行,并且应用通过网络连接与网络14通信。 User space is a space to provide the following software processes OS partition, an application running in the process, and the application is connected to the network 14 via a communication network. 典型在OS的内核中运行的某些或全部TCP/IP栈被迁移到每个用户空间,并且具有其自己的连接队列。 Some or all of the TCP is typically run in the OS kernel / IP stack is moved to the space for each user, and has its own connection queue. 这允许高效率,因为对于许多TCP/IP发送和接收操作,内核可以被绕过。 This allows high efficiency, because for many TCP / IP transmitting and receiving operation, the core may be bypassed. 到用户空间中的过程/应用404的每个网络连接具有其自己的用于存储包的连接队列402。 To user space processes / applications 404 for each network connection has its own connection queue 402 for storing the packet. 例如,当接收到TCP/IP包时,TCP/IP栈过程可以在连接直接表中查找连接信息,以找到连接队列号,从而所接收的包可以被放置在适当的连接队列中并最终由所述栈处理。 For example, when receiving the TCP / IP packet, TCP / IP stack processes can be found in direct connection table, connection information, to find the connection queue number, so that received packets may be placed in an appropriate connection queue and ultimately by the said stack processing. 从队列中的包处理的信息被发送到用户空间中的过程(例如每个过程中的应用)。 Packet processing is transmitted from the queue (e.g., each application process) the user space processes. 所接收的包被网络适配器20中的硬件指引到正确的队列(在2005年4月I日提交的题为“HostEthernet Adapter for a Networking Offload in aServer Environment,, (RPS 9 20050059 US1/3485)的相关专利申请中描述),并且接着用户空间中的TCP栈接管了对访问队列的控制。 The received packet is directed hardware 20 network adapter to the correct queue ( "HostEthernet Adapter for a Networking Offload in aServer Environment (RPS 9 20050059 US1 / 3485) entitled related April 2005 I filed ,, described in patent application), and then the TCP stack in user space takes over control of the access queue.

[0089] 在一个示例中,连接队列可以最佳地适于长时间连接,其中不期望出现IP包的碎片,并且期望低等待时间。 [0089] In one example, a connection queue can be optimally adapted to a long connecting fragmented IP packet undesirable, and low latency is desirable. 用户空间应用或过程可以利用用户-空间套接字库(user-spacesocket library),其支持由网络适配器10提供的连接排队机制。 Application or user space process may utilize a user - connection queuing space socket library (user-spacesocket library), which is supported by the network adapter 10 is provided.

[0090] 在系统400中包括的第二类队列是默认逻辑端口(LP)队列406。 [0090] In system 400 includes a second type of queue is the default logical port (LP) queue 406. 这些队列提供用于被发送到服务器系统10的OS分区16的内核408的包的缓冲区。 These queues provide buffers for packets being sent to the core server system OS partition 10 16 408. 向每个OS分区16提供其自己的默认LP队列406,从而每个默认LP队列可以关联于与期望的OS分区相关联的单个逻辑端口58。 Provided with its own default LP queue 406 to each OS partition 16, such that each individual logic default LP queue may be associated with the desired OS partition 58 associated with the port. 因此,每个逻辑端口通过其自己的默认队列对应于逻辑以太网接口。 Thus, each logical port by its own default queue corresponding to the logical Ethernet interface. 典型地,默认LP队列中的包被相关联的操作系统的内核408所处理,即,操作系统的内核连网栈处理用于该操作系统的默认队列406。 Typically, the default LP queues packets associated with the operating system kernel process 408, i.e., the operating system kernel networking stack processing for the default operating system queue 406. 在本发明中,如果对于包的MAC地址未使能预连接查找(预连接查找使能可以是可由系统管理器或操作者配置的逻辑端口配置资源之一),或者如果包为再循环多播/广播包,则当对于包无法找到连接队列402时,默认LP队列406存储所述包,如下文参考图10更详细描述的。 In the present invention, if the MAC address for the packet pre-connection lookup is not enabled (enable pre-connect search may be one of the logical port is configured by the system resource manager or operator configuration), or if the packet is a recirculated multicast / broadcast packet, the packet can not be found when connected to the queue 402, the default LP queue 406 stores the packet, as described below with reference to FIG. 10 described in greater detail.

[0091] 默认LP队列406 (以及下述的特殊默认队列410)中的每一个可以被分配属性,类似于上文参考图2描述的、逻辑端口58可以被分配属性的方式。 [0091] The default LP queue 406 (and the following special default queue 410) each of which may be assigned attributes, similarly, the logical port 58 may be assigned attributes embodiment described above with reference to FIG 2. 例如,对每个队列的过滤可以被使能或禁用。 For example, it may be enabled or disabled for each filter queue. 属性可以具有相同格式,用以进行配置以允许更容易的包管理。 Attribute may have the same format, for performing configured to allow for easier management package. 由于所述配置在队列类型之间相同,还可以共享某种硬件逻辑。 Since the configuration of the same type between the queues may also share some hardware logic.

[0092] 在系统400中包括的第三类队列是特殊默认队列410。 [0092] In the system 400 comprises a third type of queue is a special default queue 410. 这些队列被用于存储未被存储在其它可用队列中的包。 The queue is used to store the packet is not stored in other of the available queues. 在本发明中,提供了三种特殊默认队列:单播默认队列412、、多播默认队列414、以及广播默认队列416。 In the present invention, there is provided a three special default queue: unicast default queue 412 ,, multicast default queue 414, and a broadcast default queue 416. 当针对包无法找到默认LP队列406时,单播默认队列412存储所述包。 As for the package can not find the default LP queue 406, unicast default queue 412 stores the packet. 多播默认队列414以及广播默认队列416分别存储多播和广播包,所述包不匹配(位于网络适配器20的硬件中的)MAC查找表中的MAC地址之一,或者所述包是再循环的。 Multicast default queue 414 and a broadcast default queue 416 stores multicast and broadcast packets, the packet does not match (in hardware in the network adapter 20) to find one of the MAC in the MAC address table, the packet is recycled or of. 这些在下文参考图10更详细描述。 These are described in more detail below with reference to FIG. 10. [0093] 以上列举的每类队列优选地关联于在网络适配器20上提供的每个物理端口。 [0093] Every class queue listed above is preferably associated with each physical port provided on a network adapter 20. 因此,每个物理端口优选地具有连接队列402的集合、关联于针对该物理端口的逻辑端口58的默认LP队列406的集合、以及特殊默认队列410的集合。 Thus, each physical port preferably has a set of connection queue 402 associated with the default set for the set of LP queue 406, and the special default logical port queue 58 physical port 410.

[0094] 图10是说明用于选择用于包存储的队列的本发明的方法450的流程图。 [0094] FIG. 10 illustrates a method for selecting a queue for storing packets of a flowchart 450 of the present invention. 此方法由网络适配器20上的硬件所实现,针对从网络14中或在返转路径上接收的包。 This method is implemented by hardware on the network adapter 20, or for a packet received from the network 14 on the wraparound path. 可替换地,其可以用软件和/或服务器系统10的不同组件来实现。 Alternatively, it may be software and / or different components of the server system 10 is achieved.

[0095] 所述方法开始于452,并且在步骤454,由网络适配器从网络14中或经由内部返转路径接收包。 The [0095] method begins at 452, and at step 454, by the network adapter 14 or from the network via the internal wraparound path of the received packet. 在步骤456,所述过程检查其是否是再循环包,即,已经被MC/BC管理器354指定用于返转路径的包,如上文参考图4和5所描述的。 In step 456, the process checks whether it is a recycled packet, i.e., 354 have been designated MC / BC manager wraparound path for packets, 4 and 5 as described above with reference to FIG. 再循环包已经被管理器处理,并由此可以被发送到其目的地;因此,如果所述包是再循环包,则所述过程继续到步骤470,以在默认LP队列中存储包,如下所述。 Recycling package manager has been treated, and thus may be sent to its destination; Thus, if the packet is a recirculated packet, the process continues to step 470, in the default LP queue to store the package, as follows the. 如果所述包不是再循环包,则在步骤457所述过程检查所述包是单播(UC)包还是多播(MC)/广播(BC)包。 If the packet is not recirculated packet, it checks the packet is a unicast (UC) packet or a multicast (MC) / broadcast (BC) packet in step 457 of the process. 这可以例如从所述包的MAC地址中确定。 This may for example be determined from the MAC address of the packet. 如果所述包是MC/BC包,则在步骤458所述过程分别在关联于接收了所述包的物理端口的特殊默认MC/BC队列414或416中存储包。 If the packet is an MC / BC packet, respectively, at step 458 the association process to receiving the default MC special physical ports of the packet / BC queues 414 or 416 stored the package. 所述过程接着在460完成。 The process 460 is then completed. 默认MC和BC队列414和416中的包最终被提供给MC/BC管理器354用于处理,如上文参考图5所描述的。 The default MC and BC queues 414 and 416 are supplied to the final package MC / BC manager 354 for processing, 5 described above with reference to FIG. 如果所述包已经到达专用于单个OS分区的物理端口上,则MC和BC队列中的包可以被提供给中央OS队列,例如,用于该分区的默认LP队列406。 If the packet has arrived on a dedicated OS partition a single physical port, the MC and BC queues in the packet may be provided to the central OS queue, e.g., a default LP queue 406 that partition.

[0096] 如果在步骤457确定所述包是UC包,则所述过程继续到步骤462,其中实施连接查找。 [0096] If at step 457 the packet is a UC packet is determined, the process proceeds to step 462, wherein the connection lookup embodiment. (在一实现中,即使存储在连接队列中,也可以实施对逻辑端口的MAC地址查找,例如可以实施6元组查找,其中第6元组是逻辑端口号;这允许相同的5元组连接信息在每个逻辑端口58上出现且不会重叠。)在所述实施例中,适配器20上的硬件采用包中的连接信息的2元组、3元组或5元组模式,并且当连接成为可用或被建立时尝试将该模式与存储在连接表中的连接信息相匹配。 (In an implementation, even in a connection queue may be implemented stored MAC address of the logical port lookup, for example, Example 6-tuple lookup, wherein the sixth tuple is the logical port number; this allows the same 5-tuple connection appears on each logical port 58 and does not overlap.) in the illustrated embodiment, the hardware adapter 20 on a 2-tuple connection information packet, the 3-tuple or quintuple mode, and when the connector try the connection information pattern stored in the connection table becomes available or when the match established. 所述方法的一实施例在2005年4月I日提交的题为“Method andApparatus for Providing a NetworkConnection Table” (RPS92005006IUS1/3487)的共同待决的专利申请中描述,在此通过参考将其整体引入。 One embodiment of the method in "Method andApparatus for Providing a NetworkConnection Table" (RPS92005006IUS1 / 3487) the co-pending patent application entitled, filed April I described, incorporated by reference in its entirety herein .

[0097] 在下一步骤464,所述过程检查是否找到对于连接查找的匹配。 [0097] In the next step 464, the process checks whether a match is found for the connect search. 例如,是否在连接表中找到匹配的连接信息模式。 For example, if pattern matching to find the connection information in the connection table. 如果是,则所述过程在关联于匹配连接的连接队列中存储所述包。 If so, the process stores the packet in the connection associated with the matching connection queue. 例如,引用所想要的连接队列的多个指针可以与匹配的连接信息一起被存储在连接表中。 For example, a plurality of reference pointers connection queues may be desired to match the connection information is stored in the connection table together. 所述包可以最终从连接队列中进行处理,并被提供给适当的用户空间中的过程404。 The final package can be connected to the process from the queue and provided to the appropriate user space process 404. 接着所述过程在460完成。 The process is then complete at 460.

[0098] 如果在步骤464未找到对于所述包的匹配模式(或者如果对于所述包中的MAC地址未使能预连接排队),则所述过程在步骤468检查是否找到对于所述包的默认LP队列。 [0098] If step 464 is found to match the pattern of the packet (or if the MAC address of the packet to the pre-connection queuing is not enabled), then the process is found in step 468 of checking for the package The default LP queue. 如上所述,每个逻辑端口58都具有相关联的默认LP队列406。 As described above, each logical port 58 has an associated default LP queue 406. 通过实施在逻辑端口MAC地址(如上所述,每个逻辑包58被分配了MAC地址)的列表或表中对所述包的目的地MAC地址的查找,确定默认队列。 By implementing the logical port MAC address (as described above, each logical packet 58 is assigned a MAC address) of the list or lookup table to the destination MAC address of the packet, determine the default queue. 因此,在此步骤中,如果逻辑端口的MAC地址匹配所述包中的目的地MAC地址,则在步骤470所述过程在该逻辑端口的默认LP队列406中存储包,并且所述过程在460完成。 Thus, in this step, if the logical port MAC address matches the destination MAC address in the packet, at step 470 the queue process is the default logical port LP 406 stores the packet, and the process at 460 carry out. 在默认LP队列406中的包被路由到关联于这些队列的OS分区16的内核连网栈。 In the default LP queues 406 the packet is routed to the associated kernel networking stack to these queues OS partition 16.

[0099] 如果没有找到对于所述包的默认LP队列406,则所述过程继续到步骤472,以在关联于接收了所述包的物理端口的特殊默认UC队列412中存储所述包(如果特殊队列412被使能的话),并且所述过程在460完成。 [0099] If the packet is not found for a default LP queue 406, the process continues to step 472, a special default associated with the packet received in the physical port UC queue 412 stores the packet (if special queue 412 is enabled, then), and the process is completed at 460. 一个包可能并非意在发送到系统10的逻辑端口58和MAC地址中的任一个,并因此该包将不会匹配已配置逻辑端口MAC地址中的任一个;因此,它可以被存储在默认队列412中。 A transmitted packet may not be intended to either a logical port 58 of system 10 and a MAC address, and so the packet will not match any of the configured MAC address in a logical port; therefore, it can be stored in the default queue 412. 例如,如果系统处于“混杂模式(promiscuous mode) ”或具有“检漏(sniffer) ”功能,其中所传送的每个数据包可以被网络适配器接收和读取,例如以便监视网络活动,从而针对其它目的地的包以及意在发送到系统10的包都被分析,则上述内容可能出现。 For example, if the system is in "promiscuous mode (promiscuous mode)" or with a "leak (Sniffer)" function, where each transmitted packet may be received and read a network adapter, for example, to monitor network activity, so that for the other and the intended destination of the packet are sent to the packet analysis system 10, the above may occur. 或者,如果由系统10实现网络桥接功能,其中网络14被连接到另一网络,并且每个包被分析以确定它是被传递到网络14中的目的地、还是被转发到已知在另一互连网络上的目的地,则上述内容可能出现。 Alternatively, if the network bridge functions implemented by the system 10, where the network 14 is connected to another network, and each packet is analyzed to determine if it is passed to the destination network 14, or forwarded to another known destination on the interconnection network, the above may occur.

[0100] 默认UC队列412是可选的,从而在其它实施例中,或者如果队列412被禁用,则不实施步骤472 ;相反,如果没有找到对于所述包的默认LP队列,则所述包被丢弃。 [0100] The default UC queue 412 is optional, so that in other embodiments, or if the queue 412 is disabled, step 472 is not performed; the contrary, if the packet is not found for a default LP queue, then the packet thrown away. 例如,如果“混杂模式”被禁用,则特殊队列412可能被禁用。 For example, if "promiscuous mode" is disabled, the special queue 412 may be disabled.

[0101] 本发明的方法450允许两种极端情况之间的灵活性,S卩,对于每个连接排队以及对于每个逻辑端口排队(OS队列)。 Method [0101] 450 of the present invention allows flexibility, S Jie between the two extremes, and queued for each connection queue for each logical port (OS queue). 在本发明中,这两种模型可以与具有其自己的排队的某些连接以及通过默认逻辑端口队列进行排队的某些连接一起工作。 In the present invention, the two models may have some connection with its own queuing and some connections are queued for the default logical port queue by work together. 方法450还提供了多个OS分区,并支持在分区之间的以太网的层2交换,包括多播/广播包(例如IEEE 802. 3)。 The method 450 also provides a plurality of OS partitions, and switched Ethernet supports 2 between the partition layer, including multicast / broadcast packet (e.g., IEEE 802. 3).

[0102] 尽管已经根据所示实施例描述了本发明,但是本领域普通技术人员将容易地认识至IJ,将存在对实施例的变体,并且这些变体将落在本发明的精神和范围中。 [0102] While the present invention has been described in accordance with the illustrated embodiment, those of ordinary skill in the art will readily recognize to IJ, there will be a variant of the embodiment, and such variations will fall within the spirit and scope of the invention in. 从而,本领域普通技术人员可以做出许多修改,而不会脱离权利要求的精神和范围。 Accordingly, those of ordinary skill in the art that many modifications may be made without departing from the spirit and scope of the claims.

Claims (28)

1. 一种用于在计算机系统上分布网络通信的方法,所述方法包括: 在所述计算机系统中的逻辑交换机处接收数据包,所述计算机系统运行多个操作系统分区; 当来自所述计算机系统的一个操作系统分区的数据包中的信息指示出返转路径时,将所述数据包通过在所述计算机系统内部的硬件路径返转到所述计算机系统的另一个操作系统分区;以及当从操作系统分区接收的数据包中的信息指示出非返转路径时,将所述数据包发送到耦合于外部网络的物理端口,或者当从外部网络接收的数据包中的信息指示出非返转路径时,将所述数据包发送到操作系统分区, 其中所述计算机系统包括至少一个耦合于外部网络的物理端口,以及其中每个操作系统分区具有用于发送和接收数据的一个或多个逻辑端口,从而所述逻辑端口和相关联的物理端口充当由逻辑交换机 A method for a computer system on a distributed network communication, the method comprising: receiving a data packet at a logical switch in the computer system, the computer system running multiple operating system partitions; from when the when a packet of the operating system partition of the computer system information indicates reversal path, the data packet by the hardware path internal to the computer system to return the computer system to another operating system partition; and when the partition information packet received from the operating system indicates that the non-reversal path, the data packet sent to the physical port is coupled to an external network, or when the information received from the external packet data network indicative of non- when the wraparound path, the data packet to the operating system partition, wherein the computer system comprises at least one physical port coupled to an external network, and wherein each partition has an operating system for transmitting and receiving data or logical ports, so that said logical port and the physical port associated by the logical switch to act as 行选择以通过其发送数据包的虚拟端口; 其中所述数据包中的信息包括目的地地址和包控制描述符。 Row select virtual port through which data packet transmission; wherein said information packet comprises a destination address and a packet control descriptor.
2.根据权利要求I所述的方法,其中所述数据包是单播包、多播包和广播包中的一个。 2. The method according to claim I, wherein said data packet is a unicast packet, a multicast packet and a broadcast packet.
3.根据权利要求2所述的方法,其中,如果所述数据包是单播包,则所述数据包的目的地地址被检查,以确定是将所述数据包发送到内部操作系统分区还是发送到外部网络上的目的地。 The method according to claim 2, wherein, if the data packet is a unicast packet, the destination address of the packet is checked to determine whether to send the data packet to the internal operating system partition or to the destination on the external network.
4.根据权利要求2所述的方法,其中,如果所述数据包是多播包或广播包,则将所述数据包发送到在所述计算机系统上实现的多播/广播管理器。 4. The method according to claim 2, wherein, if the packet is a multicast packet or broadcast packet, then the packet is sent to the multicast / broadcast manager implemented on the computer system.
5.根据权利要求4所述的方法,其中所述多播/广播管理器对于所述数据包的任意额外目的地复制所述数据包,并且改变所述数据包和任意已复制数据包的包控制描述符以指示出它们已经由所述多播/广播管理器处理,并且将所述数据包和任意已复制数据包输出,从而它们被发送到所述计算机系统和外部网络的适当目的地。 The method according to claim 4, wherein the multicast / broadcast manager copying the data packet for any additional destinations of the packet, and changes the packet of the packet and the replicated packet arbitrary control descriptor to indicate that they have / broadcast manager processed by the multicast, and the data packet and the copied packet to any output, so that they are sent to the appropriate destination computer system and the external network.
6.根据权利要求5所述的方法,其中,如果由所述多播/广播管理器接收的数据包将被发送到所述计算机系统的操作系统分区,则所述多播/广播管理器把指示出将把所述数据包发送到的具体操作系统分区的标志添加到所述数据包。 6. The method according to claim 5, wherein, if / manager receives the broadcast data packet to be transmitted by the multicast to the computer system operating system partition, then the multicast / broadcast manager to indicating flag will send the packet to the particular operating system partition is added to the data packet.
7.根据权利要求4所述的方法,其中,如果所接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是挤出包,则所述数据包被发送到所述外部网络上的目的地。 7. The method according to claim 4, wherein, if the received packet is a multicast packet or broadcast packet, and as the multicast / broadcast manager as specified, the packet control descriptor indicates the data packet is extruded packet, the packet is sent to a destination on the external network.
8.根据权利要求4所述的方法,其中,如果所接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是再循环包,则所述数据包被发送到如关联于所述数据包并由所述多播/广播管理器提供的标志所指示的所述计算机系统的操作系统分区。 8. The method according to claim 4, wherein, if the received packet is a multicast packet or broadcast packet, and as the multicast / broadcast manager as specified, the packet control descriptor indicates the data packet is a recirculated packet, the packet is sent to the packet as associated with the data by the multicast operating system partition of the computer system logo / broadcast manager provides indicated.
9. 一种用于在计算机系统上提供的多个操作系统分区之间分布网络通信的装置,所述装置包括: 至少一个耦合于外部网络的物理端口,所述物理端口允许所述外部网络与所述计算机系统之间的通信; 多个逻辑端口,其中每个逻辑端口关联于所述操作系统分区之一;以及在所述计算机系统内部实现的逻辑交换机,其选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端口;其中,当所述逻辑交换机接收数据包时,当来自所述操作系统分区之一的数据包中的信息指示出返转路径时,所述逻辑交换机将所述数据包通过在所述计算机系统内部的硬件路径返转到另一个操作系统分区,以及其中,当来自操作系统分区的数据包中的信息指示出非返转路径时,所述逻辑交换机将所述数据包发送到外部网络上的目的地,或者当来自外部 A distribution network communication means among a plurality of operating system partitions provided on a computer system, the apparatus comprising: at least one physical port coupled to an external network, the physical port allowing the external network and communication between the computer system; a plurality of logical ports, wherein each logical port is associated to one of the operating system partitions; and implemented within the computer system logical switch that selects the physical port and a logical port, and wherein, when the logical switch receives the packet, when the information packet from one operating system partition indicates that the wraparound path; can make information to the operating system partitions and the physical port the logic switch in the data packet via a hardware path internal to the computer system back to another operating system partition, and wherein, when the information packets from the operating system partition indicates that the non-reversal path the logical switch sends the data packet to a destination on the external network, or when an external 络的数据包中的信息指示出非返转路径时,所述逻辑交换机将所述数据包发送到所述操作系统分区之一; 其中所述数据包中的信息包括目的地地址和包控制描述符。 Envelope information indicates that the data packet when the non-reversal path, the logical switch sends the data packet to one of the operating system partition; wherein said information packet comprises a destination address and a packet control descriptor symbol.
10.根据权利要求9所述的装置,其中所述数据包是单播包、多播包和广播包中的一个。 10. The apparatus according to claim 9, wherein said data packet is a unicast packet, a multicast packet and a broadcast packet.
11.根据权利要求10所述的装置,其中,如果所述数据包是单播包,则所述逻辑交换机检查所述数据包的目的地地址,以确定是将所述数据包发送到操作系统分区还是发送到外部网络上的目的地。 11. The apparatus according to claim 10, wherein, if the data packet is a unicast packet, then checking the destination address of the packet switch logic to determine whether to send the data packet to the operating system partition or sent to the destination on the external network.
12.根据权利要求10所述的装置,其中,如果所述数据包是多播包或广播包,则所述逻辑交换机将所述数据包发送到在所述计算机系统上实现的多播/广播管理器。 12. The apparatus according to claim 10, wherein, if the packet is a multicast packet or broadcast packet, then the logical switch sends the data packet to the multicast / broadcast implemented on the computer system Manager.
13.根据权利要求12所述的装置,其中所述多播/广播管理器对于所述数据包的任意额外目的地复制所述数据包,并且改变所述数据包和任意已复制数据包的包控制描述符以指示出它们已经由所述多播/广播管理器处理,并且将所述数据包和任意已复制数据包输出,从而它们被发送到所述计算机系统和外部网络的适当目的地。 13. The apparatus according to claim 12, wherein the multicast / broadcast manager copying the data packet for any additional destinations of the packet, and changes the packet of the packet and the replicated packet arbitrary control descriptor to indicate that they have / broadcast manager processed by the multicast, and the data packet and the copied packet to any output, so that they are sent to the appropriate destination computer system and the external network.
14.根据权利要求13所述的装置,其中,如果由所述多播/广播管理器接收的数据包将被发送到所述计算机系统的操作系统分区,则所述多播/广播管理器把指示出将把所述数据包发送到的具体操作系统分区的标志添加到所述数据包。 OS partition 14. The apparatus according to claim 13, wherein, if the broadcast received by the manager multicast / packets to be transmitted to the computer system, then the multicast / broadcast manager to indicating flag will send the packet to the particular operating system partition is added to the data packet.
15.根据权利要求12所述的装置,其中,如果由所述逻辑交换机接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是挤出包,则所述数据包被发送到所述外部网络上的目的地。 15. The apparatus according to claim 12, wherein, if a packet received by the logical switch is a multicast packet or broadcast packet, and as the multicast / broadcast manager as specified by the control packet descriptor indicates that the packet is an extruded packet, the packet is sent to a destination on the external network.
16.根据权利要求12所述的装置,其中,如果由所述逻辑交换机接收的数据包是多播包或广播包,并且如所述多播/广播管理器所指定的那样,所述包控制描述符指示出所述数据包是再循环包,则所述数据包被发送到如关联于所述数据包并由所述多播/广播管理器提供的标志所指示的所述计算机系统的操作系统分区。 16. The apparatus according to claim 12, wherein, if a packet received by the logical switch is a multicast packet or broadcast packet, and as the multicast / broadcast manager as specified by the control packet descriptor indicates that the packet is a recirculated packet, the packet is sent to the packet as associated with the data by the multicast flag of the computer system operating / broadcast manager provides an indication of the system partition.
17. 一种用于提供用于计算机系统的网络通信的装置,所述装置包括: 至少一个耦合于网络的物理端口,所述物理端口允许所述网络与所述计算机系统之间的通信; 多个连接队列,用于存储将从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包,其中每个连接队列关联于所述至少一个过程之一和所述网络之间的不同的网络连接; 默认操作系统队列,用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包;以及多个操作系统分区和关联于所述操作系统分区中的每个的逻辑端口,其中每个逻辑端口具有相关联的默认操作系统队列,从而存储在默认操作系统队列中的数据包将从相关联的操作系统分区的内核发送或由其接收;其中,当无法找到对于数据包的网络连接时,所述默认操作系统队列存储 17. An apparatus for providing network communications for a computer system, the apparatus comprising: at least one physical port coupled to a network, the physical port allowing communications between the network and the computer system; Multi- or at least a process of transmitting packets received by the connection queue for storing said computer system from at least one user space, wherein each connection queue is associated with one of said at least one process and said network connection between different networks; default operating system queue for transmitting the operating system kernel from the storage partition implemented by the computer system or by the received data packet; and a plurality of partitions and operating systems associated with the each logical port operating system partition, wherein each logical port has an associated default operating system queue, so that the data packet stored in the default operating system kernel from the transmission queue or by the operating system partition associated receiver; wherein, when the packet can not be found for the network connection, the default operating system queue storage 该数据包。 The data packet.
18.根据权利要求17所述的装置,进一步包括在所述计算机系统内部实现的逻辑交换机,其选择物理端口和逻辑端口,以及使能把信息传送到所述操作系统分区和所述物理端□。 18. The apparatus according to claim 17, further comprising a logic switch within the computer-implemented system that selects the physical port and a logical port, and can make information to the operating system partition and the physical end □ .
19.根据权利要求17所述的装置,其中所述用户空间中的至少一个过程具有多个网络连接,并且由关联于这些网络连接的连接队列所服务。 19. The apparatus according to claim 17, wherein at least one process having a plurality of network connecting the user space and is connected by a queue associated with the network connection to the service.
20.根据权利要求17所述的装置,进一步包括特殊默认队列,用于存储未存储在所述连接队列或默认操作系统队列中的数据包。 20. The apparatus according to claim 17, further comprising a special default queue for the connection has not been stored in the packet queue or the default operating system queue.
21.根据权利要求17所述的装置,进一步包括特殊多播和广播默认队列,用于分别存储多播和广播数据包。 21. The apparatus according to claim 17, further comprising a multicast and broadcast special default queues are stored for multicast and broadcast packets.
22.根据权利要求21所述的装置,其中所述多播和广播特殊默认队列中的数据包被提供给在所述计算机系统上实现的多播/广播管理器,其中所述多播/广播管理器复制所述数据包,并将所述数据包和复制数据包输出,以被发送到多个目的地。 22. The apparatus according to claim 21, wherein said data packet multicast and broadcast special default queues are provided to a multicast / broadcast manager implemented on the computer system, wherein the multicast / broadcast copying the packet data manager, and the data packet and the packet output copy to be transmitted to multiple destinations.
23. 一种用于提供用于计算机系统的网络通信的方法,所述方法包括: 在网络适配器处接收数据包; 在多个连接队列中之一中存储所述数据包,所述连接队列用于存储将经由相关联的网络连接从所述计算机系统的至少一个用户空间中的至少一个过程发送或由其接收的数据包;以及如果无法找到对于所述数据包的网络连接,则将所述数据包存储在默认操作系统队列中,所述默认操作系统队列用于存储将从由所述计算机系统实现的操作系统分区的内核发送或由其接收的数据包, 其中所述计算机系统提供多个操作系统分区和关联于所述操作系统分区中的每个的逻辑端口,其中每个逻辑端口具有相关联的默认操作系统队列,从而存储在默认操作系统队列中的数据包将从相关联的操作系统分区的内核发送或由其接收。 23. A method for providing network communications for a computer system, the method comprising: receiving a data packet at a network adapter; storing said data packet connection in one of a plurality of queues, the queue is connected with process for storing at least one transmission connection from the computer system via a network associated with at least one user space or by the received data packet; and if the network connection can not be found for the packet, then the storing data packets in a default operating system queue, the kernel sends the default operating system partition for storing an operating system from the queue implemented by the computer system or data packets received therefrom, wherein said computer system provides a plurality of each operating system partition and a logical port associated with the operating system partitions, wherein each logical port has a default operating system queue is associated, so that the default operating system queue stores packets associated with the operation from the transmitted or received by the system kernel partition.
24.根据权利要求23所述的方法,其中所述网络连接在所述至少一个过程和网络之间提供,其中所述计算机系统的至少一个物理端口耦合于所述网络,所述至少一个物理端口允许所述网络与所述计算机系统之间的通信。 24. The method according to claim 23, wherein the network connection between the network provider and the at least one process, wherein the at least one physical port coupled to the computer system in the network, said at least one physical port allow communication between the network and the computer system.
25.根据权利要求23所述的方法,进一步包括:如果所述数据包无法存储在连接队列或默认操作系统队列中,则将所述数据包存储在特殊默认队列中。 25. The method of claim 23, further comprising: if the data packet can not be stored in the connection queue or queue default operating system, then the data packet stored in a special default queue.
26.根据权利要求23所述的方法,进一步包括:如果所述数据包是多播或广播包,则分别将所述数据包存储在特殊多播或广播默认队列中。 26. The method according to claim 23, further comprising: if the data packet is a multicast or broadcast packet, respectively, to the multicast or broadcast special default queue storing the data packets.
27.根据权利要求26所述的方法,其中所述多播和广播特殊默认队列中的数据包被提供给在所述计算机系统上实现的多播/广播管理器,其中所述多播/广播管理器复制所述数据包,并将所述数据包和复制数据包输出,以被发送到多个目的地。 27. A method according to claim 26, wherein said data packet multicast and broadcast special default queues are provided to a multicast / broadcast manager implemented on the computer system, wherein the multicast / broadcast copying the packet data manager, and the data packet and the packet output copy to be transmitted to multiple destinations.
28.根据权利要求26所述的方法,其中所述用户空间中的至少一个过程具有多个网络连接,并且由关联于这些网络连接的连接队列所服务。 28. The method according to claim 26, wherein at least one process having a plurality of network connecting the user space and is connected by a queue associated with the network connection to the service.
CN 200680011080 2005-04-01 2006-03-15 Network communications for operating system partitions CN101156408B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/097,051 US7697536B2 (en) 2005-04-01 2005-04-01 Network communications for operating system partitions
US11/097,051 2005-04-01
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 (en) 2008-04-02
CN101156408B true CN101156408B (en) 2012-08-08

Family

ID=36572449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200680011080 CN101156408B (en) 2005-04-01 2006-03-15 Network communications for operating system partitions

Country Status (6)

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

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8272044B2 (en) * 2007-05-25 2012-09-18 New Jersey Institute Of Technology Method and system to mitigate low rate denial of service (DoS) attacks
US20090055831A1 (en) 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
CN104113433B (en) 2007-09-26 2018-04-10 Nicira股份有限公司 Network management and protection of network operating systems
KR101480449B1 (en) 2007-10-16 2015-01-12 엘지전자 주식회사 Method of providing a detail information using a multimedia based traffic and travel information message and terminal thereof
US7752300B2 (en) * 2007-11-19 2010-07-06 International Business Machines Corporation Automatically determining management information base modules for a device
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
EP2804350B1 (en) 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
CN101714925B (en) * 2009-11-09 2012-04-18 华为终端有限公司 Method and system for managing ports of communication equipment, management equipment and communication equipment
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US8750164B2 (en) 2010-07-06 2014-06-10 Nicira, Inc. Hierarchical managed switch architecture
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US8964528B2 (en) 2010-07-06 2015-02-24 Nicira, Inc. Method and apparatus for robust packet distribution among hierarchical managed switching elements
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US20120182993A1 (en) * 2011-01-14 2012-07-19 International Business Machines Corporation Hypervisor application of service tags in a virtual networking environment
US10142218B2 (en) 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks 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
CN103563332B (en) * 2011-05-24 2016-10-19 阿瓦亚公司 Social media identity discovery and mapping
US9444651B2 (en) 2011-08-17 2016-09-13 Nicira, Inc. Flow generation from second level controller to first level controller to managed switching element
US8958298B2 (en) 2011-08-17 2015-02-17 Nicira, Inc. Centralized logical L3 routing
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
US9137107B2 (en) 2011-10-25 2015-09-15 Nicira, Inc. Physical controllers for converting universal flows
EP2748717A4 (en) 2011-11-15 2015-01-21 Nicira Inc Architecture of networks with middleboxes
JP5667552B2 (en) * 2011-12-08 2015-02-12 株式会社日立製作所 Virtual computer system, the virtual machine control program, and mac address management method
KR101867960B1 (en) * 2012-01-05 2018-06-18 삼성전자주식회사 Dynamically reconfigurable apparatus for operating system in manycore system and method of the same
AU2013249151B2 (en) 2012-04-18 2015-12-10 Nicira, Inc. Using transactions to compute and propagate network forwarding state
CN102811172B (en) * 2012-07-25 2018-09-04 南京中兴软件有限责任公司 Forward link scheduling apparatus based on a polymerization method and a virtual port mapping data
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US9197529B2 (en) 2013-07-12 2015-11-24 Nicira, Inc. Tracing network packets through logical and physical networks
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US10158538B2 (en) 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
US9703743B2 (en) * 2014-03-31 2017-07-11 Juniper Networks, Inc. PCIe-based host network accelerators (HNAS) for data center overlay network
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US9479457B2 (en) 2014-03-31 2016-10-25 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
US9923760B2 (en) 2015-04-06 2018-03-20 Nicira, Inc. Reduction of churn in a network control system
CN106533822A (en) * 2015-09-14 2017-03-22 中兴通讯股份有限公司 Physical port control method and device
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US10243840B2 (en) 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10200306B2 (en) 2017-03-07 2019-02-05 Nicira, Inc. Visualization of packet tracing operation results

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1070751A (en) 1991-09-18 1993-04-07 国际商业机器公司 Multi-media signal processor computer system
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 Virtual Iron Software, 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 (en) * 1995-06-16 1997-01-10 Hitachi Ltd Wide area multicast communication method
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
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
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
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
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
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
US6678746B1 (en) * 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
CA2415888C (en) * 2000-08-04 2008-10-21 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
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 (en) * 2001-05-14 2007-06-27 富士通株式会社 Packet buffer
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
EP1436724A4 (en) * 2001-09-28 2007-10-03 Consentry Networks Inc Multi-threaded packet processing engine for stateful packet pro cessing
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
CN100527697C (en) * 2001-11-09 2009-08-12 Vitesse Semiconductor Company Means and a method for switching data packets or 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 (en) * 2002-09-17 2005-05-03 삼성전자주식회사 Apparatus and method for streaming multimedia data
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 (en) * 2002-11-07 2004-11-03 한국전자통신연구원 An Ethernet switching Apparatus and Method using Frame Multiplexing and Demultiplexing
KR100460672B1 (en) * 2002-12-10 2004-12-09 한국전자통신연구원 Line interface apparatus for 10 gigabit ethernet and control method thereof
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 (en) * 2003-08-25 2010-03-24 株式会社日立製作所 Storage system
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 (en) * 2004-02-09 2005-08-18 Nec Electronics Corp Fractional frequency divider circuit and data transmission apparatus using the same
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 (en) 1991-09-18 1993-04-07 国际商业机器公司 Multi-media signal processor computer system
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 Virtual Iron Software, Inc. Method and apparatus for providing virtual computing services

Also Published As

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

Similar Documents

Publication Publication Date Title
US6650639B2 (en) Secure fast packet switch having improved memory utilization
US5535338A (en) Multifunction network station with network addresses for functional units
US8713295B2 (en) Fabric-backplane enterprise servers with pluggable I/O sub-system
KR101572771B1 (en) System and methods for controlling network traffic through virtual switches
US6163543A (en) Port aggregation protocol
US6147995A (en) Method for establishing restricted broadcast groups in a switched network
US6999998B2 (en) Shared memory coupling of network infrastructure devices
US7444405B2 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
RU2189072C2 (en) Improved method and device for dynamic shift between routing and switching bursts in data transmission network
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
JP5763081B2 (en) Method and apparatus for transparent cloud computing using virtual network infrastructure
CN101601232B (en) Triple-tier anycast addressing
US7844715B2 (en) System and method for a shared I/O subsystem
US7362763B2 (en) Apparatus and method for classifying traffic in a distributed architecture router
US8005022B2 (en) Host operating system bypass for packets destined for a virtual machine
US6490285B2 (en) IP multicast interface
US10063544B2 (en) System and method for supporting consistent handling of internal ID spaces for different partitions in an infiniband (IB) network
JP5410614B2 (en) Layer 2 seamless site expansion of companies in the cloud computing
US8649387B2 (en) Method and system for fibre channel and ethernet interworking
US7843907B1 (en) Storage gateway target for fabric-backplane enterprise servers
US7630368B2 (en) Virtual network interface card loopback fastpath
US8989187B2 (en) Method and system of scaling a cloud computing network
US7843906B1 (en) Storage gateway initiator for fabric-backplane enterprise servers
US6654812B2 (en) Communication between multiple partitions employing host-network interface
KR101303718B1 (en) Method and system for virtual machine networking

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted