System and method for achieving accelerated throughput
Abstract
Systems and methods for transporting data between two endpoints over an encoded channel are disclosed. Data transmission units (data units) from the source network are received at an encoding component logically located between the endpoints. These first data units are subdivided into second data units and are transmitted to the destination network over the transport network. Also transmitted are encoded or extra second data units that allow the original first data units to be recreated even if some of the second data units are lost. These encoded second data units may be merely copies of the second data units transmitted, parity second data units, or second data units which have been encoded using erasure correcting coding. At the receiving endpoint, the second data units are received and are used to recreate the original first data units.
Claims
exact text as granted — not AI-modified1 . A method of accelerating data communications over an unreliable network; comprising:
providing encoding components associated with each of two endpoints to a communication; establishing an encoded channel between the encoding components for a communication session between the endpoints; intercepting a plurality of data packets related to the communication at one of the encoding components; segmenting and packaging each of the plurality of data packets to provide a segmented and packaged data packet having at least one encoded data segment and at least one extra encoded segment for transmission to the other of the encoding components; storing the segmented and packaged data packets at the one of the encoding components; transmitting the segmented and packaged data packets to the other of the encoding components over the encoded channel when a predetermined condition is met; decoding and reassembling the plurality of data packets at the other of the encoding components based on received encoded data segments and received extra encoded segments; and transmitting the reassembled data packets from the other of the encoding components to its respective endpoint.
2 . The method of claim 1 , wherein the predetermined condition is expiry of a timer.
3 . The method of claim 2 , wherein the timer is activated when a respective one of the plurality of data packets is intercepted.
4 . The method of claim 1 , wherein the predetermined condition is interception of a packet containing real-time sensitive data.
5 . The method of claim 1 , wherein the predetermined condition is storage of a predetermined number of the segmented and packaged data packets.
6 . The method of claim 1 , wherein the encoded data segments and the at least one extra encoded segment for the plurality of data packets are interleaved and transmitted in a manner to preserve their ordering.
7 . The method of claim 6 , wherein the packaged and segmented data packets are stored in order and according to their respective sizes, and segments are transmitted in turn from each packaged and segmented data packet.
8 . The method of claim 1 , wherein the encoded data segments and the at least one extra encoded segment for each of the plurality of data packets are transmitted in random order.
9 . The method of claim 1 , further comprising determining that one of the encoded data segments is lost if it has not been received at the other of the encoding components within a predetermined period.
10 . The method of claim 9 , wherein the predetermined period is determined by expiry of a timer set when a first encoded data segment for a given data packet is received.
11 . The method of claim 9 , wherein the predetermined period is determined by reference to a ring buffer.
12 . The method of claim 10 , wherein the ring buffer tracks sequence numbers of missing encoded data segments, and a given encoded data segment is determined to be lost when the ring buffer cycles back to a sequence number of the given encoded data segment.
13 . The method of claim 9 , further comprising interleaving encoded data segments from the plurality of data packets when it is determined that a predetermined number of encoded data segments from a given segmented and packaged data packet have been lost.
14 . The method of claim 1 , wherein segmenting and packaging a data packet comprises segmenting and packaging the data packet into n encoded data segments, where n>1.
15 . The method of claim 14 , wherein n is dynamically adjusted based on size of the data packet.
16 . The method of claim 15 , wherein n is selected such that size of encoded data segments does not exceed a predetermined maximum transfer unit size.
17 - 29 . (canceled)
30 . A method of setting an encoding rate for encoding data for accelerated data communication across an unreliable network between two endpoints each respectively associated with an encoding component; comprising:
establishing an encoded channel between the encoding components for a communication session between the endpoints; intercepting a data packet related to the communication at one of the encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the encoding components over the encoded channel; decoding and reassembling the data packet at the other of the encoding components based on the received encoded data segments; transmitting the reassembled data packet from the other of the encoding components to its respective endpoint; computing a weighted loss ratio for the communication session; and adjusting the encoding rate based on the weighted loss ratio.
31 . The method of claim 30 , wherein computing the weighted ratio comprises computing the weighted ratio in accordance with average loss ratios of previous communication sessions.
32 . The method of claim 30 , wherein computing the weighted ratio comprises computing the weighted ratio in accordance with retransmission requests.
33 . The method of claim 30 , further comprising computing a current loss level in accordance with the weighted loss ratio.
34 . The method of claim 33 , wherein the weighted loss ratio is normalized.
35 . The method of claim 33 , wherein the current loss level is communicated to the other of the encoding components.
36 . The method of claim 35 , wherein the current loss level is communicated in a header portion of one of the encoded data segments.
37 . The method of claim 36 , wherein the header portion further identifies a desired level of protection.
38 . The method of claim 37 , wherein the desired level of protection is determined in accordance with loss objectives configured according to a network policy.
39 . The method of claim 35 , wherein the current loss level is communicated over a control channel.Join the waitlist — get patent alerts
Track US2011206043A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.