Method and apparatus for fast packet forwarding in cluster networking
First Claim
1. A method for forwarding a packet between nodes in a clustered computing system, comprising:
- receiving the packet at an interface node in the clustered computing system, the packet including a destination address specifying a service provided by the clustered computing system;
wherein the packet additionally includes a source address specifying a location of a client that the packet originated from, and wherein selecting the server node involves using the source address in the packet to select the server node;
selecting a server node in the clustered computing system to send the packet to in order to provide the service to the client;
forwarding the packet to the server node by, attaching a transport header to the packet, the transport header containing an address of the server node, and sending the packet to the server node through an interface, wherein the interface is a private interface that does not handle return communication related to the service; and
sending a return communication related to the service directly to the client through a public interface that bypasses the private interface.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system for forwarding a packet between nodes in a clustered computing system. The system operates by receiving the packet at an interface node in the clustered computing system. This packet includes a source address specifying a location of a client that the packet originated from, and a destination address specifying a service provided by the clustered computing system. The system selects a server node in the clustered computing system to send the packet to from a plurality of server nodes that are able to provide the service. Next, the system forwards the packet to the server node so that the server node can provide the service to the client by, attaching a transport header to the packet, the transport header containing an address of the server node, and sending the packet to the server node through an interface. This interface is used for communications between the interface node and other nodes in the clustered computing system. In one embodiment of the present invention, in forwarding the packet to the server node, the system load balances between multiple redundant paths between the interface node and the server node.
75 Citations
24 Claims
-
1. A method for forwarding a packet between nodes in a clustered computing system, comprising:
-
receiving the packet at an interface node in the clustered computing system, the packet including a destination address specifying a service provided by the clustered computing system;
wherein the packet additionally includes a source address specifying a location of a client that the packet originated from, and wherein selecting the server node involves using the source address in the packet to select the server node;
selecting a server node in the clustered computing system to send the packet to in order to provide the service to the client;
forwarding the packet to the server node by, attaching a transport header to the packet, the transport header containing an address of the server node, and sending the packet to the server node through an interface, wherein the interface is a private interface that does not handle return communication related to the service; and
sending a return communication related to the service directly to the client through a public interface that bypasses the private interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receiving the packet at the server node;
stripping the transport header from the packet; and
placing the packet on an IP stack at the server node.
-
-
4. The method of claim 2, further comprising ensuring that an IP address of the service is hosted on a loopback interface of the server node so that the packet will be accepted by the server node.
-
5. The method of claim 1, further comprising allowing the server node to send return communications directly to the client without forwarding the return communications through the interface node.
-
6. The method of claim 1, wherein the interface is a private interface, and is coupled to a communication channel adhering to one of the Ethernet standard and the Scalable Coherent Interconnect (SCI) standard.
-
7. The method of claim 1, wherein the transport header is a Data Link Protocol Interface (DLPI) header that includes a Medium Access Control (MAC) address of the server node.
-
8. The method of claim 1, wherein in forwarding the packet to the server node, the system load balances between a plurality of redundant paths between the interface node and the server node.
-
9. A computer readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for forwarding a packet between nodes in a clustered computing system, comprising:
-
receiving the packet at an interface node in the clustered computing system, the packet including a destination address specifying a service provided by the clustered computing system;
wherein the packet additionally includes a source address specifying a location of a client that the packet originated from, and wherein selecting the server node involves using the source address in the packet to select the server node;
selecting a server node in the clustered computing system to send the packet to in order to provide the service to the client;
forwarding the packet to the server node by, attaching a transport header to the packet, the transport header containing an address of the server node, and sending the packet to the server node through an interface, wherein the interface is a private interface that does not handle return communication related to the service; and
sending a return communication related to the service directly to the client through a public interface that bypasses the private interface. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
receiving the packet at the server node;
stripping the transport header from the packet; and
placing the packet on an IP stack at the server node.
-
-
12. The computer-readable storage medium of claim 10, wherein the method further comprises ensuring that an IP address of the service is hosted on a loopback interface of the server node so that the packet will be accepted by the server node.
-
13. The computer-readable storage medium of claim 9, wherein the method further comprises allowing the server node to send return communications directly to the client without forwarding the return communications through the interface node.
-
14. The computer-readable storage medium of claim 9, wherein the interface is coupled to a communication channel adhering to one of the Ethernet standard and the Scalable Coherent Interconnect (SCI) standard.
-
15. The computer-readable storage medium of claim 9, wherein the transport header is a data link protocol interface (DLPI) header.
-
16. The computer-readable storage medium of claim 9, wherein in forwarding the packet to the server node, the system load balances between a plurality of redundant paths between the interface node and the server node.
-
17. An apparatus that forwards a packet between nodes in a clustered computing system, comprising:
-
a receiving mechanism, within an interface node in the clustered computing system, that is configured to receive the packet, the packet including a destination address specifying a service provided by the clustered computing system;
wherein the packet additionally includes a source address. specifying a location of a client that the packet originated from, and wherein selecting the server node involves using the source address in the packet to select the server node;
a selection mechanism, within the interface node, that is configured to select a server node in the clustered computing system to send the packet to in order to provide the service to the client;
a forwarding mechanism, within the interface node, that forwards the packet to the server node, the forwarding mechanism being configured to, attach a transport header to the packet, the transport header containing an address of the server node, and send the packet to the server node through an interface, wherein the interface is a private interface that does not handle return communication related to the service; and
a sending mechanism configured to send a return communication related to the service directly to the client through a public interface that bypasses the private interface. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
receive the packet from the interface node; strip the transport header from the packet; and
place the packet on an IP stack at the server node.
-
-
20. The apparatus of claim 18, further comprising a cluster configuration mechanism that ensures that an IP address of the service is hosted on a loopback interface of the server node so that the packet will be accepted by the server node.
-
21. The apparatus of claim 17, further comprising a return communication mechanism, within the server node, that sends return communications directly to the client without forwarding the return communications through the interface node.
-
22. The apparatus of claim 17, wherein the interface is coupled to a communication channel adhering to one of the Ethernet standard and the Scalable Coherent Interconnect (SCI) standard.
-
23. The apparatus of claim 17, wherein the transport header is a data link protocol interface (DLPI) header.
-
24. The apparatus of claim 17, wherein in forwarding the packet to the server node, the forwarding mechanism is configured to load balance between a plurality of redundant paths between the interface node and the server node.
Specification