Controlling the transfer of terminal server data
First Claim
1. At a computer system, a method for determining how to allocate bandwidth for transferring terminal server data, the method comprising:
- receiving a first request to transfer terminal server data for a first application layer module, the first application layer module associated with a first priority;
determining that current bandwidth pressure has caused any buffers configured for transferring terminal server data to be in use;
receiving a second request to transfer terminal server data for a second application layer module, the second application layer module associated with a second priority;
determining that the first request and the second request are in contention for the next buffer that is freed up;
a processor calculating the number of bytes charged for application layer modules having the first priority during at least the current bandwidth pressure;
the processor calculating the number of bytes charged for application layer modules having the second priority during at least the current bandwidth pressure;
detecting that a buffer has been freed up;
the processor comparing the number of bytes charged for application layer modules having the first priority to the number of bytes charged for application layer modules having the second priority; and
appropriately allocating the buffer to transfer terminal server data based on the results of the comparison.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for controlling the transfer of terminal server data. In some embodiments, contending request to send terminal server data are resolved by a flow control module situated between a terminal server protocol and a transport/network protocol. The flow control module utilizes channel priorities along with amounts of previously sent data per channel to determine how to distribute bandwidth in a relatively controlled manner between contending channels. The flow control module can be configured to intercept communication between terminal server protocol and a transport/network protocol to facilitate bandwidth distribution. In other embodiments, data is simultaneously sent over multiple channels of terminal server connection. A first write operation obtains a lock on a corresponding channel but the channel lock does not prevent write operations on other channels.
16 Citations
15 Claims
-
1. At a computer system, a method for determining how to allocate bandwidth for transferring terminal server data, the method comprising:
-
receiving a first request to transfer terminal server data for a first application layer module, the first application layer module associated with a first priority; determining that current bandwidth pressure has caused any buffers configured for transferring terminal server data to be in use; receiving a second request to transfer terminal server data for a second application layer module, the second application layer module associated with a second priority; determining that the first request and the second request are in contention for the next buffer that is freed up; a processor calculating the number of bytes charged for application layer modules having the first priority during at least the current bandwidth pressure; the processor calculating the number of bytes charged for application layer modules having the second priority during at least the current bandwidth pressure; detecting that a buffer has been freed up; the processor comparing the number of bytes charged for application layer modules having the first priority to the number of bytes charged for application layer modules having the second priority; and appropriately allocating the buffer to transfer terminal server data based on the results of the comparison. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system, comprising:
-
one or more processors; system memory; and one or more computer-readable media having stored thereon a terminal server flow control module, the terminal server flow control module being including in a communication stack situated between a terminal server protocol and a transport/network protocol, the terminal server flow control module configured to intercept communication between the terminal server protocol and a transport/network protocol to perform the following; receive a first request to transfer terminal server data for a first application layer module, the first application layer module associated with a first priority; determine that current bandwidth pressure has caused any buffers configured for transferring terminal server data to be in use; receive a second request to transfer terminal server data for a second application layer module, the second application layer module associated with a second priority; determine that the first request and the second request are in contention for the next buffer that is freed up; calculate the number of bytes charged for application layer modules having the first priority during at least the current bandwidth pressure; calculate the number of bytes charged for application layer modules having the second priority during at least the current bandwidth pressure; detect that a buffer has been freed up; compare the number of bytes charged for application layer modules having the first priority to the number of bytes charged for application layer modules having the second priority; and appropriately allocating the buffer to transfer terminal server data based on the results of the comparison. - View Dependent Claims (15)
-
Specification