1. A method for forwarding connections at a server, comprising:
- receiving a packet at a network controller of said server, wherein said packet is destined for an original destination node of said server and was provided by an originating source;
- within said network controller, selecting an alternate destination node for said packet;
- modifying a destination address and an origin address of said packet within said network controller to produce a modified packet containing a destination address of said alternate destination node and an origin address of a response node of said network controller;
- transmitting said modified packet from said network controller to said alternate destination node; and
- building a database within said server of alternate destinations for packet data, and wherein said selecting selects said alternate destination node form said database.
2. The method of claim 1, wherein said receiving receives a packet from a switch coupled to said network controller and wherein said transmitting transmits said modified packet to said switch.
3. The method of claim 1, wherein said database of alternate destinations is transmitted within said server to a memory of said network controller, whereby said network controller may select said alternate destination node from said database.
4. The method of claim 1, further comprising: analyzing network traffic at said server; and building said database in conformity with a result of said analyzing.
5. The method of claim 1, further comprising
- detecting that a size of a packet buffer for said original destination node has exceeded a predetermined threshold, and wherein said selecting, modifying and transmitting are performed in response to said detecting.
6. The method of claim 1, wherein said packet is a connection request, wherein said selecting selects an alternate node for said connection, and wherein said modifying and transmitting are performed for subsequent packets received for said connection.
7. The method of claim 1, further comprising:
- receiving a response packet from said alternate destination node at said response node;
- modifying an origination address and a destination address of said response packet within said network controller to produce a modified response packet containing an origination address of said original destination node and a destination address of said originating source; and
- transmitting said modified response packet from said network controller to said originating source.
8. A server system, comprising:
- a processing unit, including a server memory for storing server program instructions for execution by a server processor within said processing unit; wherein said server program instructions include:
- program instructions for building within said server a database of alternate destinations for packet data; and
- program instructions for transferring said database to said network controller, whereby said network controller may select said alternate destination node from said database;
- a bus for interconnecting said processing unit with peripheral devices; and
- a network controller coupled to said bus for coupling said server system to a network, said network controller including a controller processor and a controller memory coupled to said controller processor for storing controller program instructions for execution by said controller processor, and wherein said controller program instructions include instructions for
- receiving a packet at a network controller of said server, wherein said packet is destined for an original destination node of said server and was provided by an originating source;
- selecting an alternate destination node for said packet;
- modifying a destination address and an origin address of said packet within said network controller to produce a modified packet containing a destination address of said alternate destination node and an origin address of a response node of said network controller; and
- transmitting said modified packet from said network controller to said alternate destination node.
9. The server system of claim 8, wherein said network controller includes a network processor and wherein said controller processor and said controller memory are included within said network processor.
10. The server system of claim 8, wherein said server program instructions further comprise program instructions for: analyzing network traffic at said server; and building said database in conformity with a result of said analyzing.
11. The server system of claim 8, wherein said controller program instructions further comprise program instructions for detecting that a size of a packet buffer for said original destination node has exceeded a predetermined threshold, and wherein said program instructions for selecting, modifying and transmitting are executed in response to said detecting.
12. The server system of claim 8, wherein said packet is a connection request, wherein said controller program instructions for selecting select an alternate node for said connection, and wherein said program instructions for modifying and transmitting are executed for subsequent packets received for said connection.
13. The server system of claim 8, wherein said controller program instructions further comprise program instructions for:
- receiving a response packet from said alternate destination node at said response node;
- modifying an origination address and a destination address of said packet within said network controller to produce a modified response packet containing an origination address of said original destination node and a destination address of said originating source; and
- transmitting said modified response packet from said network controller to said originating source.
14. A server system, comprising:
- a processing unit, including a server memory for storing server program instructions for execution by a server processor within said processing unit;
- a bus for interconnecting said processing unit with peripheral devices; and
- a network controller coupled to said bus for coupling said server system to a network, said network controller including a controller processor and a controller memory coupled to said controller processor for storing controller program instructions for execution by said controller processor, and wherein said controller program instructions include instructions for
- receiving a packet at a network controller of said server, wherein said packet is destined for an original destination node of said server and was provided by an originating source;
- selecting an alternate destination node for said packet;
- modifying a destination address and an origin address of said packet within said network controller to produce a modified packet containing a destination address of said alternate destination node and an origin address of a response node of said network controller;
- transmitting said modified packet from said network controller to said alternate destination node; and
- building within said intelligent network controller a database of alternate destinations for packet data, and wherein said program instructions for selecting select said alternate destination node from said database.
15. A computer program product comprising computer-readable storage medium encoding program instructions for execution within a controller processor of a network controller, said program instructions comprising program instructions for:
- receiving a packet at a network controller of said server, wherein said packet is destined for an original destination node of said server and was provided by an originating source;
- selecting an alternate destination node for said packet; modifying a destination address and an origin address of said packet within said network controller to produce a modified packet containing a destination address of said alternate destination node and an origin address of a response node of said network controller;
- transmitting said modified packet from said network controller to said alternate destination node;
- building within said network controller a database of alternate destinations for packet data, and wherein said program instructions for selecting select said alternate destination node form said database.
16. The computer program product of claim 15, wherein said program instructions further comprise program instructions for detecting that a size of a packet buffer for said original destination node has exceeded a predetermined threshold, and wherein said program instructions for selecting, modifying and transmitting are executed in response to said detecting.
17. The computer program product of claim 15, wherein said packet is a connection request, wherein said program instructions for selecting select an alternate node for said connection, and wherein said program instructions for modifying and transmitting are executed for subsequent packets received for said connection.
18. The computer program product of claim 15, wherein said program instructions further comprise program instructions for:
- receiving a response packet from said alternate destination node at said response node;
- modifying an origination address and a destination address of said packet within said network controller to produce a modified response packet containing an origination address of said original destination node and a destination address of said originating source; and
- transmitting said modified response packet from said network controller to said originating source.
19. A computer program product comprising computer-readable storage medium encoding program instructions for execution within a server processor of a server including a network controller, said server program instructions include:
- program instructions for building within said server a database of alternate destinations for packet data; and
- program instructions for transferring said database to said network controller, whereby said network controller may select said alternate destination node from said database.
20. The computer program product of claim 19, wherein said server program instructions further comprise program instructions for:
- analyzing network traffic at said server; and building said database in conformity with a result of said analyzing.