Hybrid HTTP and UDP content delivery
First Claim
1. A method of data delivery, comprising:
- at a server executing on a hardware platform;
receiving, from a client, an HTTP request that identifies a content object;
returning a response to the HTTP request that includes a header identifying an IP address/port number associated with the server, and a response body that is devoid of the content object requested;
receiving a UDP request directed to the IP address/port number; and
returning a response to the UDP request that includes the content object that was identified in the HTTP request.
1 Assignment
0 Petitions
Accused Products
Abstract
A hybrid HTTP/UDP delivery protocol provides significant improvements for delivery of video and other content over a network, such as an overlay. The approach is especially useful to address problems (e.g., slow startup times, rebuffering, and low bitrates) for HTTP-based streaming. In general, the protocol has two phases: an HTTP phase, and a UDP phase. In the HTTP phase, the client sends an HTTP GET request to a server. The GET request contains a transport header informing the server that the client would like to use UDP-based transfer over the protocol. The server may refuse this mode and continue in ordinary HTTP mode, or the server may respond by sending an empty response with header information informing the client how to make the connection to enter the UDP phase. In the UDP phase, the client initiates a connection and receives the originally-requested content over UDP.
46 Citations
20 Claims
-
1. A method of data delivery, comprising:
at a server executing on a hardware platform; receiving, from a client, an HTTP request that identifies a content object; returning a response to the HTTP request that includes a header identifying an IP address/port number associated with the server, and a response body that is devoid of the content object requested; receiving a UDP request directed to the IP address/port number; and returning a response to the UDP request that includes the content object that was identified in the HTTP request. - View Dependent Claims (4, 5, 6)
-
2. The method as described in claim 2, further including:
maintaining a persistent HTTP connection between the client and the server. - View Dependent Claims (3)
-
7. A method of data delivery, comprising:
-
at a client executing on a hardware platform; transmitting, to a server, an HTTP request that identifies a content object; receiving a response to the HTTP request that includes a header identifying an IP address/port number associated with the server, and a response body that is devoid of the content object requested; transmitting a UDP request directed to the IP address/port number; and receiving a response to the UDP request that includes the content object that was identified in the HTTP request. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising:
-
a processor; computer memory holding computer program instructions, the computer program instructions comprising; program code to receive a request that identifies a content object, the request delivered via a first transport protocol; program code to return a response to the request, the response delivered via the first transport protocol; the response comprising an empty response body, and a transport header including at least first and second information, the first information identifying an address at which the content object can be obtained via a second transport protocol that differs from the first transport protocol, and the second information for subsequent use in verifying that the request is received by a client that issued the request. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system operative in a multi-tenant overlay network environment in which a service provider provides video delivery from edge servers using HTTP-based streaming, comprising:
-
server-side program code executable in a hardware processor; client-side program code executed in a hardware processor; the server-side program code operative; to receive, from the client-side program code, an HTTP request that identifies a content object; to return a response to the HTTP request that includes a header identifying an IP address/port number associated with the server-side program code, and a response body that is devoid of the content object requested; to receive a UDP request directed to the IP address/port number; and to return a response to the UDP request that includes the content object that was identified in the HTTP request; client-side program code operative; to transmit, to the server-side program code, the HTTP request that identifies a content object; to receive the response to the HTTP request that includes the header identifying an IP address/port number associated with the server-side program code, and the response body that is devoid of the content object requested; to transmit the UDP request directed to the IP address/port number; and to receive the response to the UDP request that includes the content object that was identified in the HTTP request. - View Dependent Claims (19, 20)
-
Specification