Method and apparatus for estimating relative network proximity in the presence of a network filter
First Claim
Patent Images
1. An apparatus comprising:
- a processor to execute instructions that implement;
a proximity estimation unit to send a first number of probe messages to a client agent without waiting to receive a reply message, the proximity estimation unit to receive a first set of reply messages including a largest expired time to live (TTL) value of the first set, and to determine a proximity estimate from the largest expired TTL value of the first set; and
a proximity verification unit coupled with the proximity estimation unit, to use the proximity estimate to set a TTL value in each of a second number of probe messages, to send the second number of probe messages including the largest expired TTL value of the first set, to the client agent, to receive a second set of reply messages including a largest expired TTL value of the second set, and to verify that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, wherein the second number is smaller than the first number, so that the proximity estimate can be verified by sending a smaller number of probe messages than the number of probe messages that was sent to determine the proximity estimate.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for estimating relative network proximity between request routing agents and client agents are described herein. In one embodiment, the method includes a proximity estimation unit to send a first number of probe messages to a client agent without waiting to receive a reply message, wherein the proximity estimation unit is to receive a first set of reply messages. The apparatus also including a proximity verification unit coupled with the proximity estimation unit, to send a second number of probe messages to the client agent, and to receive a second set of reply messages.
-
Citations
30 Claims
-
1. An apparatus comprising:
-
a processor to execute instructions that implement; a proximity estimation unit to send a first number of probe messages to a client agent without waiting to receive a reply message, the proximity estimation unit to receive a first set of reply messages including a largest expired time to live (TTL) value of the first set, and to determine a proximity estimate from the largest expired TTL value of the first set; and a proximity verification unit coupled with the proximity estimation unit, to use the proximity estimate to set a TTL value in each of a second number of probe messages, to send the second number of probe messages including the largest expired TTL value of the first set, to the client agent, to receive a second set of reply messages including a largest expired TTL value of the second set, and to verify that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, wherein the second number is smaller than the first number, so that the proximity estimate can be verified by sending a smaller number of probe messages than the number of probe messages that was sent to determine the proximity estimate. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
estimating a proximity, the estimating including sending a first number of probe messages to a client agent without waiting to receive a reply message, receiving a first set of reply messages including a largest expired time-to-live (TTL) value of the first set, and determining a proximity estimate from the largest expired TTL value of the first set; verifying the proximity, the verifying including using the proximity estimate to set a TTL value in each of a second number of probe messages, sending the second number of probe messages, including a largest expired TTL value of the first set, to the client agent, wherein the second number is less than the first number, receiving a second set of reply messages, including a largest expired TTL value of the second set, and verifying that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, so that the proximity estimate can be verified by sending a number of probe messages that is less than the number of probe messages that was sent to determine the proximity estimate. - View Dependent Claims (6, 7, 8, 9)
-
-
10. An apparatus comprising:
-
a processor to execute instructions that implement; a proximity estimation unit to send a first number of probe messages and to receive a first set of reply messages including a largest expired time-to-live (TTL) value of the first set, the proximity estimation unit to determine a proximity estimate between a request routing agent and a client agent from the largest expired TTL value of the first set; a probe message optimization unit coupled with the proximity estimation unit, to determine an optimized sequence of TTL values to be sent in an optimized number of probe messages, the optimized number being smaller than the first number, the optimized sequence of TTL values including the largest expired TTL value of the first set as a center value of the sequence; and a proximity verification unit coupled with the proximity estimation unit and the probe message optimization unit, to use the proximity estimate to set a time to live (TTL) value in each of the optimized number of probe messages, to send the optimized number of messages to the client agent, to receive a second set of reply messages including a largest expired TTL value of the second set, and to verify that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, so that the proximity estimate can be verified by sending a smaller number of probe messages than the number of probe messages that was sent to determine the proximity estimate. - View Dependent Claims (11, 12, 13)
-
-
14. A network comprising:
-
a request routing agent serving network content, the request routing agent including a processor to execute instructions that implement; a proximity estimation unit to send a number of probe messages to a client agent, to receive a first set of reply messages including a largest expired TTL value of the first set, and to determine a proximity estimate from the first set of reply messages from the largest expired TTL value of the first set; a probe message optimization unit coupled with the proximity estimation unit, to determine an optimized sequence of TTL values to be sent in an optimized number of probe messages, the optimized number being smaller than the first number, the optimized sequence of TTL values including the largest expired TTL value of the first set as a center value of the sequence; and a proximity verifying unit coupled with the proximity estimation unit and the probe message optimization unit, to use the proximity estimate to set a time to live (TTL) value in each of the optimized number of probe messages, to send the optimized number of probe messages, to receive a second set of reply messages including a largest expired TTL value of the second set, and to verify that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, so that the proximity estimate can be verified by sending a smaller number of probe messages than the number of probe messages that was sent to determine the proximity estimate; and the client agent including a processor to execute instructions that implement processing network content requests. - View Dependent Claims (15, 16)
-
-
17. A method comprising:
-
sending a first number of messages to a client agent without waiting to receive a reply message; receiving a first set of reply messages, the first set including a largest expired time to live (TTL) value of the first set; estimating proximity based on the largest expired TTL value of the first set; setting a TTL value in each of a second number of probe messages, wherein the second number of probe messages includes an optimized sequence of TTL values having the largest expired TTL value of the first set as a center value of the sequence, the second number being smaller than the first number; sending the second number of probe messages to the client agent; receiving a second set of reply messages, the second set including a largest expired TTL value of the second set; and verifying that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, so that the estimated proximity can be verified by sending a smaller number of probe messages than the number of probe messages that was sent to estimate the proximity. - View Dependent Claims (18, 19)
-
-
20. A method comprising:
-
sending a first number of probe messages to a client agent, each of the probe messages including a time to live (TTL) value; receiving a first set of reply messages including a largest expired TTL value for the first set; using the largest expired TTL value for the first set to set a TTL value in a second number of probe messages, wherein the second number of probe messages includes the largest expired TTL value of the first set, the second number being smaller than the first number; sending the second number of probe messages; receiving a second set of reply messages including a largest expired TTL value for the second set; determining whether the largest expired TTL value for the second set is equal to the largest expired TTL value for the first set; in response to determining the largest TTL value for the second set is equal to the largest TTL value for the first set, sending a third number of probe messages, each probe message including a TTL value from a second range of TTL values; receiving a third set of reply messages, the third set of reply messages including a largest expired TTL value for the third set; determining whether the largest expired TTL value for the third set is equal to the largest expired TTL value for the first set; in response to determining the largest expired TTL value for the third set is equal to the largest expired TTL value for the first set, indicating a proximity. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A machine-readable storage medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
estimating a proximity, the estimating including, sending a first number of probe messages to a client agent without waiting to receive a reply message, receiving a first set of reply messages, and determining a proximity estimate from the first set of reply messages; verifying the proximity, the verifying including, using the proximity estimate to set a time to live (TTL) value in a second number of probe messages, sending the second number of probe messages to the client agent, wherein the second number of probe messages includes the largest expired TTL value of the first set, the second number being less than the first number, receiving a second set of reply messages including a largest expired TTL value of the second set, and verifying that the largest expired TTL value of the first set equals the largest expired TTL value of the second set, so that the proximity estimate can be verified by sending a number of probe messages that is less than the number of probe messages that was sent to determine the proximity estimate. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A system for directing a client agent to a nearest request routing agent among a plurality of request routing agents on a network, the system comprising:
-
a plurality of request routing agents, each including a processor to execute instructions that; estimate a proximity of the request routing agent to the client agent, by sending a first number of probe messages to the client agent without waiting to receive a reply message; verify the proximity of the request routing agent to the client agent, by sending a second number of probe messages to the client agent without waiting to receive a reply message, the second number being less than the first number, so that the proximity can be verified by sending a number of probe messages that is less than the number of probe messages that was sent to estimate the proximity; and report the verified proximity to a request routing server; a request routing server including a processor to execute instructions that; receive verified proximities from the plurality of request routing agents, based on the received proximities, determine which of the plurality of request routing agents is nearest to the client agent, and direct the client agent to the determined routing agent.
-
Specification