BANDWIDTH OPTIMIZATION FOR REMOTE DESKTOP PROTOCOL
First Claim
1. A method for processing a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the method comprising:
- facilitating processing of the first data stream received from the remote server to retrieve package data units (PDUs) associated with packet data,wherein each PDU associated with packet data has a header including an index value related to the packet data and indicative of a storage location;
in response to receiving a first PDU including first packet data, the method comprising;
facilitating decompression of the first packet data using a decompression algorithm; and
facilitating storage of the decompressed first packet data in a location of a memory cache corresponding to the index value included in the header of the first PDU;
in response to receiving a second PDU, facilitating retrieval of second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU;
facilitating generation of the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and
facilitating streaming of the generated second data stream conforming to the RDP to a local client.
16 Assignments
0 Petitions
Accused Products
Abstract
The processing of a first data stream to generate a second stream conforming to a remote desktop protocol (RDP) is described. Operations may include facilitating storage of first data from the first stream at a first index indicated in the first stream, facilitating retrieval of second data from a second index included in the first stream, and facilitating generation of the second stream conforming to the RDP and including the first and second data. Additionally, the processing of a third data stream conforming to the RDP to stream a fourth stream is described. Operations include facilitating processing of the third stream to identify a package data unit (PDU), facilitating storing of a hash value corresponding to the PDU, and facilitating generating an altered PDU for inclusion in the fourth stream and including an index identifying a location in memory storing the hash value.
40 Citations
40 Claims
-
1. A method for processing a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the method comprising:
-
facilitating processing of the first data stream received from the remote server to retrieve package data units (PDUs) associated with packet data, wherein each PDU associated with packet data has a header including an index value related to the packet data and indicative of a storage location; in response to receiving a first PDU including first packet data, the method comprising; facilitating decompression of the first packet data using a decompression algorithm; and facilitating storage of the decompressed first packet data in a location of a memory cache corresponding to the index value included in the header of the first PDU; in response to receiving a second PDU, facilitating retrieval of second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU; facilitating generation of the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and facilitating streaming of the generated second data stream conforming to the RDP to a local client. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for processing a first data stream conforming to a remote desktop protocol (RDP) to stream a second data stream to a remote client device, the method comprising:
-
facilitating processing of the first data stream conforming to the RDP to identify package data units (PDUs) including packet data and, for each PDU including packet data, to calculate a hash value from the packet data; facilitating a search, in a memory cache storing hash values, for a stored hash value matching the hash value calculated from the packet data, for each PDU including packet data; facilitating selectively storing in a location of the memory cache the hash value calculated from the packet data of a PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating selectively compressing the packet data of the PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating generating an altered PDU for each PDU of the first data stream including packet data, wherein the altered PDU includes a header having an index value indicative of the location in the memory cache storing the hash value calculated from the packet data or of a location in the memory cache storing the hash value matching the hash value calculated from the packet data, and wherein the altered PDU selectively includes the compressed packet data, if the search fails to find a stored hash value matching the calculated hash value; and facilitating streaming to the remote client device the second data stream including the generated altered PDU for each PDU of the first data stream including packet data. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A machine-readable storage medium encoded with instructions executable by one or more processors to perform one or more operations for processing a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the one or more operations comprising:
-
facilitating processing of the first data stream received from the remote server to retrieve package data units (PDUs) associated with packet data, wherein each PDU associated with packet data has a header including an index value related to the packet data and indicative of a storage location; in response to receiving a first PDU including first packet data, the one or more operations comprising; facilitating decompression of the first packet data using a decompression algorithm; and facilitating storage of the decompressed first packet data in a location of a memory cache corresponding to the index value included in the header of the first PDU; in response to receiving a second PDU, facilitating retrieval of second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU; facilitating generation of the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and facilitating streaming of the generated second data stream conforming to the RDP to a local client. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A machine-readable storage medium encoded with instructions executable by one or more processors to perform one or more operations for processing a first data stream conforming to a remote desktop protocol (RDP) to stream a second data stream to a remote client device, the one or more operations comprising:
-
facilitating processing of the first data stream conforming to the RDP to identify package data units (PDUs) including packet data and, for each PDU including packet data, to calculate a hash value from the packet data; facilitating a search, in a memory cache storing hash values, for a stored hash value matching the hash value calculated from the packet data, for each PDU including packet data; facilitating selectively storing in a location of the memory cache the hash value calculated from the packet data of a PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating selectively compressing the packet data of the PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating generating an altered PDU for each PDU of the first data stream including packet data, wherein the altered PDU includes a header having an index value indicative of the location in the memory cache storing the hash value calculated from the packet data or of a location in the memory cache storing the hash value matching the hash value calculated from the packet data, and wherein the altered PDU selectively includes the compressed packet data, if the search fails to find a stored hash value matching the calculated hash value; and facilitating streaming to the remote client device the second data stream including the generated altered PDU for each PDU of the first data stream including packet data. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A hardware apparatus for processing a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the hardware apparatus comprising:
one or more modules configured to perform one or more operations comprising; facilitating processing of the first data stream received from the remote server to retrieve package data units (PDUs) associated with packet data, wherein each PDU associated with packet data has a header including an index value related to the packet data and indicative of a storage location; in response to receiving a first PDU including first packet data, the one or more operations comprising; facilitating decompression of the first packet data using a decompression algorithm; and facilitating storage of the decompressed first packet data in a location of a memory cache corresponding to the index value included in the header of the first PDU; in response to receiving a second PDU, facilitating retrieval of second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU; facilitating generation of the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and facilitating streaming of the generated second data stream conforming to the RDP to a local client. - View Dependent Claims (22, 23, 24, 25)
-
26. A hardware apparatus for processing a first data stream conforming to a remote desktop protocol (RDP) to stream a second data stream to a remote client device, the hardware apparatus comprising:
one or more modules configured to perform one or more operations comprising; facilitating processing of the first data stream conforming to the RDP to identify package data units (PDUs) including packet data and, for each PDU including packet data, to calculate a hash value from the packet data; facilitating a search, in a memory cache storing hash values, for a stored hash value matching the hash value calculated from the packet data, for each PDU including packet data; facilitating selectively storing in a location of the memory cache the hash value calculated from the packet data of a PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating selectively compressing the packet data of the PDU, if the search fails to find a stored hash value matching the calculated hash value; facilitating generating an altered PDU for each PDU of the first data stream including packet data, wherein the altered PDU includes a header having an index value indicative of the location in the memory cache storing the hash value calculated from the packet data or of a location in the memory cache storing the hash value matching the hash value calculated from the packet data, and wherein the altered PDU selectively includes the compressed packet data, if the search fails to find a stored hash value matching the calculated hash value; and facilitating streaming to the remote client device the second data stream including the generated altered PDU for each PDU of the first data stream including packet data. - View Dependent Claims (27, 28, 29, 30)
-
31. An apparatus for processing a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the apparatus comprising:
-
means for facilitating processing of the first data stream received from the remote server to retrieve package data units (PDUs) associated with packet data, wherein each PDU associated with packet data has a header including an index value related to the packet data and indicative of a storage location; means for, in response to receiving a first PDU including first packet data, performing operations comprising; facilitating decompression of the first packet data using a decompression algorithm; and facilitating storage of the decompressed first packet data in a location of a memory cache corresponding to the index value included in the header of the first PDU; means for, in response to receiving a second PDU, facilitating retrieval of second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU; means for facilitating generation of the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and means for facilitating streaming of the generated second data stream conforming to the RDP to a local client. - View Dependent Claims (32, 33, 34, 35)
-
-
36. An apparatus for processing a first data stream conforming to a remote desktop protocol (RDP) to stream a second data stream to a remote client device, the apparatus comprising:
-
means for facilitating processing of the first data stream conforming to the RDP to identify package data units (PDUs) including packet data and, for each PDU including packet data, to calculate a hash value from the packet data; means for facilitating a search, in a memory cache storing hash values, for a stored hash value matching the hash value calculated from the packet data, for each PDU including packet data; means for facilitating selectively storing in a location of the memory cache the hash value calculated from the packet data of a PDU, if the search fails to find a stored hash value matching the calculated hash value; means for facilitating selectively compressing the packet data of the PDU, if the search fails to find a stored hash value matching the calculated hash value; means for facilitating generating an altered PDU for each PDU of the first data stream including packet data, wherein the altered PDU includes a header having an index value indicative of the location in the memory cache storing the hash value calculated from the packet data or of a location in the memory cache storing the hash value matching the hash value calculated from the packet data, and wherein the altered PDU selectively includes the compressed packet data, if the search fails to find a stored hash value matching the calculated hash value; and means for facilitating streaming to the remote client device the second data stream including the generated altered PDU for each PDU of the first data stream including packet data. - View Dependent Claims (37, 38, 39, 40)
-
Specification