US7072979B1ExpiredUtility

Wide area load balancing of web traffic

84
Assignee: CISCO TECH INCPriority: Jun 28, 2000Filed: Jun 28, 2000Granted: Jul 4, 2006
Est. expiryJun 28, 2020(expired)· nominal 20-yr term from priority
H04L 67/1001H04L 67/61H04L 69/161H04L 67/02H04L 67/101H04L 69/16
84
PatentIndex Score
42
Cited by
79
References
36
Claims

Abstract

In one embodiment, a packet is received from a client, and the packet has a destination identifier associated with a server. When the packet is a start packet, the start packet is altered to indicate that the start packet should be forwarded to any replica that duplicates the data content of the server. The destination identifier of the start packet may be stored for later use. The start packet is then sent to the server. When the start packet indicates that the start packet should be forwarded to any replica that duplicates the data content of the server, the start packet is encapsulated and sent to each replica associated with the server. When a first acknowledgement packet associated with the start packet is received a source identifier of the first acknowledgement packet is stored and associated with the stored destination identifier. The first acknowledgement packet is then sent to the client.

Claims

exact text as granted — not AI-modified
1. A method of facilitating redirection of traffic between a server and a client to between the client and a nearest replica selected from a plurality of replicas, the method comprising:
 receiving a packet that is traveling between a client and a server or between the client and a replica;  
 when the received packet is a start packet that is traveling from the client to the server, altering the start packet to indicate that the start packet should be forwarded to any replica that duplicates the data content of the server;  
 when the received packet is an acknowledgement packet that is received first in response to the forwarded start packet, altering the acknowledgement so that it spoofs the server when the acknowledgement originates from the replica and forwarding the altered acknowledgement to the client; and  
 when the received packet is an acknowledgement that is not received first in response to the forwarded start packet, inhibiting sending of the acknowledgement to the client.  
 
   
   
     2. A method as recited in  claim 1 , wherein the server is spoofed by replacing a source identifier of the received packet with a destination identifier of the start packet. 
   
   
     3. A method as recited in  claim 1 , wherein the server is spoofed by encapsulating the received packet with a source identifier that equals a destination identifier of the start packet. 
   
   
     4. A method as recited in  claim 1 , wherein the received packet is encapsulated and the server is spoofed by cracking the received packet. 
   
   
     5. A method as recited in  claim 1 , further comprising:
 determining that the acknowledgement packet originates from the replica when a source identifier of the acknowledgement packet does not equal a destination identifier of the start packet;  
 determining that the subsequent packet originates from the replica when the source identifier of the subsequent packet does not equal the destination identifier of the start packet; and  
 determining that the subsequent packet is going to the server when the destination identifier of the subsequent packet equals the destination identifier of the start packet.  
 
   
   
     6. A method as recited in  claim 1 , wherein the start packet is altered by adding a tag to or modifying the tag of the start packet to indicate that the start packet should be forwarded to any replica that duplicates data content of the server. 
   
   
     7. A method as recited in  claim 1 , wherein the start packet is only altered when the start packet is associated with web data. 
   
   
     8. A method as recited in  claim 7 , wherein the start packet is associated with web data when the start packet has a destination port utilized for accessing web data. 
   
   
     9. A method as recited in  claim 1 , further comprising:
 storing a destination identifier of the start packet; and  
 storing and associating a source identifier of the acknowledgement packet with the stored destination identifier of the start packet.  
 
   
   
     10. A method as recited in  claim 9 , wherein the destination identifier of the start packet and source identifier of the acknowledgement packet are stored and associated as an entry within a table. 
   
   
     11. A method as recited in  claim 9 , wherein the source identifier of the acknowledgement packet is only stored and associated with the destination identifier of the start packet when the source identifier of the acknowledgement packet does not indicate the server. 
   
   
     12. A method as recited in  claim 11 , further comprising deleting the destination identifier of the start packet when the source identifier of the first acknowledgement packet does not indicate the server. 
   
   
     13. A method as recited in  claim 9 , further comprising:
 prior to storing and associating the source identifier of the acknowledgement packet, cracking the acknowledgement packet to obtain the source identifier when the acknowledgement packet has been encapsulated, and  
 wherein the server is spoofed for the acknowledgement by cracking the acknowledgement packet.  
 
   
   
     14. A method as recited in  claim 1 , further comprising when the received packet is a subsequent packet received after the start packet and the acknowledgement packet, altering the subsequent packet so that it spoofs the server when the subsequent packet originates from the replica or altering the subsequent packet so that it goes to the replica when the subsequent packet originates from the client. 
   
   
     15. A method as recited in  claim 1 , wherein the sending of the acknowledgement to the client is inhibited by sending a reset to the replica or the server identified as a source of the received packet. 
   
   
     16. A computer system operable to facilitate redirection of traffic between a server and a client to between the client and a nearest replica selected from a plurality of replicas, the computer system comprising:
 a memory; and  
 a processor coupled to the memory,  
 wherein at least one of the memory and the processor are adapted to provide: 
 receiving a packet that is traveling between a client and a server or between the client and a replica;  
 when the received packet is a start packet that is traveling from the client to the server, altering the start packet to indicate that the start packet should be forwarded to any replica that duplicates the data content of the server and forwarding the altered acknowledgement to the client; and  
 when the received packet is an acknowledgement packet that is received first in response to the forwarded start packet, altering the acknowledgement so that it spoofs the server when the acknowledgement originates from the replica;  
 when the received packet is an acknowledgement that is not received first in response to the forwarded start packet, inhibiting sending of the acknowledgement to the client.  
 
 
   
   
     17. A computer system as recited in  claim 16  wherein the server is spoofed by replacing a source identifier of the received packet with a destination identifier of the start packet. 
   
   
     18. A computer system as recited in  claim 16 , wherein the server is spoofed by encapsulating the received packet with a source identifier that equals a destination identifier of the start packet. 
   
   
     19. A computer system as recited in  claim 16 , wherein the received packet is encapsulated and the server is spoofed by cracking the received packet. 
   
   
     20. A computer system as recited in  claim 16 , the at least one of the memory and the processor are further adapted to provide:
 determining that the acknowledgement packet originates from the replica when a source identifier of the acknowledgement packet does not equal a destination identifier of the start packet;  
 determining that the subsequent packet originates from the replica when the source identifier of the subsequent packet does not equal the destination identifier of the start packet; and  
 determining that the subsequent packet is going to the server when the destination identifier of the subsequent packet equals the destination identifier of the start packet.  
 
   
   
     21. A computer system as recited in  claim 16 , wherein the start packet is altered by adding a tag to or modifying the tag of the start packet to indicate that the start packet should be forwarded to any replica that duplicates data content of the server. 
   
   
     22. A computer system as recited in  claim 16 , wherein the start packet is only altered when the start packet is associated with web data. 
   
   
     23. A computer system as recited in  claim 22 , wherein the start packet is associated with web data when the start packet has a destination port utilized for accessing web data. 
   
   
     24. A computer system as recited in  claim 16 , the at least one of the memory and the processor are further adapted to provide:
 storing a destination identifier of the start packet; and  
 storing and associating a source identifier of the acknowledgement packet with the stored destination identifier of the start packet.  
 
   
   
     25. A computer system as recited in  claim 24 , wherein the destination identifier of the start packet and source identifier of the acknowledgement packet are stored and associated as an entry within a table. 
   
   
     26. A computer system as recited in  claim 24 , wherein the source identifier of the acknowledgement packet is only stored and associated with the destination identifier of the start packet when the source identifier of the acknowledgement packet does not indicate the server. 
   
   
     27. A computer system as recited in  claim 26 , the at least one of the memory and the processor are further adapted to provide deleting the destination identifier of the start packet when the source identifier of the first acknowledgement packet does not indicate the server. 
   
   
     28. A computer system as recited in  claim 24 , the at least one of the memory and the processor are further adapted to provide:
 prior to storing and associating the source identifier of the acknowledgement packet, cracking the acknowledgement packet to obtain the source identifier when the acknowledgement packet has been encapsulated, and  
 wherein the server is spoofed for the acknowledgement by cracking the acknowledgement packet.  
 
   
   
     29. A computer system as recited in  claim 16 , the at least one of the memory and the processor are further adapted to provide: when the received packet is a subsequently packet received after the start packet and the acknowledgement packet, altering the subsequent packet so that it spoofs the server when the subsequent packet originates from the replica or altering the subsequent packet so that it goes to the replica when the subsequent packet originates from the client. 
   
   
     30. A computer system as recited in  claim 16 , wherein the sending of the acknowledgement to the client is inhibited by sending a reset to the replica or the server identified as a source of the received packet. 
   
   
     31. A computer program product for facilitating redirection of traffic between a server and a client to between the client and a selected one from a plurality of replicas, the computer program product comprising:
 at least one computer readable medium;  
 computer program instructions stored within the at least one computer readable product configured to cause a processing device to: 
 receive a packet that is traveling between a client and a server or between the client and a replica;  
 when the received packet is a start packet that is traveling from the client to the server, alter the start packet to indicate that the start packet should be forwarded to any replica that duplicates the data content of the server;  
 when the received packet is an acknowledgement packet that is received first in response to the forwarded start packet, alter the acknowledgement so that it spoofs the server when the acknowledgement originates from the replica and forward the altered acknowledgement to the client; and  
 when the received packet is an acknowledgement that is not received first in response to the forwarded start packet, inhibit sending of the acknowledgement client.  
 
 
   
   
     32. A computer program product as recited in  claim 31 , the computer program instructions stored within the at least one computer readable product being further configured to when the received packet is a subsequent packet received after the start packet and the acknowledgement packet, alter the subsequent packet so that it spoofs the server when the subsequent packet originates from the replica or alter the subsequent packet so that it goes to the replica when the subsequent packet originates from the client. 
   
   
     33. A computer program product as recited in  claim 31 , wherein the sending of the acknowledgement to the client is inhibited by sending a reset to the replica or the server identified as a source of the received packet. 
   
   
     34. An apparatus for facilitating redirection of traffic between a server and a client to between the client and a nearest replica selected from a plurality of replicas, the apparatus comprising:
 means for receiving a packet that is traveling between a client and a server or between the client and a replica;  
 means for altering the start packet to indicate that the start packet should be forwarded to any replica that duplicates the data content of the server when the received packet is a start packet that is traveling from the client to the server;  
 means for altering the acknowledgement so that it spoofs the server when the acknowledgement originates from the replica and forwarding the altered acknowledgement to the client when the received packet is an acknowledgement packet that is received first in response to the forwarded start packet; and  
 means for inhibiting sending of the acknowledgement to the client when the received packet is an acknowledgement that is not received first in response to the forwarded start packet.  
 
   
   
     35. An apparatus as recited in  claim 34 , further comprising means for when the received packet is a subsequent packet received after the start packet and the acknowledgement packet, altering the subsequent packet so that it spoofs the server when the subsequent packet originates from the replica or altering the subsequent packet so that it goes to the replica when the subsequent packet originates from the client. 
   
   
     36. An apparatus as recited in  claim 34 , wherein the sending of the acknowledgement to the client is inhibited by sending a reset to the replica or the server identified as a source of the received packet.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.