Patent ID: 7787367

Claim:
A method for flow control in a communication network, the method comprising: a. determining if at least one sender buffer of a plurality of sender buffers has a sufficient number of credits, wherein the sufficient number of credits correspond to a receiver buffer of a plurality of receiver buffers, the sufficient number of credits informing if the receiver buffer has an available buffer space corresponding to at least one data packet, a sender buffer corresponds to a sender, the receiver buffer corresponds to a receiver; b. transmitting the at least one data packet to at least one receiver buffer, if the at least one sender buffer has the sufficient number of credits, the at least one data packet being transmitted from the at least one sender buffer, the at least one data packet being a credited-data packet; receiving one of a positive acknowledgement and a negative acknowledgement at the sender, wherein the positive acknowledgement is received when the receiver removes a data packet from the at least one receiver buffer, the negative acknowledgement is received when the data packet is dropped by the receiver, wherein each of the positive acknowledgement and the negative acknowledgement comprises an identification number corresponding to the data packet and a high priority is assigned to the negatively acknowledged data packets for retransmission while a medium priority is assigned to the unsent data packets and a low priority is assigned to the unacknowledged data packets; and c. transmitting speculatively a data packet to the at least one receiver buffer, if the sufficient number of credits in the at least one sender buffer are absent, the data packet being transmitted from the at least one sender buffer, the data packet being a speculative-data packet, such that precedence is given the credited mode of transmission over the speculative mode of transmission.