Claims
- 1. A fault tolerant method of providing a network service, comprising:receiving a packet corresponding to a flow from a forwarding agent at a primary service manager; determining at the primary service manager instructions for handling packets corresponding to the flow; sending the instructions to the forwarding agent; storing the instructions for handling packets corresponding to the flow at the primary service manager; sending a replication packet to a backup service manager, the replication packet including the instructions for handling packets corresponding to the flow; and deleting the instructions for handling packets corresponding to the flow from the primary service manager upon the expiration of a primary service manager instruction maintenance time interval.
- 2. A fault tolerant method of providing a network service as recited in claim 1 further including storing the instructions for handling packets corresponding to the flow at the backup service manager.
- 3. A fault tolerant method of providing a network service as recited in claim 1 further including deleting the instructions for handling packets corresponding to the flow from the backup service manager upon the expiration of a backup service manager instruction maintenance time interval.
- 4. A fault tolerant method of providing a network service as recited in claim 3 wherein the backup service manager instruction maintenance time interval and the primary service manager instruction maintenance time interval are substantially the same.
- 5. A fault tolerant method of providing a network service as recited in claim 1 further including:setting a primary service manager expiration time for the instructions for handling packets corresponding to the flow to expire on the primary service manager, the primary service manager expiration time being a primary service manager instruction deletion time interval after the time that the instructions for handling packets corresponding to the flow were stored on the primary service manager; and setting a backup service manager expiration time for the instructions for handling packets corresponding to the flow to expire on the backup service manager, the backup service manager expiration time being a backup service manager instruction deletion time interval after the time that the instructions for handling packets corresponding to the flow were stored on the backup service manager.
- 6. A fault tolerant method of providing a network service as recited in claim 5 further including:receiving a subsequent packet corresponding to the flow from the forwarding agent; resetting the primary service manager instruction expiration time to the primary service manager instruction deletion time interval after the time that the subsequent packet was received; and sending a second replication packet to the backup service manager.
- 7. A fault tolerant method of providing a network service as recited in claim 6 further including receiving the second replication packet at the backup service manager and resetting the backup service manager instruction expiration time to the backup service manager instruction deletion time interval after the time that the second replication packet was received.
- 8. A fault tolerant method of providing a network service as recited in claim 1 including:determining at the backup service manager that the primary service manager has failed; receiving at the backup service manager a subsequent packet from the forwarding agent corresponding to the flow; matching the subsequent packet to the instructions stored on the backup service manager for handling packets corresponding to the flow; and sending the instructions stored on the backup service manager for handling packets corresponding to the flow to the forwarding agent.
- 9. A fault tolerant method of providing a network service as recited in claim 8 further including resetting a backup service manager instruction expiration time to a backup service manager instruction deletion time interval after the time that the subsequent packet was received.
- 10. A fault tolerant method of providing a network service as recited in claim 8 further including sending canceling instructions from the backup service manager to the forwarding agent upon determining that the primary service manager has failed, the canceling instructions causing instructions from the primary service manager that are stored on the forwarding agent to expire.
- 11. A primary service manager for providing a network service in a fault tolerant manner, comprising:a processor configured to determine instructions for handling packets corresponding to a flow; a forwarding agent interface configured to send the instructions for handling packets to a forwarding agent; a memory configured to store the instructions for handling packets corresponding to the flow; and a backup service manager interface configured to send a replication packet to a backup service manager wherein the replication packet includes instructions for handling packets corresponding to the flow, and wherein the primary service manager is further configured to delete the instructions for handling packets corresponding to the flow upon the expiration of a primary service manager instruction maintenance time interval.
- 12. A backup service manager for providing a network service in a fault tolerant manner, comprising:a primary service manager interface configured to receive the instructions for handling packets corresponding to a flow; and a memory configured to store the instructions for handling packets corresponding to the flow, wherein the primary service manager is further configured to delete the instructions for handling packets corresponding to the flow upon the expiration of a primary service manager instruction maintenance time interval.
- 13. A fault tolerant distributed system for providing a network service including:a forwarding agent configured to send a packet corresponding to a flow to a primary service manager; a primary service manager configured to determine instructions for handling packets corresponding to the flow, to send the instructions for handling packets to the forwarding agent, to store the instructions for handling packets corresponding to the flow and to send a replication packet to a backup service manager, the replication packet including the instructions for handling packets corresponding to the flow; and a backup service manager configured to receive the instructions for handling packets corresponding to the flow and to store the instructions for handling packets corresponding to the flow, wherein the primary service manager is further configured to delete the instructions for handling packets corresponding to the flow upon the expiration of a primary service manager instruction maintenance time interval.
- 14. A fault tolerant distributed system as recited in claim 13 wherein the backup service manager is further configured to delete the instructions for handling packets corresponding to the flow upon the expiration of a backup service manager instruction maintenance time interval.
- 15. A fault tolerant distributed system as recited in claim 14 wherein the backup service manager instruction maintenance time interval and the primary service manager instruction maintenance time interval are substantially the same.
- 16. A fault tolerant distributed system as recited in claim 13 wherein:the primary service manager is further configured to set a primary service manager expiration time for the instructions for handling packets corresponding to the flow to expire on the primary service manager, the primary service manager expiration time being a primary service manager instruction deletion time interval after the time that the instructions for handling packets corresponding to the flow were stored on the primary service manager; and the backup service manager is further configured to set a backup service manager expiration time for the instructions for handling packets corresponding to the flow to expire on the backup service manager, the backup service manager expiration time being a backup service manager instruction deletion time interval after the time that the instructions for handling packets corresponding to the flow were stored on the backup service manager.
- 17. A fault tolerant distributed system as recited in claim 16 wherein the primary service manager is further configured to receive a subsequent packet corresponding to the flow from the forwarding agent, reset the primary service manager instruction expiration time to the primary service manager instruction deletion time interval after the time that the subsequent packet was received and send a second replication packet to the backup service manager.
- 18. A fault tolerant distributed system as recited in claim 17 wherein the backup service manager is further configured to receive the second replication packet and reset the backup service manager instruction expiration time to the backup service manager instruction deletion time interval after the time that the second replication packet was received.
- 19. A fault tolerant distributed system as recited in claim 13 wherein the backup service manager is further configured to determine that the primary service manager has failed, to receive a subsequent packet from the forwarding agent corresponding to the flow, to match the subsequent packet to the instructions stored on the backup service manager for handling packets corresponding to the flow; and to send the instructions stored on the backup service manager for handling packets corresponding to the flow to the forwarding agent.
- 20. A fault tolerant distributed system as recited in claim 19 wherein the backup service manager is further configured upon determining that the primary service manager has failed to send instructions to the forwarding agent that cause instructions from the primary service manager that are stored on the forwarding agent to expire.
- 21. A fault tolerant distributed system as recited in claim 19 wherein the backup service manager is further configured to reset the backup service manager instruction expiration time to a backup service manager instruction deletion time interval after the time that the subsequent packet was received.
- 22. A computer program product for providing a network service in a fault tolerant manner embodied in a computer readable medium comprising computer instructions for:receiving a packet corresponding to a flow from a forwarding agent at a primary service manager; determining at the primary service manager instructions for handling packets corresponding to the flow; sending the instructions to the forwarding agent; storing the instructions for handling packets corresponding to the flow at the primary service manager; and sending a replication packet to a backup service manager, the replication packet including the instructions for handling packets corresponding to the flow, wherein the primary service manager is further configured to delete the instructions for handling packets corresponding to the flow upon the expiration of a primary service manager instruction maintenance time interval.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to U.S. patent application Ser. No. 09/346,634 now U.S. Pat. No. 6,628,654 entitled DISPATCHING PACKETS FROM A FORWARDING AGENT USING TAG SWITCHING; co-pending U.S. patent application Ser. No. 09/347,124 entitled CASCADING MULTIPLE SERVICES ON A FORWARDING AGENT; co-pending U.S. patent application Ser. No. 09/347,111 entitled LOAD BALANCING USING DISTRIBUTED FORWARDING AGENTS WITH APPLICATION BASED FEEDBACK FOR DIFFERENT VIRTUAL MACHINES; U.S. patent application Ser. No. 09/347,428 now U.S. Pat. No. 6,606,316 entitled GATHERING NETWORK STATISTICS IN A DISTRIBUTED NETWORK SERVICE ENVIRONMENT; co-pending U.S. patent application Ser. No. 09/347,122 entitled HANDLING PACKET FRAGMENTS IN A DISTRIBUTED NETWORK SERVICE ENVIRONMENT; U.S. patent application Ser. No. 09/347,108 now U.S. Pat. No. 6,549,516 entitled SENDING INSTRUCTIONS FROM A SERVICE MANAGER TO FORWARDING AGENTS ON A NEED TO KNOW BASIS; U.S. patent application Ser. No. 09/347,126 now U.S. Pat. No. 6,033,560 entitled DISTRIBUTION OF NETWORK SERVICES AMONG MULTIPLE SERVICE MANAGERS WITHOUT CLIENT INVOLVEMENT; co-pending U.S. patent application Ser. No. 09/347,034 entitled INTEGRATING SERVICE MANAGERS INTO A ROUTING INFRASTRUCTURE USING FORWARDING AGENTS; U.S. patent application Ser. No. 09/347,048 now U.S. Pat. No. 6,606,315 entitled SYNCHRONIZING SERVICE INSTRUCTIONS AMONG FORWARDING AGENTS USING A SERVICE MANAGER; co-pending U.S. patent application No. 09/347,125 entitled BACKUP SERVICE MANAGERS FOR PROVIDING RELIABLE NETWORK SERVICES IN A DISTRIBUTED ENVIRONMENT; co-pending U.S. patent application Ser. No. 09/347,109 entitled NETWORK ADDRESS TRANSLATION USING A FORWARDING AGENT; and co-pending U.S. patent application Ser. No. 09/347,036 entitled PROXYING AND UNPROXYING A CONNECTION USING A FORWARDING AGENT, all filed on Jul. 2, 1999 and incorporated herein by reference for all purposes.
US Referenced Citations (14)
Non-Patent Literature Citations (2)
Entry |
Information Sciences Institute, “Internet Protocol, Darpa Internet Program Protocol Specification”, Univ. of Southern Calif., Marina del Rey, CA. 90291, Sep. 1981. |
S.Deering, “Host Extensions for IP Multicasting”, Stanford University, Aug. 1989. |