IP Library Granted Patent US 9,094,374
Granted Patent B2
US 9,094,374 · App. 14/190,985 · Granted Jul 28, 2015

Bandwidth optimization for remote desktop protocol

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,094,374
App. No.
14/190,985
Granted
Jul 28, 2015
Kind
B2
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.

Claims (51)

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.

2. The method of claim 1 , wherein prior to facilitating processing of the first data stream, the method comprises:

facilitating interception of a connection request transmitted from the local client to establish a streaming connection conforming to the RDP with the remote server, the connection request identifying the remote server; and

in response to facilitating interception of the connection request, facilitating establishment of a streaming connection with the remote server identified in the connection request to receive the first data stream from the remote server.

3. The method of claim 1 , wherein the first data stream does not conform to the RDP.

4. The method of claim 1 , wherein prior to facilitating processing of the first data stream, the method comprises:

facilitating decryption of the first data stream received from the remote server; and

facilitating bulk decompression of the decrypted first data stream, following the facilitating decryption of the first data stream,

wherein the facilitating generation of the second data stream comprises facilitating generation of the second data stream including the decompressed first packet data, the retrieved second packet data, and at least one PDU from the bulk decompressed decrypted first data stream.

5. The method of claim 1 , wherein the first packet data is first image data, and wherein the facilitating decompression of the first packet data comprises facilitating decompression of the first image data using a Joint Photographic Experts Group (JPEG) image decompression algorithm having one of a visually lossy, visually lossless, and lossless decompression mode.

6. A non-transitory computer-readable storage medium encoded with instructions executable by a processor to process a first data stream received from a remote server to generate a second data stream conforming to a remote desktop protocol (RDP), the instructions 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;

in response to receiving a first PDU including first packet data, the instructions including instructions for:

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.

7. The computer-readable storage medium of claim 6 , wherein prior to facilitating processing of the first data stream, the instructions include instructions for:

facilitating interception of a connection request transmitted from the local client to establish a streaming connection conforming to the RDP with the remote server, the connection request identifying the remote server; and

in response to facilitating interception of the connection request, facilitating establishment of a streaming connection with the remote server identified in the connection request to receive the first data stream from the remote server.

8. The computer-readable storage medium of claim 6 , wherein the first data stream does not conform to the RDP.

9. The computer-readable storage medium of claim 6 , wherein prior to facilitating processing of the first data stream, the instructions include instructions for:

facilitating decryption of the first data stream received from the remote server; and

facilitating bulk decompression of the decrypted first data stream, following the facilitating decryption of the first data stream,

wherein the facilitating generation of the second data stream comprises facilitating generation of the second data stream including the decompressed first packet data, the retrieved second packet data, and at least one PDU from the bulk decompressed decrypted first data stream.

10. The computer-readable storage medium of claim 6 , wherein the first packet data is first image data, and wherein the facilitating decompression of the first packet data comprises facilitating decompression of the first image data using a Joint Photographic Experts Group (JPEG) image decompression algorithm having one of a visually lossy, visually lossless, and lossless decompression mode.

11. 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 a processor having access to memory media, the memory media storing instructions executable by the processor, the instructions including instructions for:

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 instructions including instructions for

decompressing the first packet data using a decompression algorithm; and

storing 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, retrieving second packet data from a location of the memory cache corresponding to the index value included in the header of the second PDU;

generating the second data stream conforming to the RDP and including the decompressed first packet data and the retrieved second packet data; and

streaming the generated second data stream conforming to the RDP to a local client.

12. The apparatus of claim 11 , wherein the instructions include instructions for:

prior to processing the first data stream:

intercepting a connection request transmitted from the local client to establish a streaming connection conforming to the RDP with the remote server, the connection request identifying the remote server; and

in response to intercepting the connection request, establishing a streaming connection with the remote server identified in the connection request to receive the first data stream from the remote server.

13. The apparatus of claim 11 , wherein the first data stream does not conform to the RDP.

14. The apparatus of claim 11 , wherein prior to processing the first data stream, the instructions including instructions for:

decrypting the first data stream received from the remote server; and

bulk decompressing the decrypted first data stream, wherein the generating the second data stream comprises generating the second data stream including the decompressed first packet data, the retrieved second packet data, and at least one PDU from the bulk decompressed decrypted first data stream.

15. The apparatus of claim 11 , wherein the first packet data is first image data, and wherein the facilitating decompression of the first packet data comprises facilitating decompression of the first image data using a Joint Photographic Experts Group (JPEG) image decompression algorithm having one of a visually lossy, visually lossless, and lossless decompression mode.

Assignments (17)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 13, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 060064/0586 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 032810 FRAME 0038 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040027/0686 →
RELEASE OF REEL 032809 FRAME 0987 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040026/0953 →
RELEASE OF REEL 032810 FRAME 0023 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040014/0320 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032810/0023 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032809/0987 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 032810/0038 →
CHANGE OF NAME Recorded Feb 26, 2014
From: WYSE TECHNOLOGY INC.
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 032360/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2014
From: JAIN, GOUTHAM VASTIMAL; BASHA P R, KHADER; DESAI, PARAMTAP
To: WYSE TECHNOLOGY INC.
Reel/Frame 032305/0709 →