Apparatus for and method of managing bandwidth for a packet based connection
First Claim
1. A method of sending packets via a connection by way of a sliding window algorithm in which a flow of data into the connection is controlled in response to acknowledged packets and the connection observing either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth, comprising the steps of:
- (a) calculating a congestion window hereinafter called C-WND of the connection;
(b) setting either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth and then respectively calculating either or both of a guaranteed minimum bandwidth window hereinafter called MIN-WND and a maximum permitted bandwidth hereinafter called MAX-WND;
(c) determining if the MIN-WND or MAX-WND is invoked on the connection, based on their relationship with C-WND;
(d) allowing a transmission of one or more packets of data into the connection if either MIN-WND or MAX-WND permits the transmission; and
(e) inflating either or both of MIN-WND and MAX-WND in response to each duplicate acknowledgement;
wherein step (c) is performed by comparing either C-WND and MIN-WND or C-WND and MAX-WND.
3 Assignments
0 Petitions
Accused Products
Abstract
Flow control of packet based traffic by window is known. Novel modification is described which causes the flow control mechanism to reduce sending rate to some configured number rather than just reducing it by a fixed amount such as one half. The description also shows how the flow control mechanism can be constrained to a maximum rate. The configured numbers will assure that the connection can always run at a minimum rate but not more than a maximum rate. If the guaranteed minimum bandwidth is known and the round trip time between the end points is known or has been calculated, then the sender node needs only reduce its window to that which corresponds to a sending rate equal to that configured number. In this way the protocol will still probe for extra, opportunistic bandwidth but will be able to maintain the minimum rate. In a similar way a window that corresponds to the maximum rate can be calculated and used to constrain the maximum rate of sending.
106 Citations
9 Claims
-
1. A method of sending packets via a connection by way of a sliding window algorithm in which a flow of data into the connection is controlled in response to acknowledged packets and the connection observing either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth, comprising the steps of:
-
(a) calculating a congestion window hereinafter called C-WND of the connection;
(b) setting either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth and then respectively calculating either or both of a guaranteed minimum bandwidth window hereinafter called MIN-WND and a maximum permitted bandwidth hereinafter called MAX-WND;
(c) determining if the MIN-WND or MAX-WND is invoked on the connection, based on their relationship with C-WND;
(d) allowing a transmission of one or more packets of data into the connection if either MIN-WND or MAX-WND permits the transmission; and
(e) inflating either or both of MIN-WND and MAX-WND in response to each duplicate acknowledgement;
wherein step (c) is performed by comparing either C-WND and MIN-WND or C-WND and MAX-WND. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
(f) counting a reset timer hereinafter called RsT in connection with the congestion window; - and
(g) allowing the transmission of one or more packets of data into the connection if at least one of C-WND, MIN-WND and RsT permits the transmission.
-
-
3. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 2 wherein steps (c) and (d) are performed only during a portion of the connection period.
-
4. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 2, wherein the connection is a TCP connection.
-
5. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 1 wherein steps (c) and (d) are performed only during a portion of the connection period.
-
6. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 1 comprising the further steps of:
-
(h) counting a reset timer hereinafter called RsT in connection with the congestion window; and
(i) allowing the transmission of one or more packets of data into the connection if at least one of C-WND, MAX-WND and RsT permits the transmission.
-
-
7. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 6, wherein steps (c) and (d) are performed only during a portion of the connection period.
-
8. The method of sending data packets via a connection by way of a sliding window algorithm, according to claim 6, wherein the connection is a TCP connection.
-
9. An apparatus for sending data in packets via a connection by way of a sliding window algorithm in which a flow of data into the connection is controlled in response to acknowledged packets and the connection observing either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth, comprising:
-
a flow control module for controlling a flow of packets into the connection in response to acknowledged packets;
a congestion window arithmetic module for calculating a congestion window hereinafter called C-WND of the connection;
a bandwidth monitoring window arithmetic module for setting either or both of a guaranteed minimum bandwidth and a maximum permitted bandwidth and then respectively calculating either or both of a guaranteed minimum window hereinafter called MIN-WND and a maximum permitted bandwidth hereinafter called MAX-WND;
a control logic module for determining if the MIN-WND or MAX-WND is invoked on the connection;
a transmitter for transmitting a series of packets of data into the connection;
a controller for allowing a transmission of one or more packets of data into the connection if either MIN-WND or MAX-WND permits the transmission;
a packetizing module for packetizing data to be sent into a series of packets, each having an individual sequence number; and
a clock for timing operations of various modules;
wherein the packet of data is a TCP packet of data and the apparatus further comprises;
a TCP protocol module for forming series of TCP packets of data, each having a sequence byte number; and
the flow control module controls a flow of packets into the connection in response to acknowledged sequence byte numbers of the TCP packets of data;
wherein the flow control module comprises further a window control module for adjusting the size of either or both MIN-WND and MAX-WND in response to each duplicate ACK.
-
Specification