Multi-stream acknowledgement scheduling
AssigneeMicrosoft Corporation
InventorRichard John Black
Life of this patent
Estimating the term…
Abstract
Acknowledgement packets and data packets of multiple streams are reordered for transmission in order to gain good overall utilization of both uploading and downloading links. Durations of various packets in a transmit queue may evaluated to determine whether a later packet in the transmit queue can be transmitted ahead of an earlier packet in the transmit queue. A relative acknowledgement priority parameter for a node effectively tunes the amount of transmit bandwidth available to increase acknowledgment transmissions and therefore increase the node's receive rate from another node.
Claims17
A method of controlling network traffic between a first node and a second node, the method comprising:
- maintaining a transmit queue for a communications flow of the first node, the transmit queue containing a first packet associated with a first stream in the communications flow and a second packet associated with a second stream in the communications flow, the first packet being ordered ahead of the second packet in the transmit queue;
- and
- reordering the first packet and the second packet in the transmit queue, if the first packet and the second packet satisfy a reordering condition, wherein at least one of the first and second packets is an acknowledgement packet acknowledging an amount of data received in a receiving communications flow, the receiving communications flow has a receive rate, and the reordering condition is satisfied if the amount of data acknowledged by the at least one of the first and second packets is predicted not to exceed the receive rate.
A communications node that controls network traffic with a second node, the communications node comprising:
- a transmit queue for a communications flow of the communications node, the transmit queue containing a first packet associated with a first stream in the communications flow and a second packet associated with a second stream in the communications flow, the first packet being ordered ahead of the second packet in the transmit queue;
- and
- a scheduler that reorders the first packet and the second packet in the transmit queue, if the first packet and the second packet satisfy a reordering condition, the communications flow is associated with a transmit rate from the communications node and the scheduler further predicts a transmission duration of both the first and second packets transmitted at the transmit rate associated with the transmit queue and a transmission duration of the first packet transmitted at a rate slower than the transmit rate of the communications flow, wherein the reordering condition is satisfied if the predicted transmission duration of the first and second packets at the transmit rate is less than the predicted transmission duration of the first packet at the slower rate.
Dependencies are inferred from the claim text.