System and method for achieving accelerated throughput
First Claim
1. A method of accelerating data communications over an unreliable network carrying data packets from a first endpoint to a second endpoint, comprising:
- establishing an encoded channel between first and second encoding components for a communication session between said two endpoints by;
detecting, at the first encoding component, a first one of said data packets carried from said first endpoint and destined to said second endpoint,adding a mark to said first detected data packet destined to the other endpoint to indicate that the first endpoint is enabled to segment and encode said data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks,forwarding the marked data packet to the other endpoint,determining whether a reply to the marked data packet is received from the second encoding component within a preselected time period and, if no reply is received within said time period, detecting, at the first encoding component, a second one of said data packets carried from said first endpoint and destined to said second endpoint, adding a different mark selected from said plurality of available marks to said second detected data packet, and forwarding said differently marked data packet to said other endpoint, andexchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period;
intercepting a data packet related to the communication channel at one of the first and second encoding components;
segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components;
transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel;
decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments to compensate for the loss of said segments that may occur in the unreliable network; and
transmitting the reassembled data packet from the other of the first and second 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.
62 Citations
12 Claims
-
1. A method of accelerating data communications over an unreliable network carrying data packets from a first endpoint to a second endpoint, comprising:
-
establishing an encoded channel between first and second encoding components for a communication session between said two endpoints by; detecting, at the first encoding component, a first one of said data packets carried from said first endpoint and destined to said second endpoint, adding a mark to said first detected data packet destined to the other endpoint to indicate that the first endpoint is enabled to segment and encode said data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks, forwarding the marked data packet to the other endpoint, determining whether a reply to the marked data packet is received from the second encoding component within a preselected time period and, if no reply is received within said time period, detecting, at the first encoding component, a second one of said data packets carried from said first endpoint and destined to said second endpoint, adding a different mark selected from said plurality of available marks to said second detected data packet, and forwarding said differently marked data packet to said other endpoint, and exchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period; intercepting a data packet related to the communication channel at one of the first and second encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel; decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments to compensate for the loss of said segments that may occur in the unreliable network; and transmitting the reassembled data packet from the other of the first and second encoding components to its respective endpoint. - View Dependent Claims (2, 4, 5, 7, 10, 11, 12)
-
-
3. A method of accelerating data communications over an unreliable network;
- comprising;
establishing an encoded channel between first and second encoding components for a communication session between two endpoints by; detecting, at the first encoding component, a message originating from a first of the two endpoints and destined to the other of the two endpoints, creating a marked message destined to the other endpoint with a mark to indicate that the first endpoint is enabled to segment and encode one or more data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks, forwarding the marked message to the other endpoint, determining whether a reply to the marked message is received from the second encoding component within a preselected time period and, if no reply is received within said time period, creating a new marked message with a different mark selected from said plurality of available marks, and forwarding said new marked message to said other endpoint, and if no reply is received for any of the plurality of available marks, advising a network manager that the second endpoint is not enabled for accelerated communication with the first endpoint; exchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period; intercepting a data packet related to the communication channel at one of the first and second encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel; decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments; transmitting the reassembled data packet from the other of the first and second encoding components to its respective endpoint.
- comprising;
-
6. A method of accelerating data communications over an unreliable network;
- comprising;
establishing an encoded channel between first and second encoding components for a communication session between two endpoints by; detecting, at the first encoding component, a message originating from a first of the two endpoints and destined to the other of the two endpoints, creating a marked message destined to the other endpoint with a mark to indicate that the first endpoint is enabled to segment and encode one or more data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks, forwarding the marked message to the other endpoint, determining whether a reply to the marked message is received from the second encoding component within a preselected time period and, if no reply is received within said time period, creating a new marked message with a different mark selected from said plurality of available marks, and forwarding said new marked message to said other endpoint, and exchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period; intercepting a data packet related to the communication channel at one of the first and second encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel; decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments; transmitting the reassembled data packet from the other of the first and second encoding components to its respective endpoint; entering a tear down state if no encoded data packets are transmitted within a predetermined timeout period; and during the tear down state, newly received data packets are not segmented and packaged.
- comprising;
-
8. A method of accelerating data communications over an unreliable network;
- comprising;
establishing an encoded channel between first and second encoding components for a communication session between two endpoints by; detecting, at the first encoding component, a message originating from a first of the two endpoints and destined to the other of the two endpoints, creating a marked message destined to the other endpoint with a mark to indicate that the first endpoint is enabled to segment and encode one or more data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks, forwarding the marked message to the other endpoint, determining whether a reply to the marked message is received from the second encoding component within a preselected time period and, if no reply is received within said time period, creating a new marked message with a different mark selected from said plurality of available marks, and forwarding said new marked message to said other endpoint, and exchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period; intercepting a data packet related to the communication channel at one of the first and second encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel; decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments; transmitting the reassembled data packet from the other of the first and second encoding components to its respective endpoint; wherein the first and second encoding components have precedence over other encoding components; receiving, at the first encoding component, a marked packet from an encoding component other than the first and second encoding components; and asserting precedence by; removing marking from the marked packet; and establishing the encoded channel between the first and second encoding components.
- comprising;
-
9. A method of accelerating data communications over an unreliable network;
- comprising;
establishing an encoded channel between first and second encoding components for a communication session between two endpoints by; detecting, at the first encoding component, a message originating from a first of the two endpoints and destined to the other of the two endpoints, creating a marked message destined to the other endpoint with a mark to indicate that the first endpoint is enabled to segment and encode one or more data packets according to a protocol known to both encoding components, wherein the mark is selected from a plurality of available marks, forwarding the marked message to the other endpoint, determining whether a reply to the marked message is received from the second encoding component within a preselected time period and, if no reply is received within said time period, creating a new marked message with a different mark selected from said plurality of available marks, and forwarding said new marked message to said other endpoint, and exchanging control messages to establish a communication channel between the encoding components in response to the receipt of a reply from the second encoding component within said time period; intercepting a data packet related to the communication channel at one of the first and second encoding components; segmenting and packaging the data packet to provide encoded data segments for transmission to the other of the first and second encoding components; transmitting the encoded data segments and at least one extra encoded segment to the other of the first and second encoding components over the encoded channel; decoding and reassembling the data packet at the other of the first and second encoding components based on the received encoded data segments; and transmitting the reassembled data packet from the other of the first and second encoding components to its respective endpoint; wherein the first and second encoding components are configured to ignore marked packets received from specified encoding components, and to transmit the marked packets transparently.
- comprising;
Specification