Congestion control in a network
First Claim
1. A system for exchanging a plurality of messages between a first node and a second node over a data link, each of the first and second nodes comprising:
- means for said respective node to include in a selected message of said plurality of messages a source rate value representing a transmission rate at which said other node may transmit messages to said respective node;
means for said respective node to determine that congestion has been detected at said respective node, and in response to determining that congestion has been detected, for said respective node to transmit a new source rate value to said other node in a return message sent by said respective node to said other node; and
means for said respective node to respond to a received new source rate value from the other node by adjusting the rate at which said respective node sends subsequent messages to said other node to conform to said new source rate value.
2 Assignments
0 Petitions
Accused Products
Abstract
A message transfer arrangement includes a client node and a server node interconnected by a data link. The client node sequentially receives requests from user applications and generates, in response to each request, command messages for transmission by said interface, each command message including a command and having a transmit slot identifier identifying the request in the sequence of requests received by said request receiver and a transmit sequence identifier identifying the command message in the sequence of command messages relating to the request. The selection of whether to transmit a command message related to one request or to a subsequent request is based on a received slot identifier and a received sequence identifier in a response message.
The server node receives command messages from, and transmits response messages to, the client node over the data link. It selectively executes the command contained in each command message and generates, in response thereto, a response message including a response slot identifier and response sequence identifier corresponding to the command slot identifier and command sequence identifier. The determination of whether to execute a command in a command message is based on the command slot identifier and command sequence identifier of the received command message received by interface and the command slot identifier and command sequence identifier of the command message containing the previously executed command.
107 Citations
24 Claims
-
1. A system for exchanging a plurality of messages between a first node and a second node over a data link, each of the first and second nodes comprising:
-
means for said respective node to include in a selected message of said plurality of messages a source rate value representing a transmission rate at which said other node may transmit messages to said respective node;
means for said respective node to determine that congestion has been detected at said respective node, and in response to determining that congestion has been detected, for said respective node to transmit a new source rate value to said other node in a return message sent by said respective node to said other node; and
means for said respective node to respond to a received new source rate value from the other node by adjusting the rate at which said respective node sends subsequent messages to said other node to conform to said new source rate value. - View Dependent Claims (2, 3, 4, 5, 6)
means for including in a transmitted message of said plurality of messages, a virtual circuit identifier, said virtual circuit identifier identifying a virtual circuit in a source node and a destination node.
-
-
3. The system as in claim 2, wherein each of the first and second nodes further comprises:
means for adjusting the transmission rate in said virtual circuit.
-
4. The apparatus as in claim 2, wherein each of the first and second nodes further comprises:
means, in said respective node, for adjusting the transmission rate in said virtual circuit to said other node.
-
5. The system as in claim 1, wherein a congestion flag is included in said plurality of messages, said congestion flag having a change state and wherein each of said first and second nodes further comprises:
means for said respective node, in response to receiving from said other node a message having said congestion flag in said change state, to adjust its transmission rate in accordance with said received new source rate value.
-
6. The system as in claim 5, wherein each of the first and second nodes further comprises:
-
a timer, said timer expiring after a timing interval; and
means, responsive to said respective node not receiving from said other node a message having said congestion flag in said change state during said timing interval, for resetting a transmission rate at which said respective node transmits messages to said other node to a value greater than a present transmission rate, so that in the absence of receipt of messages indicating that congestion is occurring at said other node, then said respective node begins transmitting messages to said other node at said greater transmission rate.
-
-
7. A method of exchanging a plurality of messages over a data link between a first node and a second node, the method, in each of the first and second nodes, comprising:
-
including, by said respective node, in a selected message of said plurality of messages a source rate value representing a transmission rate at which said other node may transmit messages to said respective node;
determining by said respective node that congestion has been detected at said respective node, and in response to determining that congestion has been detected, said respective node transmitting a new source rate value to said other node in a return message sent by said respective node to said other node; and
adjusting, by said respective node, in response to a received new source rate value, said rate at which said respective node sends subsequent messages to said other node to conform to said received new source rate value. - View Dependent Claims (8, 9, 10, 11, 12)
identifying a virtual circuit in a transmitted message of said plurality of messages, including identifying said virtual circuit in a source node and a destination node.
-
-
9. The method of claim 8 further including the step of:
adjusting the transmission rate in said virtual circuit.
-
10. The method of claim 8 further including the step of:
adjusting in said respective node the transmission rate in said virtual circuit to said other node.
-
11. The method of claim 7 further including the steps of:
-
including a congestion flag in said plurality of messages, said congestion flag having a change state; and
adjusting, by said respective node, in response to receiving from said other node a message having said congestion flag in said change state, its transmission rate in accordance with said new source rate value.
-
-
12. The method of claim 7 further including the steps of:
-
indicating that a timer in said respective node has expired after a timing interval; and
resetting, responsive to said respective node not receiving from said other node a message having said congestion flag in said change state during said timing interval, a transmission rate at which said respective node transmits messages to said other node to a value greater than a present transmission rate, so that in the absence of receipt of messages indicating that congestion is occurring at said other node, then said respective node begins transmitting messages to said other node at the reset greater transmission rate.
-
-
13. A first node and a second node for exchanging a plurality of messages over a data link, comprising:
-
means for said first node to include in a selected message of said plurality of messages a source rate value giving a transmission rate at which said first node may transmit messages to said second node;
means for said second node to determine that congestion has been detected at said second node, and in response to determining that congestion has been detected, for said second node to transmit a new source rate value to said first node in a return message sent by said second node to said first node;
means for said first node to respond to said new source rate value by adjusting the rate at which said first node sends subsequent messages to said second node to conform to said new source rate value. - View Dependent Claims (14, 15, 16, 17)
means for including in a transmitted message of said plurality of messages a virtual circuit identifier, said virtual circuit identifier identifying a virtual circuit in a source node and a destination node.
-
-
15. The apparatus as in claim 14, further comprising:
means for adjusting the transmission rate in said virtual circuit.
-
16. The apparatus as in claim 13 further comprising:
-
a congestion flag included in said plurality of messages, said congestion flag having a change state;
means for said first node, in response to receiving from said second node a message having said congestion flag in said change state, to adjust its transmission rate in accordance with said new source rate value.
-
-
17. The apparatus as in claim 13, further comprising:
-
a timer in said first node, said timer expiring after a timing interval;
means responsive to said first node not receiving from said second node a message having said congestion flag in said change state during said timing interval, for resetting a transmission rate at which said first node transmits messages to said second node to a value greater than a present transmission rate, so that in the absence of receipt of messages indicating that congestion is occurring at said second node, then said first node begins transmitting messages to said second node at a greater transmission rate.
-
-
18. A method for a first node and a second node to exchange a plurality of messages over a data link, comprising:
-
including by said first node in a selected message of said plurality of messages a source rate value giving a transmission rate at which said first node may transmit messages to said second node;
determining by said second node that congestion has been detected at said second node, and in response to determining that congestion has been detected, said second node transmitting a new source rate value to said first node in a return message sent by said second node to said first node;
adjusting by said first node, in response to said new source rate value, said rate at which said first node sends subsequent messages to said second node to conform to said new source rate value. - View Dependent Claims (19, 20, 21, 22)
identifying a virtual circuit in a transmitted message of said plurality of messages, including identifying said virtual circuit in a source node and a destination node.
-
-
20. The method as in claim 19, further comprising:
adjusting the transmission rate in said virtual circuit.
-
21. The method as in claim 18 further comprising:
-
including a congestion flag in said plurality of messages, said congestion flag having a change state;
adjusting by said first node, in response to receiving from said second node a message having said congestion flag in said change state, its transmission rate in accordance with said new source rate value.
-
-
22. The method as in claim 18, further comprising:
-
indicating that a timer in said first node has expired after a timing interval;
resetting, responsive to said first node not receiving from said second node a message having said congestion flag in said change state during said timing interval, a transmission rate at which said first node transmits messages to said second node to a value greater than a present transmission rate, so that in the absence of receipt of messages indicating that congestion is occurring at said second node, then said first node begins transmitting messages to said second node at a greater transmission rate.
-
-
23. A first node and a second node for exchanging a plurality of messages over a data link, comprising:
-
means for said first node to include in a selected message of said plurality of messages a source rate value giving a transmission rate at which said first node may transmit messages to said second node;
means for said second node to determine that congestion has been detected at said second node, and in response to determining that congestion has been detected, for said second node to transmit a new source rate value to said first node in a return message sent by said second node to said first node;
means for said first node to respond to said new source rate value by adjusting the rate at which said first node sends subsequent messages to said second node to conform to said new source rate value;
means for including in a transmitted message of said plurality of messages a virtual circuit identifier, said virtual circuit identifier identifying a virtual circuit in a source node and a destination node;
means in said first node for adjusting the transmission rate in said virtual circuit to said second node.
-
-
24. A method for a first node and a second node to exchange a plurality of messages over a data link, comprising:
-
including by said first node in a selected message of said plurality of messages a source rate value giving a transmission rate at which said first node may transmit messages to said second node;
determining by said second node that congestion has been detected at said second node, and in response to determining that congestion has been detected, said second node transmitting a new source rate value to said first node in a return message sent by said second node to said first node;
adjusting by said first node, in response to said new source rate value, said rate at which said first node sends subsequent messages to said second node to conform to said new source rate value;
including, in a transmitted message of said plurality of messages, a virtual circuit identifier, said virtual circuit identifier identifying a virtual circuit in a source node and a destination node;
adjusting in said first node the transmission rate in said virtual circuit to said second node.
-
Specification