IP Library Granted Patent US 7,555,542
Granted Patent B1
US 7,555,542 · App. 09/575,839 · Granted Jun 30, 2009

Method and system for directing requests for content to a content server based on network performance

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,555,542
App. No.
09/575,839
Granted
Jun 30, 2009
Kind
B1
Abstract

A method and system for pointing a Internet user requesting access to content on a particular web site to one of a plurality of content servers associated with that web site based on one or more cost measurements associated with serving said content. The identification of the web site is mapped to the content servers associated with that web site. The user's IP address is then mapped to a particular content server based on a cost function and the IP address of the selected content server is provided to the user.

Claims (100)

1. A method for directing a first network client requesting access to content to one of a plurality of content servers that can provide said content, comprising:

if one or more cost measurements am available that measure operational characteristics of the network based on communication between the first network client and one or more of the plurality of content servers, then directing the first network client to a said one of said content servers based on the one or more cost measurements;

otherwise, directing the first network client to a said one of said content servers using one or more cost measurements that measure operational characteristics of the network, based on communication between a second client that is physically proximate to the first network client and one or more of the plurality of content servers.

2. A method as recited in claim 1 , further comprising:

obtaining a new cost measurement when said first network client accesses said content server;

and using said new cost measurement as an indicator of operational characteristics of the network in connection with subsequent requests for access to said content that can be provided by said content server.

3. A method as recited in claim 1 , wherein said content servers are associated with a network server having an identity, and wherein said network client requests content from said network server, and further comprising: mapping the identity of the network server to said content servers.

4. A method as recited in claim 1 further comprising measuring network performance between said first network client and a said one of said content servers.

5. A method as recited in claim 4 , further comprising measuring network performance between said first network client and another of said content servers.

6. A method as recited in claim 1 , wherein an attribute of network performance comprises network latency.

7. A method as recited in claim 6 , wherein network latency is measured passively by determining the time between a syn ack message sent by said first network client and an ack message sent by one of said content servers.

8. A method as recited in claim 1 , further comprising determining the location of said first network client by circular intersection.

9. A method as recited in claim 8 , wherein said circular intersection comprises:

(a) measuring the time that it takes for data to move from a plurality of network server locations to said first network client;

(b) converting said times to distance equivalents;

(e) determining a plurality of intersecting circles, wherein said distance equivalents are used as the radii of the circles and said network server locations are used as the centers of the circles; and

(d) determining the physical location of said first network client from the intersection of said circles.

10. A method as recited in claim 1 , further comprising inferring network performance of serving said first network client from said content server by determining a weighted average of network performance between, said content server and other network clients based on physical proximity of said other network clients to said network client and performance of said content server for said other network clients.

11. A method as recited in claim 1 , further comprising:

(a) measuring network latency between a content server and a plurality of other network clients;

(b) determining physical distances between said other network clients and said first network client;

(e) computing a weighted average of said latency measurements as a function of said distances, wherein stud weighed average comprises an estimate of the latency between said content server and said first network client; and

(d) inferring operational characteristics associated with a plurality of network clients to said first network client using said weighted average.

12. A method for directing a first network client requesting access to content from a network server to one of a plurality of content servers that can provido said content, each said content server having an address, said network server having an identity, said method comprising:

(a) identifying the network server associated with the content requested by said network client;

(b) if one or more cost measurements are available that measure operational characteristics of the network based on communication between the first network client and one or more of the plurality of content servers, then identifying a said one of said content servers based on said identity of said network server and the one or more cost measurements;

otherwise, identifying a said one of said content servers based on said identity of said network server and one or more cost measurements that measure operational characteristics of the network based on communication between a second client that is physically proximate to the first network client and one or more of the plurality of content server; and

(c) providing the first network client with the address of said content server identified in step (b).

13. A method as recited in claim 12 , further comprising:

(d) obtaining a new cost measurement when said first network client accesses said content server; mid

(e) using said new cost measurement as an indicator of operational characteristics of tile network in connection with subsequent requests for access to said content that can be provided by said content server.

14. A method as recited in claim 12 , further comprising Measuring network performance between said first network client and a said one of said content servers.

15. A method as recited in claim 12 , wherein an attribute of network performance comprises network latency.

