Managing data transfer using streaming protocols

US9516087B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9516087-B2
Application numberUS-201414558532-A
CountryUS
Kind codeB2
Filing dateDec 2, 2014
Priority dateMar 14, 2012
Publication dateDec 6, 2016
Grant dateDec 6, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are described for managing data transmissions between computing systems based at least in part on using a streaming transport protocol. At least some such data transmissions may be performed using HTTP, with one or more underlying transport protocols used to implement the HTTP-based data transmissions. HTTP-based data transmissions performed using an underlying streaming transport protocol, for example, may send data without performing error detection for reliability and without ensuring ordered delivery of the sent data. In addition, one or more HTTP-based data transmissions may be initiated using an underlying streaming transport protocol, but subsequent data transmissions may switch to using a different underlying transport protocol (e.g., TCP) or different transmission technique that is performed without using data streaming.

First claim

Opening claim text (preview).

What is claimed is: 1. A configured computing system, comprising: one or more processors; and one or more modules with stored instructions that, when executed by at least one of the one or more processors, configure the at least one processor to: select a streaming transport protocol to use as an underlying transport protocol for a streaming transmission of data to a remote system; initiate, after the selecting of the streaming transport protocol, the streaming transmission of the data to the remote system using an application layer protocol by streaming the data via the streaming transport protocol selected to be used as the underlying transport protocol; after a first portion of the data has been transmitted, determine to change to a non-streaming transmission of additional data, including determining to change to a second underlying transport protocol while continuing to use the application layer protocol, the second underlying transport protocol not performing data streaming and being different from the streaming transport protocol; and initiate, based at least in part on the determining, the non-streaming transmission of the additional data using the application layer protocol and without using data streaming, including transmitting the additional data to the remote system via the second underlying transport protocol without streaming the additional data. 2. The computing system of claim 1 wherein the application layer protocol is SPDY protocol. 3. The computing system of claim 1 wherein the application layer protocol is HyperText Transfer Protocol (HTTP), wherein the selected streaming transport protocol is one of Stream Control Transmission Protocol (STCP) and User Datagram Protocol (UDP), and wherein the initiating of the streaming transmission of the additional data uses HTTP with Transmission Control Protocol (TCP) as the second underlying transport protocol. 4. The computing system of claim 3 wherein the initiating of the streaming transmission of the data includes attempting to transmit multiple HTTP-based communications by streaming data using the selected streaming transport protocol, and wherein the initiating of the non-streaming transmission of the additional data includes re-transmitting, via the second underlying transport protocol, at least one of the multiple HTTP-based communications that is not successfully received by the remote system via the selected streaming transport protocol. 5. The computing system of claim 1 wherein the selecting of the streaming transport protocol is based on information in one or more received requests to which the initiated streaming transmission of the data is a response, on prior configuration corresponding to the remote system, on prior configuration corresponding to one or more groups of data being sent as part of the initiated streaming transmission of the data, or on one or more determined characteristics for data transmissions between the configured computing system and the remote system. 6. The computing system of claim 1 wherein the initiating of the streaming transmission of the data includes sending data packets via a session established between the configured computing system and the remote system. 7. The computing system of claim 1 wherein the selected streaming transport protocol operates without performing error detection for reliability and without performing ordering of transmitted data, and wherein the initiating of the non-streaming transmission of the additional data using the second underlying transport protocol performs error detection for reliability and performs ordering of transmitted data. 8. The computing system of claim 1 wherein the one or more modules include software instructions that, when executed by at least one of the one or more processors, configure the at least one processor to further receive, before the initiating of the streaming transmission of the data, a plurality of requests corresponding to retrieving a Web page for the remote system, and wherein the initiating of the streaming transmission of the data includes concurrently transmitting responses to multiple of the plurality of requests using the selected streaming transport protocol. 9. The computing system of claim 8 wherein the receiving of the plurality of requests occurs using a reliable data channel, and wherein the initiating of the streaming transmission of the data includes using an unreliable data channel that is distinct from the reliable data channel. 10. The computing system of claim 9 wherein the initiating of the non-streaming transmission of the additional data includes using the reliable data channel. 11. The computing system of claim 1 wherein the initiating of the streaming transmission of the data includes using adaptive bitrate streaming to dynamically modify an encoding used for the streaming of the data. 12. The computing system of claim 1 wherein the initiating of the streaming transmission of the data is performed in response to a first request from the remote system for a group of data, and wherein the one or more modules include software instructions that, when executed by the at least one processor, further configure the at least one processor to: receive a second request from a second remote system for the group of data; determine to transmit all of the group of data to the second remote system without streaming the data of the group; and transmit the group of data to the second remote system without streaming the data of the group. 13. A configured computing system, comprising: one or more processors; and one or more modules that are configured to: initiate a streaming transmission of data to a remote system using an application layer protocol by streaming the data via a selected underlying transport protocol, wherein the application layer protocol is HyperText Transfer Protocol (HTTP), wherein the initiating of the streaming transmission of the data is performed in response to one or more HTTP-based requests from the remote system for one or more indicated groups of data, and wherein the streaming transmission of the data includes one or more HTTP-based responses to the one or more HTTP-based requests that are streamed by HTTP using the selected underlying transport protocol; after a first portion of the data has been transmitted, determine to change to a non-streaming transmission of additional data; and initiate, based at least in part on the determining, the non-streaming transmission of the additional data using the application layer protocol and without using data streaming, and wherein the one or more modules include software instructions that, when executed by at least one of the one or more processors, configure the at least one processor to perform the initiating of the streaming transmission of the data, the determining to change to the non-streaming transmission of the additional data, and the initiating of the non-streaming transmission of the additional data. 14. A non-transitory computer-readable medium having stored computer-executable instructions that, when executed, cause a computing system to: select a streaming underlying transport protocol to use as a first underlying transport protocol for a streaming transmission of data to a remote system, wherein the selecting is based on prior configuration corresponding to the data or based on one or more determined characteristics for data transmissions between the computing system and the remote system; initiate, by the computing system and after the selecting of the streaming underlying transport protocol, the streaming transmission of the data to the remote system using an applica

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • Multiprotocol handlers, e.g. single devices capable of handling multiple protocols · CPC title

  • H04L65/608Primary

    Electricity · mapped topic

  • H04L67/02Primary

    based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • H04L65/65Primary

    Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9516087B2 cover?
Techniques are described for managing data transmissions between computing systems based at least in part on using a streaming transport protocol. At least some such data transmissions may be performed using HTTP, with one or more underlying transport protocols used to implement the HTTP-based data transmissions. HTTP-based data transmissions performed using an underlying streaming transport pr…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L65/608. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).