Method and apparatus for improving the performance of TCP and other network protocols in a communication network
First Claim
Patent Images
1. A packet transmission apparatus to transmit one or more packets, comprising:
- (a) A proactive erasure coding section configured to add zero or more erasure coded packet(s) with a data packet block;
(b) An error rate determining section configured to;
(i) receive network state information, wherein said information comprises loss rate and packet inter-arrival time information on the receiving end of the data communication; and
(ii) dynamically determine the amount of erasure coded packets needed based on the received network state information to prevent a need to transmit additional packet(s) error correction at a receiver, and(c) a reactive erasure coding section configured to send one or more erasure coded packet(s) equal to or greater than the number of original packets not received by the receiver;
wherein there is no retransmission of any original packets.
6 Assignments
0 Petitions
Accused Products
Abstract
The performance of TCP (and other protocols) is improved in a data network by segmenting the TCP path and implementing a protocol over the network. The protocol provides a multiplexed tunnel for a multiplicity of TCP sessions from a client to a cloud proxy. The protocol implements congestion management, flow control, reliability, and link monitoring. Other network protocols (such as UDP) are supported with a reliability protocol based upon network coding that improves the transmission reliability.
31 Citations
32 Claims
-
1. A packet transmission apparatus to transmit one or more packets, comprising:
-
(a) A proactive erasure coding section configured to add zero or more erasure coded packet(s) with a data packet block; (b) An error rate determining section configured to; (i) receive network state information, wherein said information comprises loss rate and packet inter-arrival time information on the receiving end of the data communication; and (ii) dynamically determine the amount of erasure coded packets needed based on the received network state information to prevent a need to transmit additional packet(s) error correction at a receiver, and (c) a reactive erasure coding section configured to send one or more erasure coded packet(s) equal to or greater than the number of original packets not received by the receiver; wherein there is no retransmission of any original packets. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A communication system for transmitting or receiving a packet, the communication system comprising:
- a packet reception apparatus; and
a packet transmission apparatus in communication with the packet reception apparatus through a network, the packet transmission apparatus including;(a) a proactive erasure coding section configured to add zero or more erasure coded packet(s) with a data packet block; (b) an erasure coding section configured to send one or more erasure coded packet(s) equal to greater than the number of original packets not received by the receiver; and (c) a error correction determining section configured to; (i) receive network state information, wherein said information comprises loss rate and round-trip time and packet inter-arrival time information on the receiving end of the data communications; and (ii) dynamically determine the number of erasure coded packets based on the received network state information to prevent a need to transmit additional packet(s) after error correction at the package reception apparatus. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
- a packet reception apparatus; and
-
19. A packet transmission apparatus to transmit a packet, the packet transmission apparatus comprising:
- a processor; and
a memory device which stores a plurality of instructions, which when executed by the processor, cause the processor to;(a) proactively send zero or more erasure coded packet(s) with a data packet block; (b) reactively send one or more erasure coded packet(s) equal to or greater than the number of original packets not received by the receiver; (c) receive network state information wherein said information comprises loss rate and packet inter-arrival time information on the receiving end of the data communication; and (d) dynamically determine the number of erasure coded packets based on the received network state information to prevent the retransmission of any undelivered packet(s) from the data block after error correction at a receiver. - View Dependent Claims (20)
- a processor; and
-
21. A packet transmission apparatus to transmit a packet, the packet transmission apparatus comprising:
- a processor; and
a memory device which stores a plurality of instructions, when executed by the processor, causes the processor to;(a) proactively send zero or more erasure coded packet(s) with a data packet block; (b) reactively send one or more erasure coded packet(s) equal to or greater than the number of original packets not received by the receiver; (c) receive network state information wherein said information comprises loss rate, round-trip time and packet inter-arrival time information on the receiving end of the data communication; and (d) dynamically determine the amount of erasure coded packets based on the received network state information and an upper limit value of a transmission rate assigned for a transmission of the data packet block and the erasure coded packet(s) to prevent the transmission of the additional erasure coded packet(s) after error correction at a receiver wherein there is no retransmissions of the data packet block.
- a processor; and
-
22. A method of reliably transferring data from a data source to a data receiver, the method comprising:
-
a) grouping the data to be transferred into a plurality of generations, wherein each generation comprises a plurality of transmission units; b) storing and transmitting each of said transmission units of a first data generation from a data source to a data receiver indicating transmission order for each transmission unit of said first data generation; c) after all of the first generation transmission units of said first data generation have been transmitted from the data source to the data receiver, generating coding transmission units from said first generation transmission units; d) sending said coding transmission units for the first data generation of said first data generation said coding transmission units indicating the transmission order as for the first generation transmission units; e) confirming to the data source, the number of transmission units of the first generation received by the receiver; f) comparing to the data source, the number of transmission units of the first generation received by the data receiver to the number of transmission units sent; g) if the number of transmission units of the first generation received by the data receiver is below a threshold, generating and transmitting a number of coded packets necessary to reconstruct said first data generation at the data receiver; h) a second data generation from the data source to the data receiver indicating the data transmission order for each transmission unit; i) comparing, at the data source, the number of transmission units of the first data generation received to the highest transmission order generated by the data source, to determine if the number of transmission units of the first generation received by the data receiver is less than the entire generation; j) constructing and sending further transmission units needed to complete the first generation; and k) incrementing the transmission order for each transmission unit relative to the last transmission order, wherein the data source ignores any indications of incomplete reception of the first data generation, until an indication of complete reception of the first data generation is received at the data source. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method of transmitting a data block comprising N number of packets having a limited arrival deadline, the method comprising;
-
a) setting a loss estimate value M where M is 0 or greater; b) setting the number of packets in the data window to a first number of packets N corresponding to a window size of N; c) using a hardware processor to erasure code the N packets to create a set of N data packets+M erasure coded packets, d) transmitting the data block, so that the transmitted data block contains the N data packets+M erasure coded packets, e) adjusting the loss estimate value M by observing network state information, wherein said information comprises packet inter-arrival time information and loss rate change at the receiving end; and f) sending the adjusted loss estimate value M to the transmitter for use in transmitting subsequent data blocks.
-
-
32. A method of transmitting a data block comprising a number of N packets having a limited arrival deadline over a UDP-based network, the method comprising;
-
a) setting a loss estimate value M where M is 0 or greater; b) setting the number of packets in the data window to a first number of packets N corresponding to a window size of N; c) using a hardware processor to erasure code the N packets to create a set of M erasure coded packets; d) transmitting the data block, so that the transmitted data block contains the N original packets followed by the M erasure coded packets; e) adjusting the loss estimate value M by observing network state information, wherein said information comprises packet inter-arrival time information and loss rate change at the receiving end;
change at the receiving end; andf) sending the adjusted loss estimate value M to the transmitter for use in transmitting subsequent data blocks.
-
Specification