Claims
- 1. A method for routing packets in a network in conjunction with a quality of service guarantee, comprising:
receiving a packet having a header section and a payload section; inspecting the payload section of the packet in a network core for use in determining how to route the packet; determining a quality of service guarantee for the packet; and selectively routing the packet based upon the inspecting and the quality of service guarantee.
- 2. The method of claim 1 wherein the inspecting step includes determining whether information in the payload section matches content predicate information in a structure associating the content predicate information with corresponding network destinations.
- 3. The method of claim 1, further including performing the inspecting step at a router in the network core.
- 4. The method of claim 1 wherein the inspecting step includes matching a filter to information in the payload section.
- 5. The method of claim 4, further including propagating the filter to a router in the network for use in performing the inspecting.
- 6. The method of claim 1, further including programming a router in the network for performing the receiving, inspecting, and routing steps.
- 7. The method of claim 1 wherein the inspecting step includes inspecting attributes for use in determining how to route the packet or whether to drop the packet altogether.
- 8. A method for routing messages in a network, comprising:
receiving a message having a header section, at least one subject, and at least one attribute; retrieving the subject and the attribute from the message; retrieving a subscription based upon the subject; determining a quality of service guarantee for the message; applying the attribute to the subscription in a network core in order to determine how to route the message; and selectively routing the message based upon the applying and the quality of service guarantee.
- 9. The method of claim 8 wherein the retrieving the subscription step includes retrieving a filter corresponding with the subscription.
- 10. The method of claim 8, further including routing the message if the attribute satisfies the subscription.
- 11. The method of claim 8, further including discarding the message if the attribute does not satisfy the subscription.
- 12. The method of claim 8, further including:
retrieving a plurality of filters corresponding with a plurality of subscriptions; retrieving a plurality of attributes from the message; matching each of the attributes to each of the filters to determine if any of the corresponding subscriptions are satisfied; and selectively routing the message based upon whether any of the subscriptions are satisfied.
- 13. The method of claim 8, further including performing the inspecting step at a router in the network core.
- 14. An apparatus for routing packets in a network in conjunction with a quality of service guarantee, comprising:
a module for receiving a packet having a header section and a payload section; at least one module for inspecting the payload section of the packet in a network core for use in determining how to route the packet; a module for determining a quality of service guarantee for the packet; and a module for selectively routing the packet based upon the inspection results obtained from and the quality-of-service guarantees determined by the steps above.
- 15. The apparatus of claim 14 wherein the inspecting module includes a module for determining whether information in the payload section matches content predicate information in a structure associating the content predicate information with corresponding network destinations or corresponding rules governing in-router processing.
- 16. The apparatus of claim 14, further including a module for performing the inspecting step at a router in the network core.
- 17. The apparatus of claim 14 wherein the inspecting module includes a module for matching a filter to information in the payload section.
- 18. The apparatus of claim 17, further including a module for propagating the filter to a router in the network for use in performing the inspecting.
- 19. The apparatus of claim 14, further including a module for programming a router in the network for performing the receiving, inspecting, and processing.
- 20. The apparatus of claim 14, wherein the apparatus is a router.
- 21. An apparatus for routing messages in a network, comprising:
a module for receiving a message having a header section, at least one subject, and at least one attribute; a module for retrieving the subject and the attribute from the message; a module for retrieving a subscription based upon the subject; a module for matching the attribute to the subscription in a network core in order to determine how to route the message; and a module for determining a quality of service guarantee for the packet.
- 22. The apparatus of claim 21 wherein the module for retrieving the subscription includes a module for retrieving a filter corresponding with the subscription.
- 23. The apparatus of claim 21, further including a module for selective routing the message if the attribute satisfies the subscription and based on the quality of service guarantee.
- 24. The apparatus of claim 21, further including a module for discarding the message if the attribute does not satisfy any of the subscriptions stored at the router.
- 25. The apparatus of claim 21, further including:
a module for retrieving a plurality of filters corresponding with a plurality of subscriptions; a module for retrieving a plurality of attributes from the message; a filtering module for matching each of the attributes to each of the filters to determine if any of the corresponding subscriptions are satisfied; and a module for selectively routing the message based upon whether any of the subscriptions are satisfied.
- 26. The apparatus of claim 21, further including one or more modules for performing the filtering step at a router in the network core.
- 27. The apparatus of claim 21, wherein the apparatus is a router.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application incorporates by reference and claims the priority of U.S. Provisional Application No. 60/394,631, entitled “Packet Routing Via Payload Inspection for Quality of Service Management,” filed Jul. 8, 2002. The present application is also a Continuation-in-Part (CIP) of U.S. patent application Ser. No. 10/199,356, entitled “Packet Routing Via Payload Inspection,” U.S. patent application Ser. No. 10/199,368, entitled “Method And Apparatus For Content-Based Routing And Filtering At Routers Using Channels,” U.S. patent application Ser. No. 10/199,439, entitled “Method For Sending And Receiving A Boolean Function Over A Network”, U.S. patent application Ser. No. 10/199,369, entitled “Method For Storing Boolean Functions To Enable Evaluation, Modification, Reuse, And Delivery Over A Network,” and U.S. patent application Ser. No. 10/199,388, entitled “Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing,” all filed Jul. 19, 2002 and all hereby incorporated by reference.
[0002] The present application also incorporates by reference the following U.S. patent applications, also CIPs of the above-referenced applications, filed Mar. 28, 2003: application Ser. No. 10/400,671, entitled “Method and Apparatus for Reliable Publishing and Subscribing in an Unreliable Network,” application Ser. No. 10/400,465, entitled “Method and Apparatus for Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation,” application Ser. No. 10/400,453, entitled “Method and Apparatus for Implementing Query-Response Interactions in a Publish-Subscribe Network,” application Ser. No. 10/400,462, entitled “Method and Apparatus for Implementing Persistent and Reliable Message Delivery,” and, application Ser. No. 10/400,444, entitled “Method and Apparatus for Propagating Content Filters for a Publish-Subscribe Network.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60394631 |
Jul 2002 |
US |
Continuation in Parts (5)
|
Number |
Date |
Country |
Parent |
10199356 |
Jul 2002 |
US |
Child |
10613996 |
Jul 2003 |
US |
Parent |
10199368 |
Jul 2002 |
US |
Child |
10613996 |
Jul 2003 |
US |
Parent |
10199439 |
Jul 2002 |
US |
Child |
10613996 |
Jul 2003 |
US |
Parent |
10199369 |
Jul 2002 |
US |
Child |
10613996 |
Jul 2003 |
US |
Parent |
10199388 |
Jul 2002 |
US |
Child |
10613996 |
Jul 2003 |
US |