16. A method as recited in claim 15 , wherein network latency is measured passively by determining the time between a syn ack message sent by said first network client and an ack message sent by said one of said content servers.

17. A method as recited in claim 14 , further comprising measuring network performance between said first network client and another of said content servers.

18. A method as recited in claim 12 , determining the location of said first network client by circular intersection.

19. A method as recited in claim 18 , wherein said circular intersection comprises:

(a) measuring the time that it takes for data to move from a plurality of network server locations to said first network client;

(b) converting said times to distance equivalents;

(c) determining a plurality of intersecting circles, wherein said distance equivalents are used as the radii of the circles and said network server locations are used as the centers of the circles; and

(d) determining the physical location of said first network client from the intersection of said circles.

20. A method as recited in claim 12 , further comprising inferring network performance of serving said first network client from said content server by determining a weighted average of network performance between said content server and other network clients based on physical proximity of said other network clients to said first network client and performance of said content server for said other network clients.

21. A method as recited in claim 12 , further comprising:

(a) measuring network latency between a content server and a plurality of other network clients;

(b) determining physical distances between said other network clients and said first network client;

(e) computing a weighted average of said latency measurements as a function of said distances, wherein said weighed average comprises an estimate of the latency between said content server and said first network client; and

(d) inferring operational characteristics associated with said other network clients to said first network client using said weighted average.

22. A system for directing a first network client requesting access to content to one of a plurality of content servers that can provide said content, comprising:

a programmed data processor; and

programming associated with said programmed data processor for:

determining whether one or more cost measurements are available that measure operational characteristics of the network based on communication between the first network client and one or more of the plurality of content servers,

if so, then directing the first network client to a said one of said content servers based on the one or more cost measurements;

if not, then directing the first network client to a said one of said content servers using one or more cost measurements that measure operational characteristics of the network based on communication between a second client that is physically proximate to the first network client and one or more of the plurality of content servers.

23. A system as recited in claim 22 , further comprising programming associated with said programmed data processor for:

obtaining a new cost measurement when said first network client accesses said content server;

and using said new cost measurement as an indicator of operational characteristics of the network in connection with subsequent requests for access to said content that can be provided by said content server.

24. A system as recited in claim 22 , wherein said content servers are associated with a network server having an identity, and wherein said first network client requests content from said network server, and further comprising:

programming associated with said programmed data processor mapping the identity of the network server to said content servers.

25. A system as recited in claim 22 , further comprising programming associated with said programmed data processor for measuring network performance between said first network client and a said one of said content servers.

26. A system as recited in claim 22 , wherein an attribute of network performance comprises network latency.

27. A system as recited in claim 26 , wherein network latency is measured passively by determining the time between a syn ack message sent by said first network client and an ack message sent by one of said content servers.

28. A system as recited in claim 25 , further comprising programming associated with said programmed data processor for measuring network performance between said first network client and another of said content servers.

29. A system as recited in claim 22 , further comprising programming associated with said programmed data processor for determining the location of said first network client by circular intersection.

30. A system as recited in claim 29 , wherein said circular intersection comprises:

(a) measuring the time that it takes for data to move from a plurality of network server locations to said first network client;

(b) converting said times to distance equivalents;

(c) determining a plurality of intersecting circles, wherein said distance equivalents are used as the radii of the circles and said network server locations are used as the centers of the circles; and

(d) determining the physical location of said first network client from the intersection of said circles.

31. A system as recited in claim 22 , further comprising programming associated with said programmed data processor for inferring network performance of server said first network client from said content server by determining a weighted average of network performance between said content server and other network clients based on physical proximity of said other network clients to said first network client and performance of said content server for said other network clients.

32. A system as recited in claim 22 , further comprising programming associated with said programmed data processor for:

(a) measuring network latency between a content server and a plurality of other network clients;

(b) determining physical distances between said other network clients and said first network client;

(c) computing a weighted average of said latency measurements as a function of said distances, wherein said weighed average comprises an estimate of the latency between said content server and said first network client; and

(d) inferring operational characteristics associated with a plurality of network clients to said first network client using said weighted average.

33. A system for directing a first network client requesting access to content from a network server to one of a plurality of content servers that can provide said content, each said content server having an address, said network server having an identity, said method comprising:

