IP Library Granted Patent US 11,777,865
Granted Patent B2
US 11,777,865 · App. 17/878,595 · Granted Oct 3, 2023

Discovery and adjustment of path maximum transmission unit

Inventors: Georgy Momchilov (Parkland, FL); Rakesh Ranjan Jha (Pompano Beach, FL); Jeffrey Holsapple (Pompano Beach, FL); Sridharan Rajagopalan (Pompano Beach, FL)
H04L47/365H04L43/10H04L47/628H04L69/14H04L69/16
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,777,865
App. No.
17/878,595
Filed
Aug 1, 2022
Granted
Oct 3, 2023
Kind
B2
Art Unit
2464
USPC
370/235
Abstract

Methods, systems, and apparatuses for discovering dynamic path maximum transmission unit (PMTU) between a sending computing device and a receiving computing device (e.g., a client device and a host device) are described herein. A sending computing device may iteratively transmit bursts of probe packets, each burst being defined by a search range between a maximum packet size and a minimum packet size. The sending computing device may iteratively update the search range based on the previous iteration until the search converges on the PMTU. When the PMTU is discovered, each of the computing devices may update their transport and presentation layer buffers based on the discovered PMTU without any other protocol level disruption. In a multi-path scenario, the computing device may discover PMTU for each of the paths and select a performance optimal path based on the individual PMTUs and other network characteristics such as loss, latency, and throughput.

Claims (41)

1. A method comprising:

for a network connection between a client device and a host device, determining, by the client device:

a minimum packet size based on a packet size of a largest packet previously sent by the client device and received by the host device, and

a maximum packet size based on a packet size of a smallest packet previously sent by the client device and not received by the host device;

sending, by the client device, to the host device and via the network connection, a plurality of packets sized within a range defined by the minimum packet size and the maximum packet size;

determining, by the client device and based on at least one response from the host device, a path maximum transmission unit (PMTU) of the network connection, wherein the at least one response is indicative of the host device receiving at least one packet from the plurality of packets; and

sending, by the client device and based on the determined PMTU, additional packets to the host device.

2. The method of claim 1 , wherein the PMTU is a packet size of the at least one packet received by the host device.

3. The method of claim 1 , further comprising:

adjusting, by the client device and based on the PMTU, a size of a buffer of the client device,

wherein sending the additional packets comprises sending, using the adjusted buffer size, the additional packets.

4. The method of claim 3 , wherein the buffer comprises a communication stack buffer of a presentation layer.

5. The method of claim 3 , wherein the buffer comprises a communication stack buffer of a transport layer.

6. The method of claim 1 , wherein an initialization of data communication via the network connection and determining of the PMTU are performed in parallel.

7. The method of claim 1 , further comprising:

causing, based on the PMTU, adjusting of a size of a buffer of the host device.

8. The method of claim 1 , wherein the a minimum packet size is larger than one byte added to the packet size of the largest packet.

9. The method of claim 1 , wherein determining the minimum packet size and the maximum packet size is further based on networking capabilities of the client device.

10. The method of claim 1 , wherein determining the minimum packet size and the maximum packet size is further networking capabilities of a plurality of intermediary network devices of the network connection.

11. A method comprising:

for a network connection between a client device and a host device, determining, by the client device and based on networking capabilities of the client device, a minimum packet size and a maximum packet size;

sending, by the client device, to the host device and via the network connection, a plurality of packets sized within a range defined by the minimum packet size and the maximum packet size;

determining, by the client device and based on at least one response from the host device, a path maximum transmission unit (PMTU) of the network connection, wherein the at least one response is indicative of the host device receiving at least one packet from the plurality of packets; and

sending, by the client device and based on the determined PMTU, additional packets to the host device.

12. The method of claim 11 , wherein the minimum packet size is a minimum packet size supported by a network interface of the client device, and

wherein the maximum packet size is a maximum packet size supported by the network interface of the client device.

13. The method of claim 11 , wherein the minimum packet size is a minimum packet size supported by the network connection or a plurality of intermediary network devices of the network connection, and

wherein the maximum packet size is a maximum packet size supported by the network connection or the plurality of intermediary network devices.

14. The method of claim 11 , wherein determining the minimum packet size and the maximum packet size comprises determining, during an initial protocol handshake between the client device and the host device, the minimum packet size and the maximum packet size.

15. The method of claim 11 , wherein determining the minimum packet size and the maximum packet size is further based on packet sizes of packets previously sent by the client device and received successfully by the host device.

16. A method comprising:

for a network connection between a client device and a host device:

determining, by the client device and based on networking capabilities of a plurality of intermediary network devices, a maximum packet size, and

determining a minimum packet size;

sending, by the client device, to the host device and via the network connection, a plurality of packets sized within a range defined by the minimum packet size and the maximum packet size;

determining, by the client device and based on at least one response from the host device, a path maximum transmission unit (PMTU) of the network connection, wherein the at least one response is indicative of the host device receiving at least one packet from the plurality of packets; and

sending, by the client device and based on the determined PMTU, additional packets to the host device.

17. The method of claim 16 , wherein the maximum packet size is a minimum of network interface maximum transmission units (MTUs) supported by plurality of intermediary network devices.

18. The method of claim 16 , wherein determining the maximum packet size comprises determining, during an initial protocol handshake between the client device, the host device and plurality of intermediary network devices, the maximum packet size.

19. The method of claim 16 , wherein determining the minimum packet size is based on packet sizes of packets previously sent by the client device and received successfully by the host device.

20. The method of claim 16 , wherein determining the minimum packet size is a minimum packet size supported by a network interface of the client device.