Claims
- 1. A method for forwarding connections at a server, comprising:
receiving a first packet at a network controller of said server, wherein said first packet is destined for an original destination node of said server and was provided by an originating source; transmitting said first packet from said network controller to said original destination node; within said server, determining whether or not said original destination node should handle a connection associated with said first packet; in response to determining that said original destination node should not handle said connection, sending a command to said network controller to forward subsequent packets for said connection to an alternate destination node; in response to receiving said command at said network controller, modifying a destination address of said subsequent packets within said network controller to produce modified packets containing an address of said alternate destination node and an origin address containing a response node of said network controller; and transmitting said modified packets from said network controller to said alternate destination node.
- 2. The method of claim 1, wherein said receiving a first packet receives a first packet from a switch coupled to said network controller and wherein said transmitting transmits said modified packets to said switch.
- 3. The method of claim 1, further comprising:
building a database within said server of alternate destinations for packer data; and selecting alternate destination node from said database, and wherein said sending sends a command including an address of said alternate destination node.
- 4. The method of claim 1, further comprising:
building a database within said network controller of alternate destinations for packet data; and in response to receiving said command, selecting said alternate destination node from said database.
- 5. The method of claim 1, further comprising:
building a database within said server of alternate destinations for packet data; transferring said database to said network controller; and in response to receiving said command, selecting said alternate destination node from said database from said transferred database within said network controller.
- 6. The method of claim 1, further comprising:
analyzing network traffic at said server; and building a database in conformity with a result of said analyzing, whereby said alternate destination node is selected from said database.
- 7. The method of claim 1, wherein said determining comprises detecting that a size of a packet buffer for said original destination node has exceeded a predetermined threshold, and wherein said sending is performed in response to said detecting.
- 8. The method of claim 1, wherein said packet is a connection request, wherein said determining determines an alternate node for said connection, and wherein said modifying and transmitting are performed for subsequent packets received for said connection.
- 9. The method of claim 1, further comprising:
receiving a response packet from said alternate destination node at said response node; modifying an origination 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.
- 10. 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 command from said server processor to forward a connection destined for an original destination node of said server to an alternate destination node; in response to said receiving and within said network controller, modifying a destination address of packets associated with said connection to produce modified packets containing an address of said alternate destination node and an origin address containing a response node of said network controller; and transmitting said modified packets from said network controller to said alternate destination node.
- 11. The server system of claim 10, wherein said intelligent network controller includes a network processor and wherein said controller processor and said controller memory are included within said network processor.
- 12. The server system of claim 10, wherein said server program instructions comprise program instructions for:
building within said server a database of alternate destinations for packet data; determining whether or not an original destination node should handle said connection; selecting an alternate destination node for said connection from said database; and program instructions for sending said command to said network controller, and wherein said program instructions for selecting and sending are executed in response to said program instructions to determining that said original destination node should not handle said connection.
- 13. The server system of claim 10, wherein said controller program instructions further comprise program instructions for:
receiving from said server processor a database of alternate destinations for packet data; determining whether or not an original destination node should handle a connection; and selecting said alternate destination node from said database, and wherein said program instructions for selecting are executed in response to receiving said command.
- 14. The server system of claim 10, wherein said server program instructions comprise program instructions for:
building a database within said server of alternate destinations for packet data; and transferring said database to said network controller, and wherein said controller program instructions further comprise program instructions for selecting said alternate destination node from said database in response to receiving said command.
- 15. The server system of claim 10, wherein said server program instructions further comprise program instructions for:
analyzing network traffic at said server; and building a database in conformity with a result of said analyzing, whereby said alternate destination node may be selected from said database.
- 16. The server system of claim 10, wherein said server 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 program instructions for said sending are executed in response to said detecting.
- 17. The server system of claim 10, 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 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.
- 18. A computer program product comprising signal-bearing media encoding program instructions for execution within a controller processor of a network controller, said program instructions comprising program instructions for:
receiving a command from bus interface of said network controller to forward a connection made through a network interface of said network controller; in response to said receiving and within said network controller, modifying a destination address of packets associated with said connection to produce modified packets containing an address of said alternate destination node and an origin address containing a response node of said network controller; and transmitting said modified packets from said network controller to said alternate destination node.
- 19. The computer program product of claim 18, wherein said program instructions further comprise program instructions for:
receiving through said bus interface, a database of alternate destinations for packet data; determining whether or not an original destination node should handle a connection; and selecting said alternate destination node from said database, and wherein said program instructions for selecting are executed in response to receiving said command.
- 20. The computer program product of claim 18, 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 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.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to previously-filed U.S. patent application: “SYSTEM AND METHOD FOR KNOWLEDGABLE NODE INITIATED TCP SPLICING” Ser. No. 09/998,048 filed on Nov. 29, 2001 by the same inventors and having the same assignee. The present application is also related to U.S. patent application “SERVER NETWORK CONTROLLER INCLUDING PACKET FORWARDING AND METHOD THEREFOR” Ser. No. __/______ filed concurrently herewith by the same inventors and having the same assignee. The specifications of both of the above-referenced patent applications are incorporated herein by reference.