System and method for achieving accelerated throughput
First Claim
1. 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 first 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, including segmenting the data packet into data segments in accordance with a dynamically adjusted encoding rate, the dynamically adjusted encoding rate determined by;
monitoring retransmission request rates for each of a plurality of other communication sessions;
determining an average retransmission request rate in accordance with the retransmission request rates of the other communication session;
communicating a retransmission request rate of the first communication session and the average retransmission request rate to the other of the two endpoints to permit the other of the two endpoints to adjust its encoding rate;
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; and
transmitting the reassembled data packet from the other of the encoding components to its respective endpoint.
6 Assignments
0 Petitions
Accused Products
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.
68 Citations
21 Claims
-
1. 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 first 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, including segmenting the data packet into data segments in accordance with a dynamically adjusted encoding rate, the dynamically adjusted encoding rate determined by; monitoring retransmission request rates for each of a plurality of other communication sessions; determining an average retransmission request rate in accordance with the retransmission request rates of the other communication session; communicating a retransmission request rate of the first communication session and the average retransmission request rate to the other of the two endpoints to permit the other of the two endpoints to adjust its encoding rate; 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; and transmitting the reassembled data packet from the other of the encoding components to its respective endpoint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
- comprising;
Specification