MAXIMIZING BANDWIDTH UTILIZATION IN NETWORKS WITH HIGH LATENCIES AND PACKET DROPS USING TRANSMISSION CONTROL PROTOCOL
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a method of maximizing the utilization of currently available network path bandwidth by TCP transmissions. Embodiments of the present invention allow to automatically detect and utilize a larger portion of the currently available bandwidth (or even the entire bandwidth) for every specific connection and network path that utilizes the invention. Furthermore, some embodiments of the present invention provide that the software implementing the technology may be running only at the data sender side and may communicate with a standard receiver. According to embodiments of the present invention, the software implementing the invention may be placed between a TCP/IP protocol driver and a Network Interface driver. Such intermediate software may hide the real network state from TCP/IP driver and shift the TCP connection SWND edge by means of Preemptive Spoof Data Acknowledgment and Packet Loss Concealment.
-
Citations
78 Claims
-
1-30. -30. (canceled)
-
31. A computer readable medium comprising computer executable instructions, the instructions being configured for execution by a processor and configured to cause the processor to transmit data over a network while avoiding congestion, the transmission being performed according to a protocol that utilizes a sliding window, the instructions being further configured to cause the processor to:
-
calculate the round trip times (RTT) of transmitted segments; and modify the size of a sending window based on the calculated RTT and the rate of change of the calculated RTT, wherein said modifications are not dependent on transmission rates; control the size of a sending window according to a first mode when transmitting data for the first time; and control the size of a sending window according to a second mode when re-transmitting already transmitted data upon determination that the already transmitted data may have been dropped by the network, and wherein the first and second modes of controlling the size of the sending window differ. - View Dependent Claims (32)
-
-
33-37. -37. (canceled)
-
38. A computer readable medium comprising computer executable instructions, the instructions being configured for execution by a processor and configured to cause the processor to transmit data over a network while avoiding congestion, the transmission being performed according to a protocol that utilizes a sliding window, the instructions being further configured to cause the processor to:
-
calculate the round trip times (RTT) of transmitted segments; determine whether a transmitted segment may have been dropped by the network; based on the calculated RTT and the determination of whether a segment may have been dropped, determine to operate in one of at least four states, the states indicating progressively larger levels of congestion in the network, wherein a first, second and third states of the at least four states are associated with progressively larger RTTs and with an absence of dropped segments, and a fourth state of the at least four states is associated with the determination that a segment may have been dropped; during operation in the first state, increase the size of a sending window exponentially; during operation in the second state, increase the size of a sending window linearly; during operation in the third state, decrease the size of the sending window linearly; and
during operation in the fourth state, decrease the size of the sending window, according to a formula different than that used during the third state. - View Dependent Claims (39, 40, 42, 43, 44, 45, 46, 47)
-
-
41. (canceled)
-
48-60. -60. (canceled)
-
61. A computing system connected to a network, the computing system including a processor and a memory, the memory including a plurality of instructions the instructions being configured to cause the processor to transmit data over a network while avoiding congestion, the transmission being performed according to a protocol that utilizes a sliding window, the instructions further causing the processor to perform the steps of:
-
calculating the round trip times (RTT) of transmitted segments; and modifying the size of a sending window based on the calculated RTT and the rate of change of the calculated RTT, wherein said modifications are not dependent on transmission rates. - View Dependent Claims (62)
-
-
63. A computing system connected to a network, the computing system including a processor and a memory, the memory including a plurality of instructions the instructions being configured to cause the processor to transmit data over a network while avoiding congestion, the transmission being performed according to a protocol that utilizes a sliding window, the instructions further causing the processor to perform the steps of:
-
calculating the round trip times (RTT) of transmitted segments; and modifying the size of a sending window based on the calculated RTT and the rate of change of the calculated RTT, wherein said modifications are not dependent on transmission rates; controlling the size of a sending window according to a first mode when transmitting data for the first time; and controlling the size of a sending window according to a second mode when re-transmitting already transmitted data upon determination that the already transmitted data may have been dropped by the network, wherein the first and second modes of controlling the size of the sending window differ. - View Dependent Claims (64)
-
-
65-67. -67. (canceled)
-
68. A computing system connected to a network, the computing system including a processor and a memory, the memory including a plurality of instructions the instructions being configured to cause the processor to transmit data over a network while avoiding congestion, the transmission being performed according to a protocol that utilizes a sliding window, the instructions further causing the processor to perform the steps of:
-
calculating the round trip times (RTT) of transmitted segments; determining whether a transmitted segment may have been dropped by the network; based on the calculated RTT and the determination of whether a segment may have been dropped, determining to operate in one of at least four states, the states indicating progressively larger levels of congestion in the network, wherein a first, second and third states of the at least four states are associated with progressively larger RTTs and with an absence of dropped segments, and a fourth state of the at least four states is associated with the determination that a segment may have been dropped; during operation in the first state, increasing the size of a sending window exponentially;
during operation in the second state, increasing the size of a sending window linearly;
during operation in the third state, decreasing the size of the sending window linearly; and
during operation in the fourth state, decreasing the size of the sending window, according to a formula different than that used during the third state. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77)
-
-
78-90. -90. (canceled)
Specification