Flow control system using control information of a message for initiating retransmission of data portion when buffer is available
First Claim
1. A flow control method for transmitting a plurality of messages from a source node to a destination node in a message processing system, the plurality of messages including a first message comprising a data portion, the method comprising:
- the source node transmitting (102) the data portion of the first message, and related control information to the destination node;
in response to the destination node being unable to retain the data portion of the first message due to buffer unavailability, the destination node discarding the data portion of the first message, and in response to the destination node thereafter being able to retain the data portion of the first message due to buffer availability, the destination node initiating a retransmission (110) of the data portion of the first message from the source node using said related control information.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for a message processing system in which messages are transmitted from source nodes to destination nodes. A transmission flow control technique is disclosed in which the source node optimistically sends control information and a data portion of a message, and wherein a destination node discards the data portion of the message if it is unable to accommodate it. The destination node, however, retains enough of the control information to identify the message to the source node, and when the destination node is subsequently able to accommodate the data portion, the destination node issues a request to the source node to retransmit the data portion of the message. Discarding of one message is followed by discards of sequential messages, until the destination node is able to accommodate the data portions of messages. The flow control technique disclosed herein is used, for example, in an environment where buffers are posted to accommodate messages at the destination node, and is particularly suited for conditions arising in multi-tasking systems where the destination node is generally assumed to be prepared to accommodate data, however, if not prepared, is likely not prepared for long periods of time.
-
Citations
17 Claims
-
1. A flow control method for transmitting a plurality of messages from a source node to a destination node in a message processing system, the plurality of messages including a first message comprising a data portion, the method comprising:
-
the source node transmitting (102) the data portion of the first message, and related control information to the destination node;
in response to the destination node being unable to retain the data portion of the first message due to buffer unavailability, the destination node discarding the data portion of the first message, and in response to the destination node thereafter being able to retain the data portion of the first message due to buffer availability, the destination node initiating a retransmission (110) of the data portion of the first message from the source node using said related control information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
in response to the destination node being unable to retain the data portion of the first message, the destination node retaining at least some of the related control information.
-
-
3. The method of claim 2, wherein said destination node initiating a retransmission (110) of the data portion of the first message includes:
the destination node using at least some of the retained related control information to transmit (108) a first pull request to the source node to retransmit the data portion of the first message.
-
4. The method of claim 3, further comprising:
in response to the first pull request, the source node retransmitting (110) the data portion of the first message to the destination node.
-
5. The method of claim 4, further comprising:
-
in response to the destination node being unable to retain the data portion of the first message, the destination node sending (104) a first negative acknowledgment to the source node; and
in response to the source node receiving the first negative acknowledgment, the source node waiting for receipt of the first pull request before retransmitting (110) the data portion of the first message.
-
-
6. The method of claim 5, further comprising:
-
the source node transmitting (106) to the destination node a first acknowledgment of the first negative acknowledgment; and
the destination node transmitting (112) to the source node a first acknowledgment of the retransmitted (110) first data portion of the first message.
-
-
7. The method of claim 1, wherein the plurality of messages includes a second message, sequential to the first message, and comprising a data portion, the method further comprising:
-
subsequent to said transmitting (102) the data portion of the first message, the source node transmitting (103) the data portion of the second message, and related control information, to the destination node;
in response to the destination node being unable to retain the data portion of the first message, the destination node also discarding the data portion of the second message; and
in response to the destination node thereafter being able to retain the data portion of the second message, the destination node initiating a retransmission (111) of the data portion of the second message from the source node.
-
-
8. The method of claim 7, wherein the first and second messages are sequentially identified, and are generally expected to arrive at the destination node in the same order in which they were transmitted from the source node, and wherein the control information of the first and second messages comprises respective sequence indicia thereof.
-
9. The method of claim 7, wherein the plurality of messages includes at least one message subsequent to the second message, each of which is transmitted to the destination node, and wherein respective data portions of the at least one message are retained in response to the destination node'"'"'s ability to retain them, or are discarded by the destination node in response to the destination node'"'"'s inability to retain them and not retransmitted thereto until the destination node initiates respective retransmissions thereof due to its subsequent ability to accommodate them.
-
10. A flow control method for transmitting a plurality of sequential messages from a source node to a destination node in a message processing system, each of the plurality of messages including a first data portion and related control information including respective identifying indicia thereof, the method comprising:
-
initially transmitting the respective data portions and the respective control information of a first message and at least one subsequent message of the plurality of messages from the source node to destination node; and
in response to the destination node being unable to retain the data portion of the first message due to buffer unavailability;
the destination node discarding the data portion of the first message but retaining the identifying indicia of the control information thereof, and sending a negative acknowledgment relating to the first message to the source node using said control information, and until it is able to retain any data portions of messages due to buffer availability, the destination node discarding respective data portions of the at least one subsequent message as they are received thereby but retaining the respective identifying indicia of the respective control information thereof, and sending respective negative acknowledgments relating thereto to the source node using said respective control information. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
as the destination node becomes able to retain the respective data portions of the first message and any of the at least one subsequent message, the destination node initiating, via respective pull requests to the source node, respective retransmissions of the respective data portions of the first message and said any of the at least one subsequent message.
-
-
12. The method of claim 11, further comprising:
in response to said respective pull requests from the destination node, the source node retransmitting the respective data portions of the first message and said any of the at least one subsequent message to the destination node.
-
13. The method of claim 12, further comprising:
the destination node incrementing an expected runt number as respective data portions of messages are discarded and negative acknowledgments transmitted to the source node therefor.
-
14. The method of claim 13, further comprising:
-
the destination node incrementing an expected message number as respective initial transmissions or retransmissions of data portions of messages are successfully retained; and
the destination node respectively acknowledging the successful retention of the respective initial transmissions or retransmissions of the data portions of messages to the source node.
-
-
15. The method of claim 14, further comprising:
the source node incrementing a message sent number as respective initial transmissions of data portions of messages are made.
-
16. The method of claim 15, further comprising:
the source node incrementing an expected acknowledgment number as respective acknowledgments of successfully retained initially transmitted or retransmitted data portions of messages are received from the destination node.
-
17. The method of claim 10, further comprising:
-
in response to the destination node being able to retain the data portion of the first message;
the destination node retaining, and acknowledging to the source node the successful retention of, the data portion of the first message.
-
Specification