Compound transmission control protocol
First Claim
Patent Images
1. A method comprising:
- opening, by a first computing device, a single TCP connection for communication of data over a compound stream between the first computing device and a second computing device, the compound stream comprising two or more logical data streams to emulate congestion control behavior of multiple separate network (TCP) connections; and
managing data flow over the compound stream with multiple different congestion control schemes by;
transmitting, by the first computing device to the second computing device, data over the compound stream with a first congestion control algorithm to provide a base-line of transmission, the first congestion control algorithm being a standard TCP congestion control algorithm;
utilizing a second congestion control algorithm to explore bandwidth availability, the first and second congestion control algorithms being different from each other, the second congestion control algorithm being a delay-based congestion control algorithm;
increasing, by the delay-based congestion control algorithm, a data sending rate when an associated network is determined to be underutilized; and
decreasing, by the delay-based congestion control algorithm, the data sending rate when the associated network is determined to be busy and a queue in an associated network path is determined to be backlogged, wherein decreasing the data sending rate comprises gradually decreasing bandwidth allocation of the second algorithm until it is approximately zero in a busy network to regulate aggressiveness of the compound stream such that it is substantially equivalent to that associated with the first congestion control algorithm.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for Compound TCP are described. In one aspect, a single TCP connection is opened for communication of data over a compound stream between first and second computing devices. The compound stream includes two or more logical data streams to emulate congestion control behavior of multiple separate network (TCP) connections. Data flow over the compound stream is managed with multiple different congestion control schemes.
-
Citations
14 Claims
-
1. A method comprising:
-
opening, by a first computing device, a single TCP connection for communication of data over a compound stream between the first computing device and a second computing device, the compound stream comprising two or more logical data streams to emulate congestion control behavior of multiple separate network (TCP) connections; and managing data flow over the compound stream with multiple different congestion control schemes by; transmitting, by the first computing device to the second computing device, data over the compound stream with a first congestion control algorithm to provide a base-line of transmission, the first congestion control algorithm being a standard TCP congestion control algorithm; utilizing a second congestion control algorithm to explore bandwidth availability, the first and second congestion control algorithms being different from each other, the second congestion control algorithm being a delay-based congestion control algorithm; increasing, by the delay-based congestion control algorithm, a data sending rate when an associated network is determined to be underutilized; and decreasing, by the delay-based congestion control algorithm, the data sending rate when the associated network is determined to be busy and a queue in an associated network path is determined to be backlogged, wherein decreasing the data sending rate comprises gradually decreasing bandwidth allocation of the second algorithm until it is approximately zero in a busy network to regulate aggressiveness of the compound stream such that it is substantially equivalent to that associated with the first congestion control algorithm. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable medium comprising computer-program instructions executable by a processor for performing a method, the method comprising:
-
opening, by a first computing device, a single TCP connection for communication of data over a compound stream between the first computing device and a second computing device, the compound stream comprising two or more logical data streams to emulate congestion control behavior of multiple separate network (TCP) connections; and managing data flow over the compound stream with multiple different congestion control schemes by; transmitting, by the first computing device to the second computing device, data over the compound stream with a first congestion control algorithm to provide a base-line of transmission, the first congestion control algorithm being a standard TCP congestion control algorithm; utilizing a second congestion control algorithm to explore bandwidth availability, the first and second congestion control algorithms being different from each other, the second congestion control algorithm being a delay-based congestion control algorithm; increasing, by the delay-based congestion control algorithm, a data sending rate when an associated network is determined to be underutilized; and decreasing, by the delay-based congestion control algorithm, the data sending rate when the associated network is determined to be busy and a queue in an associated network path is determined to be backlogged, wherein decreasing the data sending rate comprises gradually decreasing bandwidth allocation of the second algorithm until it is approximately zero in a busy network to regulate aggressiveness of the compound stream such that it is substantially equivalent to that associated with the first congestion control algorithm. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A computing device comprising:
-
a processor; and a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor for performing a method, the method comprising; opening a single TCP connection for communication of data over a compound stream between a first computing device and a second computing device, the compound stream comprising two or more logical data streams to emulate congestion control behavior of multiple separate network (TCP) connections; and managing data flow over the compound stream with multiple different congestion control schemes by; transmitting data over the compound stream with a first congestion control algorithm to provide a base-line of transmission, the first congestion control algorithm being a standard TCP congestion control algorithm; utilizing a second congestion control algorithm to explore bandwidth availability, the first and second congestion control algorithms being different from each other, the second congestion control algorithm being a delay-based congestion control algorithm; increasing, by the delay-based congestion control algorithm, a data sending rate when an associated network is determined to be underutilized; and decreasing, by the delay-based congestion control algorithm, the data sending rate when the associated network is determined to be busy and a queue in an associated network path is determined to be backlogged, wherein decreasing the data sending rate comprises gradually decreasing bandwidth allocation of the second algorithm until it is approximately zero in a busy network to regulate aggressiveness of the compound stream such that it is substantially equivalent to that associated with the first congestion control algorithm. - View Dependent Claims (11, 12, 13)
-
-
14. A method of configuring a sending device'"'"'s transmission control protocol (TCP) to improve performance on high-speed or long-distance TCP networks, the method comprising:
-
combining two or more logical data streams into a compound stream; opening, by either the sending device or a second device, a single TCP connection configured to transport the compound stream between the sending device and the second computing device; emulating each of the logical data streams within the compound stream wherein the logical data streams have different congestion control schemes and wherein the different congestion control schemes comprise delay-based and loss-based congestion avoidance implementations; calculating a data sending window as a function of a congestion window and a delay window; managing data flow over the compound stream by; transmitting data over the compound stream with a first congestion control algorithm to provide a base-line of transmission, the first congestion control algorithm being a standard TCP congestion control algorithm; utilizing a second congestion control algorithm to explore bandwidth availability, the first and second congestion control algorithms being different from each other, the second congestion control algorithm being a delay-based congestion control algorithm; increasing, by the delay-based congestion control algorithm, a data sending rate when an associated network is determined to be underutilized; and decreasing, by the delay-based congestion control algorithm, the data sending rate when the associated network is determined to be busy and a queue in an associated network path is determined to be backlogged, wherein decreasing the data sending rate comprises gradually decreasing bandwidth allocation of the second algorithm until it is approximately zero in a busy network to regulate aggressiveness of the compound stream such that it is substantially equivalent to that associated with the first congestion control algorithm; and de-combining the compound stream into two or more separate logical data streams.
-
Specification