A method for controlling data flow using a data communications link, the link operating according to a data communications protocol in which a receiver of data communications on the link, upon detecting a lack of processing bandwidth for a current level of data communications, suspends data communications associated with the link for a period of time determined by the receiver by sending a flow control message to a sender, the method, taking place at the sender, comprising, steps of: configuring, in the firmware of a communications adapter, a parameter specifying a duration for flow control periods, where the duration of a flow control period is a specified period of time during which flow control messages are detected and corrupt communication control packets are transmitted; configuring, in the firmware of the communications adapter, a parameter specifying a number of corrupt communications control packets to be transmitted from the sender to the receiver during a flow control period; determining whether a flow control message is received from the receiver during a flow control period; altering, in dependence upon whether a flow control message is received from the receiver during a flow control period, the specified number of corrupt communications control packets, by incrementing the number of corrupt communication control packets if a flow control message was received during the flow control period having the specified duration, and by decrementing the number of corrupt communications control packets if no flow control message was received during the flow control period having the specified duration; and transmitting, during a subsequent flow control period, the altered number of corrupt communications control packets from the sender to the receiver; wherein the corrupt communications control packet comprises a communications control packet intentionally corrupted such that the receiver is caused to discard the packet upon receipt. configuring, in the firmware of a communications adapter, a parameter specifying a duration for flow control periods, where the duration of a flow control period is a specified period of time during which flow control messages are detected and corrupt communication control packets are transmitted; configuring, in the firmware of the communications adapter, a parameter specifying a number of corrupt communications control packets to be transmitted from the sender to the receiver during a flow control period; determining whether a flow control message is received from the receiver during a flow control period; altering, in dependence upon whether a flow control message is received from the receiver during a flow control period, the specified number of corrupt communications control packets, by incrementing the number of corrupt communication control packets if a flow control message was received during the flow control period having the specified duration, and by decrementing the number of corrupt communications control packets if no flow control message was received during the flow control period having the specified duration; and transmitting, during a subsequent flow control period, the altered number of corrupt communications control packets from the sender to the receiver; wherein the corrupt communications control packet comprises a communications control packet intentionally corrupted such that the receiver is caused to discard the packet upon receipt.