IP Library Granted Patent US 8,046,830
Granted Patent B2
US 8,046,830 · App. 11/187,512 · Granted Oct 25, 2011

Systems and methods for network disruption shielding techniques

Assignee: Citrix Systems, Inc.
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 8,046,830
App. No.
11/187,512
Granted
Oct 25, 2011
Kind
B2
Abstract

The present invention is generally directed towards a remote access architecture for providing peer-to-peer communications and remote access connectivity. In one embodiment, the remote access architecture of the present provides a method for establishing a direct connection between peer computing devices via a third computing device, such as a gateway. Additionally, the present invention provides the following techniques to optimize peer-to-peer communications: 1) false acknowledgement of receipt of network packets allowing communications via a lossless protocol of packets constructed for transmission via a lossy protocol, 2) payload shifting of network packets allowing communications via a lossless protocol of packets constructed for transmission via a lossy protocol, 3) reduction of packet fragmentation by adjusting the maximum transmission unit (MTU) parameter, accounting for overhead due to encryption, 4) application-aware prioritization of client-side network communications, and 5) network disruption shielding for reliable and persistent network connectivity and access.

Claims (52)

1. A method for shielding from a network disruption a session established via a first protocol, the method comprising:

(a) establishing, via an agent of a client, for an application executing on the client a session via a first protocol over a transport layer network connection between the client and a device, the transport layer network connection associated with a network stack operating on the client, a first portion of the network stack comprises one or more layers of the network stack below a layer of the first protocol, and a second portion of the network stack comprises a layer for the first protocol and one or more layers of the network stack above the first protocol;

(b) detecting a disruption in the transport layer network connection causing the first portion of the network stack to be disestablished;

(c) maintaining, by the agent transparently to the application, the session of the application and the second portion of the network stack during the disruption; and

(d) re-establishing, by the client transparently to the application, the first portion of the network stack and the transport layer network connection while the agent maintains the session of the application and the second portion of the network stack.

2. The method of claim 1 , comprising:

(e) continuing the session with the maintained second portion of the network stack and the re-established first portion of the network stack.

3. The method of claim 1 , comprising

(e) dropping, by the second portion of the network stack, any network packets received during the disruption.

4. The method of claim 1 , wherein the device comprises one of a remote access gateway or a computing device.

5. The method of claim 1 , further comprising establishing the session via the first protocol of one of the following: secure socket layer (SSL) protocol, a transport layer security (TLS) protocol, and a tunneling protocol.

6. The method of claim 1 , comprising communicating, by the agent, real-time data via the session between the client and the device.

7. The method of claim 6 , wherein the real-time data comprises a real-time protocol.

8. The method of claim 6 , wherein the real-time data comprises a representation of one of voice or audio.

9. The method of claim 1 , comprising operating the agent in user-mode of an operating system of the client.

10. The method of claim 1 , wherein the first portion of the network comprises one of a transport control protocol or an internet protocol.

11. The method of claim 1 , wherein the second portion of the network stack comprises one of an internet protocol, a user datagram protocol, or a voice over internet protocol.

12. The method of claim 1 , comprising the client communicating with the device via a remote display protocol.

13. The method of claim 12 , wherein the remote display protocol comprises one of an Independent Computing Architecture protocol or a Remote Desktop protocol.

14. The method of claim 1 , comprising performing one of steps (b), (c) and (d) transparently to an application of the client communicating via the network connection.

15. The method of claim 1 , comprising intercepting, by the agent, transparently to an application of the client one or more network packets associated with the application.

16. The method of claim 1 , comprising intercepting, by a network driver associated with the second portion of the stack, transparently to the application on the client one or more network packets associated with the application.

17. A system for shielding from a network disruption a session established via a first protocol, the system comprising

an agent of a client establishing for an application executing on the client a session between the client and a device over a transport layer network connection via a first protocol;

