Content routing
First Claim
1. A system for routing packets based on data content, the system comprising:
- a client sending a heads up packet prior to establishing a connection for transferring data, the heads up packet identifying the data to be transferred over the connection; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet.
1 Assignment
0 Petitions
Accused Products
Abstract
Before sending a connection setup packet, a client sends a heads up packet (HUP) toward the server from which the client is requesting data. The HUP contains information about the data that the client is requesting. Recipient servers along the path between the client and the requested server decode the HUP. If the recipient servers know of a more convenient source for the requested data, the setup and heads up packets are modified to point to the more convenient source and are forwarded in the source'"'"'s direction. HUPs are designed to be ignored by recipient servers not designed to decode them. In this way, HUPS can operate over existing networks. HUPs are designed to be small, to facilitate quick decoding and ensure the HUP is not fragmented. A HUP includes an indication of the setup packet about whose connection it has data. If a server receives the HUP but not the associated setup packet, the server will drop the HUP. If HUPs are used, a client or its proxy must be prepared to accept an acknowledgement of the connection from a server it did not request. Otherwise, HUPs are unnecessary and problematic.
79 Citations
59 Claims
-
1. A system for routing packets based on data content, the system comprising:
-
a client sending a heads up packet prior to establishing a connection for transferring data, the heads up packet identifying the data to be transferred over the connection; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet. - View Dependent Claims (2, 3, 4, 5, 6, 8, 10, 14, 15)
the client sends an associated setup packet to establish the connection after the heads up packet;
the heads up packet identifies the associated setup packet; and
the content routing device routes the associated setup packet according to the identified data in the heads up packet.
-
-
3. A system according to claim 2 wherein the content routing device reroutes the heads up packet and the associated setup packet to a network device having a cache containing the identified data in the heads up packet without the content routing device ever establishing a connection with the client.
-
4. A system according to claim 2 wherein the content routing device forwards the heads up packet and the associated setup packet to another content routing device closer to a destination server to establish the connection when there is no other content routing device containing the identified data in the heads up packet.
-
5. A system according to claim 2 wherein the content routing device accepts the associated setup packet and then sends another heads up packet and another associated setup packet to another content routing device requesting the data for the client.
-
6. A system according to claim 2 wherein the connection is established by the content routing device sending an acceptance of the associated setup packet to the client and the client acknowledging the acceptance of the associated setup packet back to the content routing device.
-
8. A system according to claim 2 wherein the associated setup packet includes an association to the heads up packet.
-
10. A system according to claim 2 wherein the associated setup packet is a TCP/IP packet that sets up the connection as a TCP connection.
-
14. A system according to claim 1 wherein the content routing device drops the heads up packet if the content routing device is not configured to decode the heads up packet.
-
15. A system according to claim 1 wherein the content routing device routes the connection according to the identified data in the heads up packet and available capacity of network devices.
-
7. A system for routing packets based on data content, the system comprising:
-
a client sending a heads up packet prior to establishing a connection for transferring data and an associated setup packet to establish the connection after the heads up packet, the heads up packet identifying the data to be transferred over the connection and identifying the associated setup packet; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet, the content routing device routing the associated setup packet according to the identified data in the heads up packet and dropping the heads up packet if the content routing device does not receive the associated setup packet.
-
-
9. A system for routing packets based on data content, the system comprising:
-
a client sending a heads up packet prior to establishing a connection for transferring data and an associated setup packet to establish the connection after the heads up packet, the heads up packet identifying the data to be transferred over the connection and identifying the associated setup packet and the associated setup packet includes an association to the heads up packet; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet, the content routing device routing the associated setup packet according to the identified data in the heads up packet and dropping the associated setup packet if the content routing device does not receive the associated heads up packet.
-
-
11. A system for routing packets based on data content, the system comprising:
-
a client sending a heads up packet prior to establishing a connection for transferring data and an associated setup packet to establish the connection after the heads up packet, the heads up packet identifying the data to be transferred over the connection and identifying the associated setup packet and the associated setup packet being a TCP/IP packet that sets up the connection as a TCP connection, the heads up packet and the associated setup packet having a same destination address, source address, destination port and sequence number; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet, the content routing device routing the associated setup packet according to the identified data in the heads up packet and dropping the associated setup packet if the content routing device does not receive the associated heads up packet.
-
-
12. A system for routing packets based on data content, the system comprising:
-
a client sending a heads up packet prior to establishing a connection for transferring data and an associated setup packet to establish the connection after the heads up packet, the heads up packet identifying the data to be transferred over the connection and identifying the associated setup packet and the associated setup packet being a TCP/IP packet that sets up the connection as a TCP connection, the heads up packet includes a source port and reset flag set that prevents the content routing device from establishing a second connection with the client based on the heads up packet; and
a content routing device receiving and decoding the heads up packet before the connection with the client is established and routing the connection according to the identified data in the heads up packet, the content routing device routing the associated setup packet according to the identified data in the heads up packet and dropping the associated setup packet if the content routing device does not receive the associated heads up packet. - View Dependent Claims (13)
-
-
16. A content routing device, comprising:
-
an input receiving a heads up packet and an associated setup packet, the heads up packet identifying data to be transferred over a network connection and identifying the associated setup packet, and the associated setup packet used for setting up the network connection; and
a processor decoding the heads up packet prior to establishing the network connection, the processor routing the associated setup packet for establishing the network connection according to the identified data in the heads up packet. - View Dependent Claims (17, 18, 19, 20, 22, 24, 25, 26)
-
-
21. A content routing device, comprising:
-
an input receiving a heads up packet and an associated setup packet, the heads up packet identifying data to be transferred over a network connection and identifying the associated setup packet, and the associated setup packet used for setting up the network connection; and
a processor decoding the heads up packet prior to establishing the network connection, the processor routing the associated setup packet for establishing the network connection according to the identified data in the heads up packet, the processor dropping the heads up packet if the processor does not receive the associated setup packet.
-
-
23. A content routing device, comprising:
-
an input receiving a heads up packet and an associated setup packet, the heads up packet identifying data to be transferred over a network connection and identifying the associated setup packet, and the associated setup packet used for setting up the network connection, the associated setup packet including an association to the heads up packet; and
a processor decoding the heads up packet prior to establishing the network connection, the processor routing the associated setup packet for establishing the network connection according to the identified data in the heads up packet, the processor dropping the associated setup packet if the processor does not receive the associated heads up packet.
-
-
27. A content routing device, comprising:
-
an input receiving a heads up packet and an associated setup packet, the heads up packet identifying data to be transferred over a network connection and identifying the associated setup packet, and the associated setup packet used for setting up the network connection, the associated setup packet being a TCP/IP packet that sets up the network connection as a TCP connection, the heads up packet and the associated setup packet having a same destination address, source address, destination port and sequence number; and
a processor decoding the heads up packet prior to establishing the network connection, the processor routing the associated setup packet for establishing the network connection according to the identified data in the heads up packet.
-
-
28. A content routing device, comprising:
-
an input receiving a heads up packet and an associated setup packet, the heads up packet identifying data to be transferred over a network connection and identifying the associated setup packet, and the associated setup packet used for setting up the network connection, the heads up packet includes a source port and reset flag set that prevents the content routing device from establishing a connection based on the heads up packet; and
a processor decoding the heads up packet prior to establishing the network connection, the processor routing the associated setup packet for establishing the network connection according to the identified data in the heads up packet. - View Dependent Claims (29)
-
-
30. A network element comprising:
-
an output outputting a heads up packet and an associated setup packet, wherein;
the associated setup packet contains information for establishing a network connection;
the heads up packet identifies data transmitted over the network connection and identifies the associated setup packet; and
the heads up packet enables routing of the associated setup packet according to the identified data in the heads up packet before establishing the network connection. - View Dependent Claims (31, 32, 33)
-
-
34. A network element comprising:
-
an output outputting a heads up packet and an associated setup packet, wherein;
the associated setup packet contains information for establishing a network connection, the associated setup packet being a TCP/IP packet that sets up the network connection as a TCP connection;
the heads up packet identifies data transmitted over the network connection and identifies the associated setup packet, the heads up packet and the associated setup packet having a same destination address, source address, destination port and sequence number; and
the heads up packet enables routing of the associated setup packet according to the identified data in the heads up packet before establishing the network connection.
-
-
35. A network element comprising:
-
an output outputting a heads up packet and an associated setup packet, wherein;
the associated setup packet contains information for establishing a network connection, the associated setup packet being a TCP/IP packet that sets up the network connection as a TCP connection;
the heads up packet identifies data transmitted over the network connection and identifies the associated setup packet, the heads up packet including a source port and reset flag set that prevents establishment of a connection based on the heads up packet; and
the heads up packet enables routing of the associated setup packet according to the identified data in the heads up packet before establishing the network connection. - View Dependent Claims (36)
-
-
37. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, and establishing the network connection between the client and the selected network element using the rerouted matching setup packet. - View Dependent Claims (38, 42, 44, 45)
-
-
39. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including rerouting the heads up packet and the matching setup packet toward a destination requested by the client when none of the network elements is selected as associated with the identified data in the heads up packet; and
establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
40. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including accepting the matching setup packet and sending a second heads up packet and a second matching setup packet to request the identified data; and
establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
41. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client;
establishing the network connection between the client and the selected network element using the rerouted matching setup packet; and
dropping the heads up packet if the matching setup packet is not received.
-
-
43. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection, the matching setup packet including an association to the heads up packet;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client;
establishing the network connection between the client and the selected network element using the rerouted matching setup packet; and
dropping the matching setup packet if the associated heads up packet is not received.
-
-
46. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection, the setup packet being a TCP/IP packet that sets up the network connection as a TCP connection, the heads up packet and the matching setup packet having a same destination address, source address, destination port and sequence number;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, and establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
47. A method for routing packets to different network elements, the method comprising:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection, the setup packet being a TCP/IP packet that sets up the network connection as a TCP connection, the heads up packet including a source port and a reset flag set that prevents establishing a second network connection based on the heads up packet;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, and establishing the network connection between the client and the selected network element using the rerouted matching setup packet. - View Dependent Claims (48)
-
-
49. A method for routing packets according to content, comprising:
-
generating a setup packet containing information for establishing a network connection;
generating a heads up packet identifying data to be transmitted over the network connection, the heads up packet associated with the setup packet; and
sending the heads up packet to a first destination address prior to sending the setup packet, the heads up packet enabling the first destination address to reroute the setup packet if necessary to a second destination address associated with the identified data in the heads up packet before establishing the network connection to the first destination address. - View Dependent Claims (51, 55)
-
-
50. A method for routing packets according to content, comprising:
-
generating a setup packet containing information for establishing a network connection;
generating a heads up packet identifying data to be transmitted over the network connection, the heads up packet associated with the setup packet;
sending the heads up packet to a first destination address prior to sending the setup packet, the heads up packet enabling the first destination address to reroute the setup packet if necessary to a second destination address associated with the identified data in the heads up packet before establishing the network connection to the first destination address;
receiving an acceptance of the setup packet from the second destination address; and
establishing a network connection with the second destination address.
-
-
52. A method for routing packets according to content, comprising:
-
generating a setup packet containing information for establishing a network connection, the setup packet being a TCP/IP packet that sets up the network connection as a TCP connection;
generating a heads up packet identifying data to be transmitted over the network connection, the heads up packet associated with the setup packet, the heads up packet and the setup packet have a same destination address, source address, destination port and sequence number; and
sending the heads up packet to a first destination address prior to sending the setup packet, the heads up packet enabling the first destination address to reroute the setup packet if necessary to a second destination address associated with the identified data in the heads up packet before establishing the network connection to the first destination address.
-
-
53. A method for routing packets according to content, comprising:
-
generating a setup packet containing information for establishing a network connection, the setup packet being a TCP/IP packet that sets up the network connection as a TCP connection;
generating a heads up packet identifying data to be transmitted over the network connection, the heads up packet associated with the setup packet, the heads up packet including a source port and reset flag set that prevents establishment of a connection based on the heads up packet; and
sending the heads up packet to a first destination address prior to sending the setup packet, the heads up packet enabling the first destination address to reroute the setup packet if necessary to a second destination address associated with the identified data in the heads up packet before establishing the network connection to the first destination address. - View Dependent Claims (54)
-
-
56. An article comprising a machine-accessible medium having associated data that, when accessed, results in a machine:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including rerouting the heads up packet and the matching setup packet toward a destination requested by the client when none of the network elements is selected as associated with the identified data in the heads up packet; and
establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
57. An article comprising a machine-accessible medium having associated data that, when accessed, results in a machine:
-
receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
receiving the matching setup packet from the client used for establishing the network connection;
decoding the identified data in the heads up packet;
selecting one of the network elements associated with the identified data in the heads up packet;
rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including accepting the matching setup packet and sending a second heads up packet and a second matching setup packet to request the identified data; and
establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
58. A content routing device, comprising:
-
means for receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
means for receiving the matching setup packet from the client used for establishing the network connection;
means for decoding the identified data in the heads up packet;
means for selecting one of the network elements associated with the identified data in the heads up packet;
means for rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including rerouting the heads up packet and the matching setup packet toward a destination requested by the client when none of the network elements is selected as associated with the identified data in the heads up packet; and
means for establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
-
59. A content routing device, comprising:
-
means for receiving a heads up packet from a client, the heads up packet identifying data to be transferred over a network connection and identifying a matching setup packet;
means for receiving the matching setup packet from the client used for establishing the network connection;
means for decoding the identified data in the heads up packet;
means for selecting one of the network elements associated with the identified data in the heads up packet;
means for rerouting the matching setup packet to the selected one of the network elements prior to establishing a network connection with the client, including accepting the matching setup packet and sending a second heads up packet and a second matching setup packet to request the identified data; and
means for establishing the network connection between the client and the selected network element using the rerouted matching setup packet.
-
Specification