Tcp extension and variants for handling heterogeneous applications
AssigneeEmpire Technology Development LLC
InventorMUNG CHIANG
Life of this patent
Estimating the term…
Abstract
An extension to TCP is generally provided that allows TCP to handle heterogeneous applications, especially those with delay and smoothness-sensitive contents, and wireless transmission media having noisy, fading radio channels. The TCP extension decouples reliability control from rate control, sacrificing reliability for delay control (transmission rate and retransmission decision) that may be suitable for delay and smoothness-sensitive contents. Furthermore, the TCP extension may select TCP variants and modifications to the TCP variants based on one or more of application needs, channel conditions, or local observables such as loss and delay to better adapt to different types of applications and physical layers.
Claims36
A method for implementing a network protocol stack comprising an application layer, a transport layer, a physical layer, and at least one layer between the application and the transport layers, the network protocol stack sending packets in a network communication, the method comprising:
- performing rate control, comprising:
- monitoring packet acknowledgments received in response to the packets sent in the network communication;
- determining a packet loss information and a packet delay information from the packet acknowledgments;
- filtering the packet loss information and the packet delay information;
- selecting one of a plurality of variants of a congestion control protocol;
- determining a congestion window size by applying the selected variant based at least in part on one or more of the filtered packet loss information and the filtered packet delay information;
- and
- setting a transmission rate for the transport layer based on the determined congestion window size.
A computer-readable storage medium encoded with computer-executable instructions for implementing a network protocol stack comprising an application layer, a transport layer, a physical layer, and at least one layer between the application and the transport layers, the network protocol stack sending packets in a network communication, the instructions comprising:
- performing rate control, comprising:
- monitoring packet acknowledgments received in response to the packets sent in the network communication;
- determining a packet loss information and a packet delay information from the packet acknowledgments;
- filtering the packet loss information and the packet delay information;
- selecting one of a plurality of variants of a congestion control protocol;
- determining a congestion window size by applying the selected variant based at least in part on one or more of the filtered packet loss information and the filtered packet delay information;
- and
- setting a transmission rate for the transport layer based on the determined congestion window size.
A network protocol stack including an application layer, a transport layer, a physical layer, and at least one layer between the application and the transport layers, the network protocol stack comprising:
- a rate control module, comprising:
- a packet loss detection block configured to detect packet loss information from packet acknowledgements received in the transport layer;
- a first filter configured to filter the packet loss information from the packet loss detection block;
- a packet delay block configured to detect packet delay information from the packet acknowledgements;
- a second filter configured to filter packet delay information from the packet delay block;
- a plurality of variants of a congestion control protocol configured to generate a congestion window size from at least one of information about the application layer, information about the physical layer, the filtered packet loss, and the filtered packet delay;
- and
- a control logic configured to select one of the plurality of variants based on the filtered packet loss and the filtered packet delay, and configured to set a transmission rate based on the congestion window size.
Dependencies are inferred from the claim text.