a network stack operating on the client, the network stack having a first portion and a second portion, the first portion of the network stack comprising one or more layers of the network stack below the layer of the first protocol, and the second portion of the network stack comprising a layer for the first protocol and one or more layers of the network stack above the first protocol; and

a detector for detecting a disruption in the transport layer network connection causing the second portion of the network stack to be disestablished;

wherein:

upon detection of the disruption by the detector, the agent transparently to the application maintains the session of the application and the second portion of the network stack during the disruption; and

the client re-establishes transparently to the application the first portion of the network stack and the transport layer network connection while the agent maintains the session of the application and the second portion of the network stack.

18. The system of claim 17 , wherein the agent continues the session with the maintained second portion of the network stack and the re-established first portion of the network stack.

19. The system of claim 17 , wherein one of the first portion or the second portion of the network stack drops any network packets received during the disruption.

20. The system of claim 17 , wherein the device comprises one of a remote access gateway or a computing device.

21. The system of claim 17 , wherein the first protocol comprises one of the following: secure socket layer (SSL) protocol, a transport layer security (TLS) protocol, and a tunneling protocol.

22. The system of claim 17 , wherein the agent communicates real-time data via the session between the client and the device.

23. The system of claim 22 , wherein the real-time data comprises one of a real-time protocol.

24. The system of claim 22 , wherein the real-time data comprises a representation of one of voice or audio.

25. The system of claim 17 , wherein the agent operates in user-mode of an operating system of the client.

26. The system of claim 17 , wherein the first portion of the network stack comprises one of a transport control protocol or an internet protocol.

27. The system of claim 17 , wherein the second portion of the network stack comprises one of an internet protocol, a user datagram protocol, or a voice over internet protocol.

28. The system of claim 17 , wherein the first protocol comprises a remote display protocol.

29. The system of claim 28 , wherein the remote display protocol comprises one of an Independent Computing Architecture protocol or a Remote Desktop protocol.

30. The system of claim 17 , wherein the agent intercepts one or more network packets of an application of the client transparently to the application.

31. The system of claim 17 , comprising a network driver associated with the second portion of the network stack, the network driver intercepts one or more network packets of an application of the client transparently to the application, and provides the one or more packets to the agent to communicate via the session.

32. The system of claim 31 , wherein the network driver comprises a Network Driver Interface Specification (NDIS) driver.

33. The system of claim 31 , wherein the network driver operates in kernel-mode of an operating system of the client.

34. A method for shielding from a network disruption a session established via a first protocol, the method comprising the steps of:

(a) establishing, via an agent of a client, for an application executing on the client a session via a first protocol over a transport layer network connection between the client and a device, the transport layer network connection associated with a network stack operating on the client, a first portion of the network stack comprises one or more layers of the network stack below a layer of the first protocol, and a second portion of the network stack comprises a layer for the first protocol and one or more layers of the network stack above the first protocol;

b) initiating, by the application, a transaction of the first protocol layer with the device via the session;

(c) detecting a disruption in the transport layer network connection causing the first portion of the network stack to be disestablished;

(d) maintaining, by the agent transparently to a user of the application, the session of the application and a driver operating in the second portion of the network stack intact during the disruption; and

(e) re-establishing, by the client transparently to the user of the application, the first portion of the network stack and the transport layer network connection while the agent maintains the session and the second portion of the network stack; and

(f) continuing, by the application of the client, to execute the transaction of the first protocol layer, without interruption, via the session to the device.

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 →
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 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 →
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 →
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 →
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 Nov 2, 2005
From: RAO, GOUTHAM P.; RODRIGUEZ, ROBERT A.; BRUEGGEMANN, ERIC R.
To: CITRIX SYSTEMS, INC.
Reel/Frame 016972/0677 →
Continuity (5)
Provisional Application 60590837 · Jul 23, 2004
Provisional Application 60601431 · Aug 13, 2004
Provisional Application 60607420 · Sep 3, 2004
Provisional Application 60608814 · Sep 10, 2004
Related Publication 20060037072A1 · Feb 16, 2006