IP Library › Granted Patent US 9,083,759
Granted Patent B2
US 9,083,759 · App. 12/709,172 · Granted Jul 14, 2015

Systems and methods for intermediaries to compress data communicated via a remote display protocol

Inventors: Richard Jensen (Saratoga, CA); Allen Samuels (San Jose, CA); Justin Bullard (Wilton Manors, FL); Henry Collins (High Wycombe, GB)
Assignee: CITRIX SYSTEMS, INC.
H04L69/24H04L67/28H04L67/2842H04L67/04H04L67/08
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,083,759
App. No.
12/709,172
Filed
Feb 19, 2010
Granted
Jul 14, 2015
Kind
B2
Art Unit
2457
USPC
709/203
Abstract

The present solution automatically detects the remote display protocol capabilities of the client, server and/or intermediaries to determine whether the client and server should compress the remote display protocol data or the intermediaries, and in some cases both.

Claims (30)

1. A method for determining to have intermediaries perform compression of a remote display protocol communicated between a client and a server, the method comprising:

a) transmitting, by a client to a server via a first intermediary and a second intermediary, a communication identifying remote display protocol capabilities of the client, each of the first intermediary and the second intermediary modifying the communication to identify their respective remote display protocol capabilities;

b) determining, by the server from the communication forwarded via the first intermediary and the second intermediary, remote display protocol capabilities of each of the client, the first intermediary and the second intermediary support a predetermined version of the remote display protocol;

c) transmitting, by the server to the client responsive to the determination, a second communication identifying that the client and server are not to perform compression on remote display protocol communications;

d) compressing, by the first intermediary, data communicated by the server to the client via the remote display protocol and forwarding the compressed data to the second intermediary; and

e) uncompressing, by the second intermediary, the compressed data and forwarding the uncompressed data to the client via the remote display protocol.

2. The method of claim 1 , wherein step (a) further comprises initiating, by the server, via the communication a handshake transaction of the remote display protocol to negotiate capabilities between the client and the server.

3. The method of claim 1 , wherein step (a) further comprises identifying, by the client, via the communication a version of the remote display protocol supported by the client.

4. The method of claim 1 , wherein step (b) further comprises modifying, by the first intermediary, the communication to identify a version of the remote display protocol supported by the first intermediary.

5. The method of claim 1 , wherein step (c) further comprises modifying, by the second intermediary, the communication to identify a version of the remote display protocol supported by second intermediary.

6. The method of claim 1 , wherein step (c) further comprises transmitting, by the server to the client, the second communication as part of a handshake transaction of the remote display protocol to negotiate capabilities between the client and the server.

7. The method of claim 1 , further comprises receiving by the first intermediary a first frame of data via a first session of the remote display protocol between the client and the server and storing portions of the first frame to a first compression history.

8. The method of claim 7 , further comprises receiving, by the second intermediary, the first frame forwarded by the first intermediary and storing portions of the first frame to a second compression history, content of the first compression history is shared by the second compression history.

9. The method of claim 8 , further comprising receiving, by the first intermediary, via a second session of the remote display protocol a second frame of data and compressing, by the first intermediary, portions of data of the second frame of the second session using portions of data the first frame of the first session stored in the first compression history.

10. The method of claim 1 , wherein step (d) further comprising communicating, by the first intermediary connected to a first network of the client, the compressed data via a second protocol, different than the remote display protocol, to the second intermediary connected to a second network of the client.

11. A method for determining to have intermediaries perform compression of a remote display protocol communicated between a client and a server, the method comprising:

a) transmitting, by a server to a client via a first intermediary and a second intermediary, a communication identifying remote display protocol capabilities of the client, each of the first intermediary and the second intermediary modifying the communication to identify their respective remote display protocol capabilities;

b) determining, by the client from the communication forwarded via the first intermediary and the second intermediary, remote display protocol capabilities of each of the server, the first intermediary and the second intermediary support a predetermined version of the remote display protocol;

c) transmitting, by the client to the server responsive to the determination, a second communication identifying that the client and server are not to perform compression on remote display protocol communications;

d) compressing, by the first intermediary, data communicated by the server to the client via the remote display protocol and forwarding the compressed data to the second intermediary; and

e) uncompressing, by the second intermediary, the compressed data and forwarding the uncompressed data to the client via the remote display protocol.

12. The method of claim 11 , wherein step (a) further comprises initiating, by the client, via the communication a handshake transaction of the remote display protocol to negotiate capabilities between the client and the server.

13. The method of claim 11 , wherein step (a) further comprises identifying, by the server, via the communication a version of the remote display protocol supported by the server.

14. The method of claim 11 , wherein step (b) further comprises modifying, by the first intermediary, the communication to identify a version of the remote display protocol supported by the first intermediary.

15. The method of claim 11 , wherein step (c) further comprises modifying, by the second intermediary, the communication to identify a version of the remote display protocol supported by second intermediary.

16. The method of claim 11 , wherein step (c) further comprises transmitting, by the client to the server, the second communication as part of a handshake transaction of the remote display protocol to negotiate capabilities between the client and the server.

17. The method of claim 11 , further comprises receiving by the first intermediary a first frame of data via a first session of the remote display protocol between the client and the server and storing portions of the first frame to a first compression history.

18. The method of claim 17 , further comprises receiving, by the second intermediary, the first frame forwarded by the first intermediary and storing portions of the first frame to a second compression history, content of the first compression history is shared by the second compression history.

19. The method of claim 18 , further comprising receiving, by the first intermediary, via a second session of the remote display protocol a second frame of data and compressing, by the first intermediary, portions of data of the second frame of the second session using portions of data the first frame of the first session stored in the first compression history.

20. The method of claim 11 , wherein step (d) further comprising communicating, by the first intermediary connected to a first network of the client, the compressed data via a second protocol, different than the remote display protocol, to the second intermediary connected to a second network of the client.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: JENSEN, RICHARD; SAMUELS, ALLEN; BULLARD, JUSTIN; COLLINS, HENRY
To: CITRIX SYSTEMS, INC.
Reel/Frame 029114/0809 →
Continuity (2)
Provisional Application 61154120 · Feb 20, 2009
Related Publication 20100241694A1 · Sep 23, 2010