US2013304875A1PendingUtilityA1

Data segmentation, request and transfer method

Assignee: SIMULA INNOVATION SAPriority: Feb 26, 2010Filed: Jul 19, 2013Published: Nov 14, 2013
Est. expiryFeb 26, 2030(~3.6 yrs left)· nominal 20-yr term from priority
H04L 65/756H04L 69/14H04W 88/06H04W 28/065H04W 76/15H04L 65/601
37
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A process for requesting information, the process including generating a plurality of range requests using a client having a plurality of network interfaces, the range requests each corresponding to a data range of a data resource, transmitting, from the client having the plurality of network interfaces, a plurality of range requests to a server via the plurality of network interfaces, receiving, at the client and from the server, a plurality of segments via the plurality of network interfaces such that each segment is received via a network interface which transmitted the corresponding range request, each segment including a portion of the data resource, and reassembling the data resource using the plurality of segments.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . A method of remotely accessing a data resource over multiple networks, comprising:
 receiving, at a client device and from a server, a plurality of data segments, each including a portion of a data resource, via a plurality of network interfaces of the client device, the plurality of network interfaces being respectively connected to different network links;   monitoring a status of each of the plurality of network interfaces;   generating multiple range requests based on the monitored statuses of the plurality of network interfaces, each of the multiple range requests having a data range determined based on the monitored statuses and corresponding to an additional portion of the data resource; and   distributing the range requests to the plurality of network interfaces for transmission from the client device to the server.   
     
     
         3 . The method of  claim 2 , wherein the monitored statuses comprise a number of bytes received via each network interface. 
     
     
         4 . The method of  claim 3 , wherein the monitored statuses further comprise the throughput for each network interface. 
     
     
         5 . The method of  claim 2 , wherein the data ranges are based on a first single request created by a browser, the request referencing an entire amount of data. 
     
     
         6 . The method of  claim 2 , wherein the generating of the multiple range requests is further based on metadata identified from the received plurality of data segments. 
     
     
         7 . The method of  claim 2 , further comprising:
 receiving, at the client and from the server, a plurality of additional segments via the multiple network interfaces such that each additional segment is received via a network interface that transmitted the corresponding range request, each additional segment including an additional portion of the data resource.   
     
     
         8 . The method of  claim 2 , further comprising:
 reassembling the data resource at the client using the received plurality of segments.   
     
     
         9 . The method of  claim 2 , further comprising:
 determining a pipelining pattern according to which at least one additional range request is scheduled for transmission via a network interface before any response is received for a previous request sent via the network interface,   wherein the distribution of the range requests is based on the pipelining pattern.   
     
     
         10 . The method of  claim 9 , wherein the distribution of the pipelined additional range request is based on an interleaved pattern ensuring that consecutive byte ranges are not requested over the same interface. 
     
     
         11 . The method of  claim 9 , wherein the at least one additional range request is scheduled for transmission based on an estimation of a bandwidth delay-product for the network interface. 
     
     
         12 . The method of  claim 2 , wherein the distribution of the range requests is based on an interleaved pattern ensuring that consecutive byte ranges are not requested over the same interface. 
     
     
         13 . The method of  claim 2 , further comprising:
 buffering the data of the received plurality of segments in a buffer of the client device;   determining a startup latency for filling the buffer prior to playback of the data from the buffer;   making the data available for playback after the startup latency.   
     
     
         14 . The method of  claim 13 , further comprising:
 determining a current average aggregated throughput of the received data segments via the plurality of network interfaces;   determining a desired playback rate equal to the current average aggregated throughput;   determining size of the buffer based on the desired playback bitrate.   
     
     
         15 . The method of  claim 13 , further comprising:
 determining a size of the buffer based on buffered data received in incorrect playback order.   
     
     
         16 . The method of  claim 13 , further comprising:
 wherein the generating of the multiple range requests is further based on the buffered segments.   
     
     
         17 . The method of  claim 4 , further comprising:
 determining current throughput conditions for the network interfaces;   computing a playback rate based on the current throughput conditions;   playing back portions of the data resource at the determined playback rate.   
     
     
         18 . The method of  claim 17 , wherein the playback rate is further determined based on data that are available in correct playback order. 
     
     
         19 . The method of  claim 2 , wherein the multiple range requests are compatible with Hypertext Transfer Protocol (HTTP). 
     
     
         20 . The method of  claim 2 , wherein each range request includes a beginning of a range and an undefined extent of the range. 
     
     
         21 . A device for remotely accessing a data resource over multiple networks, comprising:
 a plurality of network interfaces respectively connected to different network links;   a communications unit configured to receive a plurality of data segments, which are transmitted from a server, via the plurality of network interfaces, the data segments each including a portion of a data resource;   a monitoring unit configured to monitor a status of each of the plurality of network interfaces;   a generation unit configured to generate multiple range requests based on the monitored statuses of the plurality of network interfaces, each of the multiple range requests having a data range determined based on the monitored statuses and corresponding to an additional portion of the data resource; and   a distributing unit configured to distribute the range requests to the plurality of network interfaces for transmission to the server.   
     
     
         22 . The device of  claim 21 , wherein the monitored statuses comprise a number of bytes received via each network interface. 
     
     
         23 . The device of  claim 22 , wherein the monitored statuses further comprise the throughput for each network interface. 
     
     
         24 . The device of  claim 21 , wherein the data ranges are based on a first single request created by a browser, the request referencing an entire amount of data. 
     
     
         25 . The device of  claim 21 , wherein the generation unit is further configured to generate the multiple range requests based on metadata identified from the plurality of data segments received by the communications unit. 
     
     
         26 . The device of  claim 21 , wherein the communications unit receives, at the client and from the server, a plurality of additional segments via the multiple network interfaces such that each additional segment is received via a network interface that transmitted the corresponding range request, each additional segment including an additional portion of the data resource. 
     
     
         27 . The device of  claim 21 , further comprising:
 a reassembly unit configured to reassemble the data resource using the plurality of segments received by the communications unit.   
     
     
         28 . The device of  claim 21 , further comprising:
 a determining unit configured to determine a pipelining pattern according to which at least one additional range request is scheduled for transmission via a network interface before any response is received for a previous request sent via the network interface,   wherein the distributing unit is further configured to distribute the range requests based on the pipelining pattern.   
     
     
         29 . The device of  claim 28 , wherein the distributing unit is further configured to distribute the pipelined additional range request based on an interleaved pattern ensuring that consecutive byte ranges are not requested over the same interface. 
     
     
         30 . The device of  claim 28 , wherein the distributing unit is further configured to schedule the at least one additional range request for transmission based on an estimation of a bandwidth delay-product for the network interface. 
     
     
         31 . The device of  claim 21 , wherein the distributing unit is further configured to distribute the range requests based on an interleaved pattern ensuring that consecutive byte ranges are not requested over the same interface. 
     
     
         32 . The device of  claim 21 , wherein the determining unit is further configured to determine a startup latency, the device further comprising:
 a buffering unit configured to store the data of the received plurality of segments, and to make the data available for playback after the startup latency.   
     
     
         33 . The device of  claim 32 , wherein the determining unit further configured to:
 determine the current average aggregated throughput of the received data segments via the plurality of network interfaces,   determine a desired playback rate equal to the current average aggregated throughput, and   determine size of the buffer of the buffering unit based on the desired playback bitrate.   
     
     
         34 . The device of  claim 32 , wherein a size of the buffer is determined based on buffered data received in incorrect playback order. 
     
     
         35 . The device of  claim 32 , wherein the generating of the multiple range requests is further based on the buffered segments. 
     
     
         36 . The device of  claim 23 , wherein the determining unit is further configured to determine current throughput conditions for the network interfaces and to compute a playback rate based on the current throughput conditions, and the device further comprises a playback unit configured to play back portions of the data resource at the determined playback rate. 
     
     
         37 . The device of  claim 36 , wherein the playback rate is further determined based on data that are available in correct playback order. 
     
     
         38 . The device of  claim 21 , wherein the generating unit is further configured to generate range requests compatible with Hypertext Transfer Protocol (HTTP). 
     
     
         39 . The device of  claim 21 , wherein the generating unit is further configured to generate each range request so that the respective range request includes a beginning of a range and an undefined extent of the range.

Join the waitlist — get patent alerts

Track US2013304875A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.