Patent ID: 8661138

Claim:
At a terminal server comprising a computer system having a processor and that is in communication with a plurality of client computer systems through corresponding terminal sessions, a method for classifying packets for use in allocating network bandwidth to the plurality of client computer systems interacting with the terminal server, the method comprising: the terminal server formulating a plurality of corresponding output packets responsive to one or more input packets received from each of a plurality of different computer systems respectively; the terminal server classifying the output packets into a plurality of corresponding terminal session groups in accordance with classification criteria, the classification criteria indicating how to group packets on a terminal server session basis so as to more evenly distribute bandwidth among different terminal server sessions when sending output packets back to the plurality of different computer systems; the terminal server queuing classified output packets from each of the plurality of groups into a corresponding plurality of queues respectively, wherein each queue corresponds to a different terminal server session; and configuring a queue flushing cycle to occur for a specified period of time; calculating a plurality of queue time periods based on the number of queues that contain data and the specified period of time for the queue flushing cycle, each of the queue time periods indicating how long each corresponding queue containing data is to be flushed during the queue flush cycle by allocating portions of the queue flushing cycle such that the portion of the queue flushing cycle allocated to any queue is essentially equal to the portion of the queue flushing cycle allocated to any other queue such that a high bandwidth session on a queue is allocated essentially the same amount of time of the queue flushing cycle as a different queue for a lower bandwidth session.