(a) a programmed data processor; and

(b) programming associated with said programmed data processor for

(i) identifying a the network server associated with the content requested by said first network client;

(ii) if one or more cost measurements are available that measure operational characteristics of the network based on communication between the network client and one or more of the plurality of content servers, then identifying a said one of said content servers based on said identity of said network server and the one or more cost measurements; and

(iii) otherwise, identifying a said one of said content servers based on said identity of said network server and one or more cost measurements that measure operational characteristics of the network based on communication between a client that is physically proximate to the first network client and one or more of the plurality of content servers; and

(c) providing the first network client with the address of said content server identified in step (b).

34. A system as recited in claim 33 , further comprising programming associated with said programmed data processor for:

obtaining a new cost measurement when said˜network client accesses said content server; and

using said new cost measurement as an indicator of operational characteristics of the network in connection with subsequent requests for access to said content that can be provided by said content sewer.

35. A system as recited in claim 33 , timber comprising programming associated with said programmed data processor for measuring network performance between said first network client and a said one of said content servers.

36. A system as recited in claim 35 , wherein an attribute of network performance comprises network latency.

37. A system as recited in claim 36 , wherein network latency is measured passively by determining the time between a syn ack message seat by said network client and an ack message sent by said one of said content servers.

38. A system as recited in claim 35 , further comprising programming associated with said programmed data processor for measuring network performance between said first network client and another of said content servers.

39. A system as recited in claim 33 , further comprising associated with said programming data processor for determining the location of said first network client by circular intersection.

40. A system as recited in claim 39 , wherein said circular intersection comprises:

(a) measuring the time that it takes for data to move from a plurality of network server locations to said first network client;

(b) converting said times to distance equivalents;

(c) determining a plurality of intersecting circles, wherein said distance equivalents are used as the radii of the circles and said network server locations are used as the center of the circles; and

(d) determining the physical location of said first network client from the intersection of said circles.

41. A system as recited in claim 33 , further comprising programming associated with said programmed data processor for inferring network, performance of serving said first network client from said content server by determining a weighted average of network performance between said content server and other network clients based on physical proximity of said other network clients to said first network client and performance of said content server for said other network clients.

42. A system as recited in claim 33 , further comprising programming associated with said programmed data processor for:

(a) measuring network latency between a content server and a plurality of other network clients;

(b) determining physical distances between said other network clients and said first network client;

(c) computing a weighted average of said latency measurements as a function of said distances, wherein said weighed average comprises an estimate of the latency between said content server and said network client; and

(d) inferring operational characteristics associated with a plurality of network clients to said network client using said weighted average.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded May 10, 2022
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: INTERNAP HOLDING LLC
Reel/Frame 059884/0443 →
SECURITY INTEREST Recorded Sep 27, 2021
From: INTERNAP HOLDING LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057615/0812 →
CHANGE OF NAME Recorded Dec 29, 2020
From: INTERNAP CORPORATION
To: INTERNAP HOLDING LLC
Reel/Frame 054868/0048 →
RELEASE OF SECURITY INTEREST Recorded May 11, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052628/0018 →
RELEASE OF PATENT SECURITY AGREEMENT RECORDED AT REEL 044547/FRAME 0029 Recorded May 8, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052617/0103 →
SECURITY INTEREST Recorded May 8, 2020
From: INTERNAP HOLDING LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 052616/0515 →
SECURITY INTEREST Recorded Jan 5, 2018
From: INTERNAP CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 044547/0029 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2017
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 041929/0328 →
CHANGE OF NAME Recorded Feb 16, 2015
From: INTERNAP NETWORK SERVICES CORPORATION
To: INTERNAP CORPORATION
Reel/Frame 035000/0349 →
SECURITY AGREEMENT Recorded Dec 5, 2013
From: INTERNAP NETWORK SERVICES CORPORATION
To: JEFFERIES FINANCE LLC (AS COLLATERAL AGENT)
Reel/Frame 031765/0527 →
RELEASE OF SECURITY INTEREST Recorded Dec 4, 2013
From: WELLS FARGO CAPITAL FINANCE, LLC (AS AGENT)
To: INTERNAP NETWORK SERVICES CORPORATION
Reel/Frame 031710/0635 →