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 and over a persistent connection, an HTTP request that identifies a content object;
returning to the client a response to the HTTP request that includes a header and a response body, the header including a security token and identifying an IP address and UDP port number associated with the server, the response body being devoid of the content object requested;
receiving from the client a UDP request directed to the IP address and UDP port number, the UDP request associated with a SYN UDP packet indicating a request to initiate a UDP connection and including an initial sequence number;
verifying that the UDP request includes the security token; and
upon a successful verification, returning a response to the UDP request over the UDP connection that includes a SYN ACK packet acknowledging the SYN UDP packet and including the initial sequence number, together with the content object that was identified in the HTTP request but not returned in the response body.
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.
-
Citations
11 Claims
-
1. A method of data delivery, comprising:
at a server executing on a hardware platform; receiving, from a client and over a persistent connection, an HTTP request that identifies a content object; returning to the client a response to the HTTP request that includes a header and a response body, the header including a security token and identifying an IP address and UDP port number associated with the server, the response body being devoid of the content object requested; receiving from the client a UDP request directed to the IP address and UDP port number, the UDP request associated with a SYN UDP packet indicating a request to initiate a UDP connection and including an initial sequence number; verifying that the UDP request includes the security token; and upon a successful verification, returning a response to the UDP request over the UDP connection that includes a SYN ACK packet acknowledging the SYN UDP packet and including the initial sequence number, together with the content object that was identified in the HTTP request but not returned in the response body. - View Dependent Claims (2, 3, 4, 5)
-
6. A method of data delivery, comprising:
at a client executing on a hardware platform; transmitting, to a server and over a persistent connection, an HTTP request that identifies a content object; receiving from the server a response to the HTTP request that includes a header and a response body, the header including a security token and identifying an IP address and UDP port number associated with the server, the response body being devoid of the content object requested; transmitting to the server a UDP request directed to the IP address and UDP port number, the UDP request associated with a SYN UDP packet indicating a request to initiate a UDP connection and including an initial sequence number; and receiving a response to the UDP request over the UDP connection that includes a SYN ACK packet acknowledging the SYN UDP packet and including the initial sequence number, together with the content object that was identified in the HTTP request but not returned in the response body, the response received after the server verifies the security token. - View Dependent Claims (7, 8, 9, 10, 11)
Specification