IP Library Granted Patent US 7,542,471
Granted Patent B2
US 7,542,471 · App. 10/696,507 · Granted Jun 2, 2009

Method of determining path maximum transmission unit

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 7,542,471
App. No.
10/696,507
Granted
Jun 2, 2009
Kind
B2
Abstract

Network endpoints using TCP/IP operate to determine the maximum transmission unit (MTU) of the path between them. This determination is done so as to avoid the expensive IP fragmentation that will occur when transitioning links with a smaller MTU size. The standard method of determining the path MTU (PMTU) has several known deficiencies, including: inefficient use of bandwidth as proper operation will likely result in the loss of one or more packets and difficulty of implementation as the reverse channel communication mechanism, reception of ICMP messages indicating the discarding of unfragmentable packets, is frequently blocked by firewalls and other security apparatus. A method of determining the PMTU between intermediate proxies is disclosed that does not require reception of ICMP messages or the inefficient use of bandwidth due to the presumed dropping of packets with valid data.

Claims (37)

1. A method for performing by proxies discovery of a maximum transmission unit of a path between a client and a sewer in a more efficient manner, the method comprising the steps of:

(a) determining, by a first proxy, a size for a path maximum transmission unit (PMTU) for transmitting network packets between a client and a server by increasing a value of the PMTU by a predetermined percentage for each round-trip-time that elapses without receipt of an indication that fragmentation has occurred;

(b) repacketizing, by the first proxy, packets received from the client for transmission to the sewer into packet sizes in accordance with the size of the PMTU;

(c) transmitting, by the first proxy, the repacketized packets to the server;

(d) detecting, by a second proxy, a packet received from transmission of repacketized packets from the first proxy is fragmented; and

(e) transmitting, by the second proxy to the first proxy in response to the detection, an acknowledgement packet marked with an indicator that fragmentation has occurred.

2. The method of claim 1 , wherein step (a) comprises determining, by the first proxy, a value for the PMTU greater than the current value of the PMTU.

3. The method of claim 1 , wherein step (c) comprises transmitting, by the first proxy, the repacketized packets without one of prohibiting fragmentation or setting the defragmentation flag of the packet off.

4. The method of claim 1 , wherein step (e) comprises generating, by the second proxy, the acknowledgement packet to have a bit in a transport control protocol header set to indicate that fragmentation has occurred.

5. The method of claim 1 , wherein step (e) comprises generating, by the second proxy, the acknowledgement packet to have an option field in a transport control protocol header set to indicate that fragmentation has occurred.

6. The method of claim 1 , wherein step (e) comprises generating, by the second proxy, the acknowledgement packet to have a field in an internet protocol header set to indicate that fragmentation has occurred.

7. The method of claim 1 , comprising stopping, by the first proxy, PMTU discovery in response to receipt of the acknowledgement packet.

8. The method of claim 1 , comprising reducing, by the first proxy, the size of the PMTU in response to receipt of the acknowledgement packet.

9. The method of claim 8 , comprising transmitting, by the first proxy, repacketized client packets formed in accordance with the size of the decreased PMTU.

10. The method of claim 8 , comprising reducing the size of the PMTU by one-half.

11. The method of claim 1 , wherein step (a) comprising triggering the determination of the PMTU by the first proxy in response to one of receipt of the indicator that fragmentation has occurred or an elapse of time.

12. A system for performing by proxies discovery of a maximum transmission unit of a path between a client and a server in a more efficient manner, the system comprising:

a first proxy determining a size for a path maximum transmission unit (PMTU) for transmitting network packets between a client and a server by increasing a value of the PMTU by a predetermined percentage for each round-trip-time that elapses without receipt of an indication that fragmentation has occurred, repacketizing packets received from the client for transmission to the server into packet sizes in accordance with the size of the PMTU, and transmitting the repacketized packets to the server; and

a second proxy detecting a packet received from transmission of repacketized packets from the first proxy is fragmented, and transmitting to the first proxy in response to the detection of an acknowledgement packet marked with an indicator that fragmentation has occurred.

13. The system of claim 12 , wherein the first proxy establishes a value for the PMTU greater than the current value of the PMTU.

14. The system of claim 12 , wherein the first proxy transmits the repacketized packets without one of prohibiting fragmentation or setting the defragmentation flag of the packet off.

15. The system of claim 12 , the second proxy generates the acknowledgement packet to have a bit in a transport control protocol header set to indicate that fragmentation has occurred.

16. The system of claim 12 , the second proxy generates the acknowledgement packet to have an option field in a transport control protocol header set to indicate that fragmentation has occurred.

17. The system of claim 12 , the second proxy generates the acknowledgement packet to have a field in an internet protocol header set to indicate that fragmentation has occurred.

18. The system of claim 12 , wherein the first proxy stops PMTU discovery in response to receipt of the acknowledgement packet.

19. The system of claim 12 , wherein the first proxy the first proxy reduces the size of the PMTU in response to receipt of the acknowledgement packet.

20. The system of claim 12 , wherein the first proxy transmits repacketized client packets formed in accordance with the size of the decreased PMTU.

21. The system of claim 12 , wherein the reduced comprises one-half of the size of the PMTU.

22. The system of claim 12 , wherein the first proxy is triggered to perform PMTU discovery in response to one of receipt of the indicator that fragmentation has occurred or an elapse of time.

23. A method for performing by proxies discovery of a maximum transmission unit of a path between a client and a server in a more efficient manner, the method comprising the steps of:

(a) determining, by a first proxy, a size for a path maximum transmission unit (PMTU) for transmitting network packets between a client and a server, the size of the PMTU increased by a predetermined percentage for each round trip time that elapsed without receipt of an indicator that fragmentation has occurred;

(b) repacketizing, by the first proxy, packets received from the client for transmission to the sewer into packet sizes in accordance with the size of the PMTU;

(c) transmitting, by the first proxy, the repacketized packets to the server;

(d) detecting, by the second proxy, a packet received from transmission of repacketized packets from the first proxy is fragmented; and

(e) transmitting, by the second proxy to the first proxy in response to the detection, the acknowledgement packet marked with the indicator that fragmentation has occurred.

24. The method of claim 23 , further comprising not receiving, by the first proxy, during a next round-trip time a second acknowledgement packet, and determining, by the first proxy, to increase the value of the PMTU by the predetermined percentage.

25. The method of claim 23 , further comprising stopping, by the first proxy, PMTU discovery responsive to receiving the acknowledgment packet.

Assignments (10)
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: 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 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 15, 2011
From: ORBITAL DATA CORPORATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 027392/0357 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2004
From: SAMUELS, ALLEN; SUTTER, PAUL
To: ORBITAL DATA CORPORATION
Reel/Frame 014831/0591 →
Continuity (2)
Provisional Application 6042280100 · Oct 30, 2002
Related Publication 20050005024A1 · Jan 6, 2005