Patent ID: 8004991
Filing Date: 2011-08-23
Classification: H04L

Abstract:
1. A method for transmitting TCP segments from a host computing system via a network adapter, comprising: (a) maintaining a plurality of queues at the network adapter for storing information regarding a plurality of TCP connections; wherein each queue is assigned a configurable transmission rate that defines a maximum amount of information that the queue is permitted to transfer on behalf of a TCP connection from among the plurality of TCP connections within a set time interval; (b) assigning each TCP connection to a queue from among the plurality of queues; wherein a priority for each TCP connection is established by a priority of the queue to which it is assigned and if more than one TCP connection is assigned to a same queue then the more than one TCP connection share the transmission rate for the same queue; (c) assigning a maximum burst size for each TCP connection; wherein the maximum burst size limits an amount of data that is sent on behalf of each TCP connection at any given instance; and wherein for transmitting TCP segments, the transmission rate, the set time interval and the maximum burst size for each TCP connection is stored as connection information in addition to a standard TCP header for each TCP connection, after each TCP connection has been established; (d) generating a plurality of requests for transmitting TCP segments; wherein a control module receives and arbitrates between the plurality of requests and selects one of the plurality of requests based on queue priority, an amount of data each queue may have already sent before a request and a number of queues that are waiting to transmit information when the control module arbitrates between the plurality of requests; (e) maintaining a transfer count for each queue for controlling an amount of information that each queue is permitted to send within the set time interval; and (f) notifying the control module after a queue selected in step (d) has transmitted the amount of permitted information within the set time interval.