A device comprising: a memory for storing a previous target injection rate representing a rate at which data packets are to be transmitted along a network path; a processor coupled to the memory, and a communication interface, the device characterized in that the processor is programmed to: determine a round trip time, RTT, measured along the network path; calculate a raw injection rate based on the previous target injection rate, a latency ratio representing a queuing delay, and a minimum injection rate, wherein the queueing delay is based on a difference between the determined RTT and a minimum RTT observed by a flow of data packets over the network path, and wherein the latency ratio is based on a difference between a predetermined maximum queueing delay and the queueing delay; and calculate a current target injection rate by combining the previous target injection rate and the raw injection rate as a weighted average using a responsiveness parameter that represents a weight to apply to the raw injection rate; determine a quantity of times the queuing delay violates a predetermined threshold value to create a violation count; adjust the responsiveness parameter when the violation count exceeds a predetermined maximum violation count, and wherein the communication interface is configured to transmit a plurality of data packets along the network path based on the current target injection rate. a memory for storing a previous target injection rate representing a rate at which data packets are to be transmitted along a network path; a processor coupled to the memory, and a communication interface, the device characterized in that the processor is programmed to: determine a round trip time, RTT, measured along the network path; calculate a raw injection rate based on the previous target injection rate, a latency ratio representing a queuing delay, and a minimum injection rate, wherein the queueing delay is based on a difference between the determined RTT and a minimum RTT observed by a flow of data packets over the network path, and wherein the latency ratio is based on a difference between a predetermined maximum queueing delay and the queueing delay; and calculate a current target injection rate by combining the previous target injection rate and the raw injection rate as a weighted average using a responsiveness parameter that represents a weight to apply to the raw injection rate; determine a quantity of times the queuing delay violates a predetermined threshold value to create a violation count; adjust the responsiveness parameter when the violation count exceeds a predetermined maximum violation count, and determine a round trip time, RTT, measured along the network path; calculate a raw injection rate based on the previous target injection rate, a latency ratio representing a queuing delay, and a minimum injection rate, wherein the queueing delay is based on a difference between the determined RTT and a minimum RTT observed by a flow of data packets over the network path, and wherein the latency ratio is based on a difference between a predetermined maximum queueing delay and the queueing delay; and calculate a current target injection rate by combining the previous target injection rate and the raw injection rate as a weighted average using a responsiveness parameter that represents a weight to apply to the raw injection rate; determine a quantity of times the queuing delay violates a predetermined threshold value to create a violation count; adjust the responsiveness parameter when the violation count exceeds a predetermined maximum violation count, and wherein the communication interface is configured to transmit a plurality of data packets along the network path based on the current target injection rate.