Claims
- 1. A method for performing services within a network communication system, the method comprising:
providing a plurality of service applications at a service module, the service module disposed between a client and a server; intercepting at least one packet between the client and the server; determining whether the at least one packet matches a predetermined service criteria associated with at least one of the plurality of service applications; establishing a first connection between the service module and the client and a second connection between the service module and the server; receiving data transmitted by the server for the client; processing at least a portion of the data communicated between the client and the server using the service application associated with the predetermined service criteria; and transmitting the processed data to the client.
- 2. The method of claim 1, wherein the service module is arranged in an inline configuration within the network communication system, and wherein the step of intercepting comprises routing the at least one packet through the service module.
- 3. The method of claim 1, wherein the service module is arranged in an offload configuration, and wherein the step of intercepting comprises directing the at least one packet to the service module.
- 4. The method of claim 1, wherein the step of determining comprising classifying the at least one packet in accordance with a plurality of classification rules.
- 5. The method of claim 4, wherein the classification rules comprise one or more masks, and wherein the step of classifying comprises applying the one or more masks to a packet header of the at least one packet.
- 6. The method of claim 1, wherein the step of establishing comprises:
terminating a connection between the client and the server at the service module to form the first connection; and opening a separate connection between the service module and the server to form the second connection.
- 7. The method of claim 6, wherein the step of opening is performed by the service application associated with the predetermined service criteria.
- 8. The method of claim 1, wherein the step of establishing comprises redirecting packets communicated between the client and the server to the service application by replacing a destination address and destination port field of the at least one packet with a destination address and destination port associated with the service application.
- 9. The method of claim 1, wherein the step of establishing comprises generating control block parameters for the first connection and for the second connection.
- 10. The method of claim 1, further comprising identifying initiation of an application-specific transaction.
- 11. The method of claim 10, further comprising buffering data associated with the application-specific transaction prior to performing the step of processing.
- 12. The method of claim 1, wherein the step of transmitting comprises generating outgoing packets having a source address and source port associated with the server.
- 13. The method of claim 12, wherein the step of generating comprises replacing a source address and source port field of the outgoing packets with a source address and source port associated with the server.
- 14. The method of claim 12, wherein the step of generating comprises generating outgoing packets in accordance with control block parameters associated with the first connection, the control block parameters including a source address and source port associated with the server.
- 15. The method of claim 1, wherein the step of processing comprises compressing at least a portion of the data communicated between the client and the server.
- 16. A method for selectively performing at least one of a plurality of service applications within a network communication system, the method comprising:
classifying a connection that has been requested between the client and the server to determine whether the connection matches a predetermined service criteria, the predetermined service criteria associated with at least one of the plurality of service applications; forming a first connection between the client and the service module and a second connection between the service module and the server in response to the connection matching the predetermined service criteria; and using the first connection and the second connection to redirect at least a portion of data communicated between the client and the server to the service application associated with the predetermined service criteria.
- 17. The method of claim 16, wherein the step of classifying comprises classifying packets associated with the connection in accordance with a plurality of classification rules.
- 18. The method of claim 17, wherein the classification rules comprise one or more masks, and wherein the step of classifying further comprises applying the one or more masks to a packet header of the packets.
- 19. The method of claim 16, wherein the step of forming comprises:
terminating the connection between the client and the server at the service module to form the first connection; and opening a separate connection between the service module and the server to form the second connection.
- 20. The method of claim 19, wherein the step of opening is performed by the service application associated with the predetermined service criteria.
- 21. The method of claim 16, wherein the step of using comprises replacing a destination address and destination port field of packets associated with the connection with a destination address and destination port associated with the service application.
- 22. The method of claim 16, wherein the step of using comprises generating control block parameters for the first connection and for the second connection.
- 23. The method of claim 16, further comprising identifying initiation of an application-specific transaction.
- 24. The method of claim 23, further comprising buffering data associated with the application-specific.
- 25. The method of claim 16, further comprising transmitting outgoing packets having a source address and source port associated with the end-to-end connection between the client and the server.
- 26. The method of claim 25, wherein the step of transmitting comprises replacing a source address and source port field of the outgoing packets with a source address and source port associated with the server.
- 27. The method of claim 25, wherein the step of transmitting comprises generating outgoing packets in accordance with control block parameters associated with the first connection, the control block parameters including a source address and source port associated with the server.
- 28. A method for classifying a packet communicated between a client and a server in accordance with a plurality of classification rules, the method comprising:
storing at least a first portion of the plurality of classification rules in a first hashing table such that hash conflicts for the classification rules in the first hashing table are stored as an m-ary tree structure; hashing the first hashing table in accordance with a first hash field, the first hash field based on at least a portion of a header of the packet; if the hash entry indicated by the hashing step comprises a classification rule, applying the indicated classification rule to the header of the packet; and if the hash entry indicated by the hashing step does not comprise a classification rule, performing a binary search of the m-ary tree structure based on a second hash field to determine a next hash entry.
- 29. The method of claim 28, further comprising examining a flag included in the hash entry to determine the second hash field.
- 30. The method of claim 28, wherein the step of storing comprises storing at least a second portion of the plurality of classification rules in a second hashing table.
- 31. The method of claim 30, wherein the hash entry includes a flag for indicating a next hashing table.
- 32. The method of claim 31, further comprising hashing the second hashing table indicated by the second flag, if the header of the packet does not match the indicated classification rule.
- 33. The method of claim 31, further comprising hashing the second hashing table indicated by the second flag, if a pointer indicated by the binary search comprises a null pointer.
- 34. The method of claim 28, wherein the hash entry includes a first flag for indicating a next hashing table and a second flag for indicating a next hash field.
- 35. The method of claim 34, further comprising hashing the first hashing table using a third hash field indicated by the second flag.
- 36. A system for performing differentiated services within a network communication system, the system comprising:
a processor; and a memory unit, operably coupled to the processor, for storing data an instructions which when executed by the processor cause the processor to operate so as to:
provide a plurality of service applications at a service module, the service module disposed between a client and a server; intercept at least one packet between the client and the server; determine whether the at least one packet matches a predetermined service criteria associated with at least one of the plurality of service applications; establish a first connection between the service module and the client and a second connection between the service module and the server; receive data transmitted by the server for the client; process at least a portion of the data communicated between the client and the server using the service application associated with the predetermined service criteria; and transmit the processed data to the client.
- 37. A system for performing differentiated services within a network communication system, the system comprising:
a processor; and a memory unit, operably coupled to the processor, for storing data an instructions which when executed by the processor cause the processor to operate so as to:
classify a connection that has been requested between the client and the server to determine whether the connection matches a predetermined service criteria, the predetermined service criteria associated with at least one of the plurality of service applications; form a first connection between the client and the service module and a second connection between the service module and the server in response to the connection matching the predetermined service criteria; and use the first connection and the second connection to redirect at least a portion of data communicated between the client and the server to the service application associated with the predetermined service criteria.
- 38. A system for classifying a connection, the system comprising:
a processor; and a memory unit, operably coupled to the processor, for storing data an instructions which when executed by the processor cause the processor to operate so as to:
store at least a first portion of the plurality of classification rules in a first hashing table such that hash conflicts for the classification rules in the first hashing table are stored as an m-ary tree structure; hash the first hashing table in accordance with a first hash field, the first hash field based on at least a portion of a header of the packet; if the hash entry indicated by the hashing step comprises a classification rule, apply the indicated classification rule to the header of the packet; and if the hash entry indicated by the hashing step does not comprise a classification rule, perform a binary search of the m-ary tree structure based on a second hash field to determine a next hash entry.
REFERENCE TO RELATED APPLICATION
[0001] The present application claims priority from U.S. provisional application Ser. Nos. 60/291,918 filed May 16, 2001 and 60/309,213 filed Jul. 31, 2001. U.S. provisional application Ser. Nos. 60/291,918 and 60/309,213 are hereby incorporated herein by reference in its entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60291918 |
May 2001 |
US |
|
60309213 |
Jul 2001 |
US |