IP Library Granted Patent US 11,677,675
Granted Patent B2
US 11,677,675 · App. 17/509,983 · Granted Jun 13, 2023

Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel

Inventors: Nicholas Alexander Wondra (Savoy, IL); Erich Alfred Heine (Champaign, IL); Yan Zhai (Champaign, IL)
Assignee: CLOUDFLARE, INC.
H04L47/36H04L12/4633H04L2212/00
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 11,677,675
App. No.
17/509,983
Granted
Jun 13, 2023
Kind
B2
Abstract

Path MTU determination in Generic Routing Encapsulation (GRE) tunnel is presented. A source network device transmits, to a destination network device that is a second endpoint of the GRE tunnel, multiple GRE encapsulated packets that include multiple inner packets respectively, where each inner packet has an inner header used to deliver that inner packet to the source network device and a different payload, and where each of these GRE encapsulated packets has a different size. The source network device receives a first portion of the inner packets from the destination network device and does not receive a second portion of the inner packets. The source network device determines a path MTU to the destination network device based on the size of the GRE encapsulated packet with a largest size for which a corresponding inner packet is received at the source network device from the destination network device.

Claims (47)

1. A method in a source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel, the method comprising:

transmitting, to a destination network device that is a second endpoint of the GRE tunnel, a plurality of GRE encapsulated packets that include a plurality of inner packets respectively, wherein each of the plurality of inner packets has an inner header used to deliver that inner packet to the source network device and a different payload, and wherein each of the plurality of GRE encapsulated packets has a different size;

receiving, at the source network device, a first portion of the plurality of inner packets from the destination network device;

determining, at the source network device, that a different second portion of the plurality of inner packets are not received; and

determining a path maximum transmission unit (MTU) for a path between the source network device and the destination network device based on a largest size of the transmitted GRE encapsulated packets for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

2. The method of claim 1 , wherein the path MTU is set to be no greater than the largest size of the GRE encapsulated packet for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

3. The method of claim 1 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size that is expected to be able to be delivered to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with increasing size until not responded by the destination network device.

4. The method of claim 1 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size such that any larger size is not expected to be deliverable to the destination network device through a path to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with decreasing size until responded by the destination network device.

5. The method of claim 4 , wherein the size such that any larger size is not expected to be deliverable to the destination network device through the path to the destination network device is equal to a TCP maximum segment size (MSS).

6. The method of claim 1 , wherein determining that the different second portion of the plurality of inner packets are not received includes retransmitting the corresponding GRE encapsulated packets a predefined number of times without receiving a reply.

7. The method of claim 1 , wherein each inner packet is a GRE encapsulated packet that is configured to be transmitted from the destination network device to the source network device.

8. A source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel, the source network device comprising:

one or more processors; and

non-transitory machine-readable storage media coupled with the one or more processors that store instructions that, when executed by the one or more processors, cause the source network device to perform operations including:

transmitting, to a destination network device that is a second endpoint of the GRE tunnel, a plurality of GRE encapsulated packets that include a plurality of inner packets respectively, wherein each of the plurality of inner packets has an inner header used to deliver that inner packet to the source network device and a different payload, and wherein each of the plurality of GRE encapsulated packets has a different size;

receiving, at the source network device, a first portion of the plurality of inner packets from the destination network device;

determining, at the source network device, that a different second portion of the plurality of inner packets are not received; and

determining a path maximum transmission unit (MTU) for a path between the source network device and the destination network device based on a largest size of the transmitted GRE encapsulated packets for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

9. The source network device of claim 8 , wherein the path MTU is set to be no greater than the largest size of the GRE encapsulated packet for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

10. The source network device of claim 8 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size that is expected to be able to be delivered to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with increasing size until not responded by the destination network device.

11. The source network device of claim 8 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size such that any larger size is not expected to be deliverable to the destination network device through a path to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with decreasing size until responded by the destination network device.

12. The source network device of claim 11 , wherein the size such that any larger size is not expected to be deliverable to the destination network device through the path to the destination network device is equal to a TCP maximum segment size (MSS).

13. The source network device of claim 8 , wherein determining that the different second portion of the plurality of inner packets are not received includes retransmitting the corresponding GRE encapsulated packets a predefined number of times without receiving a reply.

14. The source network device of claim 8 , wherein each inner packet is a GRE encapsulated packet that is configured to be transmitted from the destination network device to the source network device.

15. A non-transitory computer readable storage medium that stores instructions which when executed by one or more processors of a source network device that is a first endpoint of a Generic Routing Encapsulation (GRE) tunnel cause said processors to perform the following operations:

transmitting, to a destination network device that is a second endpoint of the GRE tunnel, a plurality of GRE encapsulated packets that include a plurality of inner packets respectively, wherein each of the plurality of inner packets has an inner header used to deliver that inner packet to the source network device and a different payload, and wherein each of the plurality of GRE encapsulated packets has a different size;

receiving, at the source network device, a first portion of the plurality of inner packets from the destination network device;

determining, at the source network device, that a different second portion of the plurality of inner packets are not received; and

determining a path maximum transmission unit (MTU) for a path between the source network device and the destination network device based on a largest size of the transmitted GRE encapsulated packets for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

16. The non-transitory computer readable storage medium of claim 15 , wherein the path MTU is set to be no greater than the largest size of the GRE encapsulated packet for which a corresponding inner packet of the first portion of the plurality of inner packets is received at the source network device from the destination network device.

17. The non-transitory computer readable storage medium of claim 15 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size that is expected to be able to be delivered to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with increasing size until not responded by the destination network device.

18. The non-transitory computer readable storage medium of claim 15 , wherein transmitting the plurality of GRE encapsulated packets includes:

transmitting an initial GRE encapsulated packet that has a size such that any larger size is not expected to be deliverable to the destination network device through a path to the destination network device; and

transmitting one or more subsequent GRE encapsulated packets with decreasing size until responded by the destination network device.

19. The non-transitory computer readable storage medium of claim 18 , wherein the size such that any larger size is not expected to be deliverable to the destination network device through the path to the destination network device is equal to a TCP maximum segment size (MSS).

20. The non-transitory computer readable storage medium of claim 15 , wherein determining that the different second portion of the plurality of inner packets are not received includes retransmitting the corresponding GRE encapsulated packets a predefined number of times without receiving a reply.

21. The non-transitory computer readable storage medium of claim 15 , wherein each inner packet is a GRE encapsulated packet that is configured to be transmitted from the destination network device to the source network device.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2021
From: WONDRA, NICHOLAS ALEXANDER; HEINE, ERICH ALFRED; ZHAI, YAN
To: CLOUDFLARE, INC.
Reel/Frame 057904/0006 →
Continuity (3)
Continuation 16992922 · Aug 13, 2020
Provisional Application 62886304 · Aug 13, 2019
Related Publication 20220045963A1 · Feb 10, 2022