IP Library Granted Patent US 8,014,421
Granted Patent B2
US 8,014,421 · App. 12/560,154 · Granted Sep 6, 2011

Systems and methods for adjusting the maximum transmission unit by an intermediary device

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,014,421
App. No.
12/560,154
Filed
Sep 15, 2009
Granted
Sep 6, 2011
Kind
B2
Examiner
TRAN, TUNG Q
Art Unit
2473
USPC
370/470
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 invention 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 (48)

1. A method for adjusting a maximum transmission unit of a plurality of network packets, the method comprising:

establishing, by an intermediary deployed between a client and a server, a connection between the client and the server, the intermediary performing encryption of a plurality of network packets for the connection traversing the intermediary;

receiving, by the intermediary, a plurality of network packets via the connection from the server destined for the client, the plurality of network packets transmitted to the server in accordance with a maximum transmission unit;

determining, by the intermediary, an encryption overhead for encryption performed by the intermediary on each of the plurality of network packets;

adjusting, by the intermediary, the maximum transmission unit by at least a size of an encryption overhead of a network packet of the plurality of network packets of the connection having a largest encryption overhead; and

transmitting, by the intermediary, the plurality of network packets to the client via the connection in accordance with the adjusted maximum transmission unit.

2. The method of claim 1 , further comprising:

determining, by the intermediary, a second encryption overhead for encryption performed by the intermediary on a second network packet, the second network packet of the plurality of network packets;

readjusting, by the intermediary, the adjusted maximum transmission unit by at least a second size of the second encryption overhead of the second network packet, in response to determining that the second size of the second encryption overhead of the second network packet is greater than the size of the encryption overhead of the network packet; and

transmitting, by the intermediary, the second network packet to the client via the connection in accordance with the readjusted maximum transmission unit.

3. The method of claim 2 , further comprising transmitting, by the intermediary, one or more network packets subsequent to the second network packet in accordance with the readjusted maximum transmission unit.

4. The method of claim 1 , further comprising:

receiving, by the intermediary, a second plurality of network packets via the connection from the server destined for the client, the plurality of network packets transmitted to the server in accordance with the adjusted maximum transmission unit;

determining, by the intermediary, a second encryption overhead for encryption performed by the intermediary on each of the second plurality of network packets;

readjusting, by the intermediary, the adjusted maximum transmission unit by at least a second size of the second encryption overhead of a second network packet of the second plurality of network packets, responsive to determining that the second size of the encryption overhead of the second network packet is greater than the size of the encryption overhead of the network packet; and

transmitting, by the intermediary, the second plurality of network packets to the client via the connection in accordance with the readjusted maximum transmission unit.

5. The method of claim 1 , further comprising receiving, by the intermediary, the network packet comprising encrypted payload.

6. The method of claim 5 , further comprising detecting, by the intermediary, the encrypted payload of the network packet based on a flag of the network packet.

7. The method of claim 5 , further comprising detecting, by the intermediary, the encrypted payload of the network packet based on a determination by a remote access client that the payload of the network packet is unintelligible.

8. The method of claim 1 , further comprising receiving, by the intermediary, the plurality of network packets encrypted in association with a layer of a network stack of a server.

9. The method of claim 1 , further comprising establishing, by the intermediary, the connection comprising one of a secure socket layer or a transport layer security tunnel.

10. The method of claim 1 , further comprising receiving, by the intermediary, the plurality of network packets, at least one packet of the plurality of network packets having a payload comprising a real-time protocol.

11. The method of claim 1 , further comprising receiving, by the intermediary, the plurality of network packets, at least one packet of the plurality of network packets comprising one of a real-time audio payload or a video payload.

12. The method of claim 1 , further comprising further adjusting the maximum transmission unit to account for a network performance factor.

13. A system for adjusting a maximum transmission unit of a plurality of network packets, the system comprising:

an intermediary deployed between a client and a server establishing a connection between the client and the server and performing encryption of a plurality of network packets for the connection traversing the intermediary;

the intermediary receiving a plurality of network packets via the connection from the server destined for the client, the plurality of network packets transmitted to the server in accordance with a maximum transmission unit;

the intermediary determining an encryption overhead for encryption performed by the intermediary on each of the plurality of network packets;

the intermediary adjusting the maximum transmission unit by at least a size of an encryption overhead of a network packet of the plurality of network packets of the connection having a largest encryption overhead; and

the intermediary transmitting the plurality of network packets to the client via the connection in accordance with the adjusted maximum transmission unit.

14. The system of claim 13 , further comprising:

the intermediary determining a second encryption overhead for encryption performed by the intermediary on a second network packet, the second network packet of the plurality of network packets;

the intermediary readjusting the adjusted maximum transmission unit by at least a second size of the second encryption overhead of the second network packet, in response to determining that the second size of the second encryption overhead of the second network packet is greater than the size of the encryption overhead of the network packet; and

the intermediary transmitting the second network packet to the client via the connection in accordance with the readjusted maximum transmission unit.

15. The system of claim 14 , further comprising the intermediary transmitting one or more network packets subsequent to the second network packet in accordance with the readjusted maximum transmission unit.

16. The system of claim 13 , further comprising:

the intermediary receiving a second plurality of network packets via the connection from the server destined for the client, the plurality of network packets transmitted to the server in accordance with the adjusted maximum transmission unit;

the intermediary determining a second encryption overhead for encryption performed by the intermediary on each of the second plurality of network packets;

the intermediary readjusting the adjusted maximum transmission unit by at least a second size of the second encryption overhead of a second network packet of the second plurality of network packets, responsive to determining that the second size of the encryption overhead of the second network packet is greater than the size of the encryption overhead of the network packet; and

the intermediary transmitting the second plurality of network packets to the client via the connection in accordance with the readjusted maximum transmission unit.

17. The system of claim 13 , further comprising the intermediary receiving the network packet comprising encrypted payload.

18. The system of claim 17 , further comprising the intermediary detecting the encrypted payload of the network packet based on a flag of the network packet.

19. The system of claim 17 , further comprising the intermediary detecting the encrypted payload of the network packet based on a determination by a remote access client that the payload of the network packet is unintelligible.

20. The system of claim 13 , further comprising the intermediary receiving the plurality of network packets encrypted in association with a layer of a network stack of a server.

21. The system of claim 13 , further comprising the intermediary establishing the connection comprising one of a secure socket layer or a transport layer security tunnel.

22. The system of claim 13 , further comprising the intermediary receiving the plurality of network packets, at least one packet of the plurality of network packets having a payload comprising a real-time protocol.

23. The system of claim 13 , further comprising the intermediary receiving the plurality of network packets, at least one packet of the plurality of network packets comprising one of a real-time audio payload or a video payload.

24. The system of claim 13 , further comprising the intermediary adjusting the maximum transmission unit to account for a network performance factor.

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 Mar 31, 2011
From: RAO, GOUTHAM P.; RODRIGUEZ, ROBERT; BRUEGGEMANN, ERIC R.
To: CITRIX SYSTEMS, INC.
Reel/Frame 026058/0433 →
Continuity (6)
Continuation 11188279 · Jul 22, 2005
Provisional Application 60608814 · Sep 10, 2004
Provisional Application 60607420 · Sep 3, 2004
Provisional Application 60601431 · Aug 13, 2004
Provisional Application 60590837 · Sep 15, 2009
Related Publication 20100005288A1 · Jan 7, 2010