Server initiated multipath content delivery
First Claim
1. A multipath content delivery system having a plurality of content servers with differing network paths to client devices, comprising:
- a first content server;
a second content server that is distinct from the first content server;
a client device that sends a request for a markup language document to the first content server, the first content server acting as a primary content server in the multipath content delivery system;
the first content server programmed to respond to the request with the markup language document, where the markup language document contains two or more universal resource locators (URLs) for an object, the hostname of one of the two or more URLs resolving to the first content server and the hostname of another of the two or more URLs resolving to the second content server;
the client device programmed to generate and send, in response to the two or more URLs for the object, at least a first and a second request for the object, wherein the first request is sent to the first content server and the second request is sent to the second content server;
wherein the first request is distinct from the second request at least because the client device includes a hint in the second request that indicates to the second content server that the second content server is acting as a secondary content server in the multipath content delivery system.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein are—among other things—systems, methods, and apparatus for accelerating and increasing the reliability of content delivery by serving objects redundantly over multiple paths from multiple servers. In preferred embodiments, the decision to use such multipath delivery is made on the server side. A content server can modify or generate a given web page so as to invoke multipath, e.g., by injecting markup language directives and/or script instructions that will cause the client device to make multiple requests for a given object on the page. Preferably the multiple requests are made to separate content servers in separate points of presence. The teachings hereof may be advantageously implemented, without limitation, in intermediary servers such as caching proxy servers and/or in origin servers.
-
Citations
25 Claims
-
1. A multipath content delivery system having a plurality of content servers with differing network paths to client devices, comprising:
-
a first content server; a second content server that is distinct from the first content server; a client device that sends a request for a markup language document to the first content server, the first content server acting as a primary content server in the multipath content delivery system; the first content server programmed to respond to the request with the markup language document, where the markup language document contains two or more universal resource locators (URLs) for an object, the hostname of one of the two or more URLs resolving to the first content server and the hostname of another of the two or more URLs resolving to the second content server; the client device programmed to generate and send, in response to the two or more URLs for the object, at least a first and a second request for the object, wherein the first request is sent to the first content server and the second request is sent to the second content server; wherein the first request is distinct from the second request at least because the client device includes a hint in the second request that indicates to the second content server that the second content server is acting as a secondary content server in the multipath content delivery system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A plurality of computer apparatus, comprising:
-
a first content server comprising circuitry forming one or more processors and memory holding computer program instructions that, when executed by the one or more processors, operate the first content server to; receive a request from a client device for a markup language document; retrieve a markup language document from a local storage device or another content server; parse the markup language document to find a universal resource locator (URL) pointing to a copy of an object; modify the markup language document to cause a client to make a request to each of two or more URLs, each pointing to a copy of the object on a content server distinct from content servers pointed to by the other URLs; send the modified markup language document to the client device in response to the request from the client device for the markup language document; a second content server comprising circuitry forming one or more processors and memory holding computer program instructions that, when executed by the one or more processors, operate the second content server to; receive an object request from the client device for one of the two or more URLs; determine that the object request includes a hint; based on the hint, determining that the second content server is acting as a secondary content server in a multipath content delivery system, wherein a secondary content server is distinct from a primary content server in the multipath delivery system at least because a secondary content server is operative to perform at least one of the following;
(i) suppress a forward request operation for the object, (ii) ignore the second request due to load on the second content server, and (iii) suppress a follow-on action otherwise performed after serving the object request. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A multipath content delivery system having at least a first and a second content server with differing network paths to a client device, comprising:
-
a first content server; a second content server that is distinct from and remote from the first content server; a client device that sends a request for a markup language document to the first content server, the first content server acting as a primary content server in the multipath content delivery system; the first content server programmed to respond to the request with the markup language document, where the markup language document contains two or more URLs, each pointing to a copy of an object; the client device programmed to generate, in response to the two or more URLs and at substantially the same time, two or more requests for the object, wherein the two or more requests comprise a first request to the first content server and a second request to the second content server; wherein the second request indicates to the second content server that the second content server is acting as a secondary content server in a multipath content delivery system rather than a primary content server, at least by including a hint in the second request.
-
Specification