IP Library Granted Patent US 9,882,952
Granted Patent B2
US 9,882,952 · App. 14/808,771 · Granted Jan 30, 2018

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,882,952
App. No.
14/808,771
Granted
Jan 30, 2018
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 is 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 (58)

1. A hardware apparatus for processing data streams conforming to a remote desktop protocol (RDP), the hardware apparatus comprising:

a processing system enabled to access a memory media, wherein the memory media stores instructions executable by the processing system, the instructions for:

in response to receiving a connection request from a remote client device, establishing a first streaming connection to the remote client device, wherein the connection request identifies an RDP server executing on the hardware apparatus;

establishing a second streaming connection to the RDP server identified in the connection request, in response to receiving the connection request from the remote client;

receiving a first data stream conforming to the RDP from the remote client device;

from identified package data units (PDUs) including packet data in the first data stream, calculating a first hash value from the packet data;

when a second hash value matching the first hash value is not found in a memory cache storing hash values:

storing the first hash value in the memory; and

compressing the packet data to generate compressed packet data;

generating an altered PDU for each PDU of the first data stream, wherein the altered PDU includes a header having an index value indicative of a location in the memory cache storing the first hash value, and wherein the altered PDU includes the compressed packet data, when generated; and

streaming, to the remote client device, a second data stream including the altered PDU.

2. The hardware apparatus of claim 1 , wherein the second data stream does not conform to the RDP.

3. The hardware apparatus of claim 1 , wherein prior to streaming the second data stream, the instructions are for:

generating a third data stream including the altered PDU for each PDU of the first data stream including packet data, and at least one PDU of the first data stream that does not include packet data;

compressing the third data stream; and

encrypting the third data stream compressed to generate the second data stream.

4. The hardware apparatus of claim 1 , wherein compressing the packet data comprises compressing the packet data using a JPEG image compression algorithm.

5. The hardware apparatus of claim 1 , wherein a virtual desktop accelerator server establishes the second streaming connection and generates the altered PDU, and wherein streaming the second data stream further comprises:

establishing a third streaming connection from the virtual desktop accelerator server with a virtual desktop accelerator client at the remote client device; and

streaming the second data stream from the virtual desktop accelerator server to the virtual desktop accelerator client via the third streaming connection.

6. A method for processing for processing data streams conforming to a remote desktop protocol (RDP), the method comprising:

in response to receiving a connection request from a remote client device at a server device, establishing a first streaming connection to the remote client device, wherein the connection request identifies an RDP server executing locally on the server device;

establishing a second streaming connection to the RDP server identified in the connection request, in response to receiving the connection request from the remote client;

receiving a first data stream conforming to the RDP from the remote client device;

from identified package data units (PDUs) including packet data in the first data stream, calculating a first hash value from the packet data;

when a second hash value matching the first hash value is not found in a memory cache storing hash values:

storing the first hash value in the memory; and

compressing the packet data to generate compressed packet data;

generating an altered PDU for each PDU of the first data stream, wherein the altered PDU includes a header having an index value indicative of a location in the memory cache storing the first hash value, and wherein the altered PDU includes the compressed packet data, when generated; and

streaming, to the remote client device, a second data stream including the altered PDU.

7. The method of claim 6 , wherein the second data stream does not conform to the RDP.

8. The method of claim 6 , wherein prior to streaming the second data stream, the method comprises:

generating a third data stream including the altered PDU for each PDU of the first data stream including packet data, and at least one PDU of the first data stream that does not include packet data;

compressing the third data stream; and

encrypting the third data stream compressed to generate the second data stream.

9. The method of claim 6 , wherein compressing the packet data comprises compressing the packet data using a JPEG image compression algorithm.

10. The method of claim 6 , wherein a virtual desktop accelerator server establishes the second streaming connection and generates the altered PDU, and wherein streaming the second data stream further comprises:

establishing a third streaming connection from the virtual desktop accelerator server with a virtual desktop accelerator client at the remote client device; and

streaming the second data stream from the virtual desktop accelerator server to the virtual desktop accelerator client via the third streaming connection.

11. A non-transitory computer-readable memory media for processing data streams conforming to a remote desktop protocol (RDP), the memory media storing instructions executable by a processor for:

in response to receiving a connection request from a remote client device at a server device, establishing a first streaming connection to the remote client device, wherein the connection request identifies an RDP server executing locally on the server device;

establishing a second streaming connection to the RDP server identified in the connection request, in response to receiving the connection request from the remote client;

receiving a first data stream conforming to the RDP from the remote client device;

from identified package data units (PDUs) including packet data in the first data stream, calculating a first hash value from the packet data;

when a second hash value matching the first hash value is not found in a memory cache storing hash values:

storing the first hash value in the memory; and

compressing the packet data to generate compressed packet data;

generating an altered PDU for each PDU of the first data stream, wherein the altered PDU includes a header having an index value indicative of a location in the memory cache storing the first hash value, and wherein the altered PDU includes the compressed packet data, when generated; and

streaming, to the remote client device, a second data stream including the altered PDU.

12. The memory media of claim 11 , wherein the second data stream does not conform to the RDP.

13. The memory media of claim 11 , wherein prior to streaming the second data stream, the memory includes instructions for:

generating a third data stream including the altered PDU for each PDU of the first data stream including packet data, and at least one PDU of the first data stream that does not include packet data;

compressing the third data stream; and

encrypting the third data stream compressed to generate the second data stream.

14. The memory media of claim 11 , wherein compressing the packet data comprises compressing the packet data using a JPEG image compression algorithm.

15. The memory media of claim 11 , wherein a virtual desktop accelerator server establishes the second streaming connection and generates the altered PDU, and wherein streaming the second data stream further comprises:

establishing a third streaming connection from the virtual desktop accelerator server with a virtual desktop accelerator client at the remote client device; and

streaming the second data stream from the virtual desktop accelerator server to the virtual desktop accelerator client via the third streaming connection.

Assignments (16)
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: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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 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 036502 FRAME 0237 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0088 →
RELEASE OF REEL 036502 FRAME 0291 (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.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0637 →
RELEASE OF REEL 036502 FRAME 0206 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0204 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036502/0291 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036502/0237 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036502/0206 →
CHANGE OF NAME Recorded Jul 24, 2015
From: WYSE TECHNOLOGY INC.
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 036178/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: JAIN, GOUTHAM VASTIMAL; BASHA P R, KHADER; DESAI, PARAMTAP
To: WYSE TECHNOLOGY INC.
Reel/Frame 036173/0818 →