IP Library Granted Patent US 9,954,791
Granted Patent B2
US 9,954,791 · App. 14/752,958 · Granted Apr 24, 2018

Network interface selection for network connections

Inventor: Akshay Kumar Sreeramoju (Palo Alto, CA)
Assignee: NICIRA, INC.
H04L47/36H04L47/18H04L47/193H04L69/16H04L45/26H04L45/745
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 9,954,791
App. No.
14/752,958
Granted
Apr 24, 2018
Kind
B2
Abstract

An example method is provided to perform egress network interface selection for a network connection with a second endpoint device. The method may comprise: detecting multiple egress network interfaces of the first endpoint device that are capable of communicating with the second endpoint device via multiple routes, wherein each route involves one of the multiple egress network interfaces; and selecting, from the multiple network egress interfaces, an egress network interface based on multiple maximum transmission unit (MTU) values associated with the multiple routes. The method may further comprise setting a size limit for packets transmitted from the second endpoint device to the first endpoint device during the network connection; configuring a connection establishment packet that includes the size limit to establish the network connection; and sending the connection establishment packet to the second endpoint device via the selected egress network interface.

Claims (53)

1. A method for a first endpoint device to perform egress network interface selection for a network connection with a second endpoint device, the method comprising:

detecting multiple egress network interfaces of the first endpoint device that are capable of communicating with the second endpoint device via multiple routes, wherein each route involving one of the multiple egress network interfaces is defined in a routing table;

selecting, from the multiple egress network interfaces, an egress network interface of the first endpoint device by comparing multiple maximum transmission unit (MTU) values associated with the multiple routes that are queried from the routing table;

setting a size limit for packets transmitted from the second endpoint device to the first endpoint device based on the maximum MTU value among the multiple MTU values, wherein the maximum MTU value is associated with the selected egress network interface of the first endpoint device during the network connection;

generating a connection establishment packet that includes the size limit to establish the network connection; and

before sending a data packet to the second endpoint device, sending the connection establishment packet to the second endpoint device via the selected egress network interface.

2. The method of claim 1 , wherein selecting the egress network interface of the first endpoint device comprises:

selecting the egress network interface of the first endpoint device based on a maximum MTU value among the multiple MTU values.

3. The method of claim 2 , wherein selecting the egress network interface of the first endpoint device further comprises:

determining each of the multiple MTU values based on a route MTU value configured for each of the multiple routes, an interface MTU value configured for each of the egress network interfaces, or a minimum between the route MTU value and the interface MTU value.

4. The method of claim 2 , wherein the network connection is a Transport Control Protocol (TCP) connection, and the connection establishment packet is a synchronization (SYN) packet.

5. The method of claim 4 , wherein setting the size limit comprises:

setting a maximum segment size (MSS) value to be less than or equal to the maximum MTU value.

6. The method of claim 2 , wherein the network connection is a Transport Control Protocol (TCP) connection, the connection establishment packet is a synchronization-acknowledgement (SYN-ACK) packet and setting the size limit comprises:

setting the size limit based on an MTU value of an ingress network interface of the first endpoint via which a synchronization (SYN) packet is received from the second endpoint.

7. The method of claim 1 , further comprising:

after the network connection is established, sending data packets to the second endpoint via the selected egress network interface of the first endpoint device.

8. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a first endpoint device, cause the processor to perform a method of egress network interface selection for a network connection with a second endpoint device, the method comprising:

detecting multiple egress network interfaces of the first endpoint device that are capable of communicating with the second endpoint device via multiple routes, wherein each route involving one of the multiple egress network interfaces is defined in a routing table;

selecting, from the multiple egress network interfaces, an egress network interface of the first endpoint device by comparing multiple maximum transmission unit (MTU) values associated with the multiple routes that are queried from the routing table;

setting a size limit for packets to be transmitted from the second endpoint device to the first endpoint device based on the maximum MTU value among the multiple MTU values, wherein the maximum MTU value is associated with the selected egress network interface of the first endpoint device during the network connection;

generating a connection establishment packet that includes the size limit to establish the network connection; and

before sending a data packet to the second endpoint device, sending the connection establishment packet to the second endpoint device via the selected egress network interface.

9. The non-transitory computer-readable storage medium of claim 8 , wherein selecting the egress network interface of the first endpoint device comprises:

selecting the egress network interface of the first endpoint device based on a maximum MTU value among the multiple MTU values.

10. The non-transitory computer-readable storage medium of claim 9 , wherein selecting the egress network interface of the first endpoint device further comprises:

determining each of the multiple MTU values based on a route MTU value configured for each of the multiple routes, an interface MTU value configured for each of the egress network interfaces, or a minimum between the route MTU value and the interface MTU value.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the network connection is a Transport Control Protocol (TCP) connection, and the connection establishment packet is a synchronization (SYN) packet.

12. The non-transitory computer-readable storage medium of claim 11 , wherein setting the size limit comprises:

setting a maximum segment size (MSS) value to be less than or equal to the maximum MTU value.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the network connection is a Transport Control Protocol (TCP) connection, the connection establishment packet is a synchronization-acknowledgement (SYN-ACK) packet and setting the size limit comprises:

setting the size limit based on an MTU value of an ingress network interface of the first endpoint via which a synchronization (SYN) packet is received from the second endpoint.

14. The non-transitory computer-readable storage medium of claim 8 , further comprising:

after the network connection is established, sending data packets to the second endpoint via the selected egress network interface of the first endpoint device.

15. A first endpoint device configured to perform egress network interface selection for a network connection, the first endpoint device comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

detect multiple egress network interfaces of the first endpoint device that are capable of communicating with a second endpoint device via multiple routes, wherein each route involving one of the multiple egress network interfaces is defined in a routing table;

select, from the multiple egress network interfaces, an egress network interface of the first endpoint device by comparing multiple maximum transmission unit (MTU) values associated with the multiple routes that are queried from the routing table;

set a size limit for packets to be transmitted from the second endpoint device to the first endpoint device based on the maximum MTU value among the multiple MTU values, wherein the maximum MTU value is associated with the selected egress network interface of the first endpoint device during the network connection;

generate a connection establishment packet that includes the size limit to establish the network connection; and

before sending a data packet to the second endpoint device, send the connection establishment packet to the second endpoint device via the selected egress network interface.

16. The first endpoint device of claim 15 , wherein instructions for selecting the egress network interface of the first endpoint device cause the processor to:

select the egress network interface of the first endpoint device based on a maximum MTU value among the multiple MTU values.

17. The first endpoint device of claim 16 , wherein instructions for selecting the egress network interface of the first endpoint device further cause the processor to:

determine each of the multiple MTU values based on a route MTU value configured for each of the multiple routes, an interface MTU value configured for each of the egress network interfaces, or a minimum between the route MTU value and the interface MTU value.

18. The first endpoint device of claim 16 , wherein the network connection is a Transport Control Protocol (TCP) connection, and the connection establishment packet is a synchronization (SYN) packet.

19. The first endpoint device of claim 18 , wherein instructions for setting the size limit cause the processor to:

set a maximum segment size (MSS) value to be less than or equal to the maximum MTU value.

20. The first endpoint device of claim 16 , wherein the network connection is a Transport Control Protocol (TCP) connection, the connection establishment packet is a synchronization-acknowledgement (SYN-ACK) packet and instructions for setting the size limit cause the processor to:

set the size limit based on an MTU value of an ingress network interface of the first endpoint via which a synchronization (SYN) packet is received from the second endpoint.

21. The first endpoint device of claim 15 , wherein the instructions further cause the processor to:

after the network connection is established, send data packets to the second endpoint via the selected egress network interface of the first endpoint device.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2015
From: SREERAMOJU, AKSHAY KUMAR
To: NICIRA, INC.
Reel/Frame 036525/0742 →
Continuity (1)
Related Publication 20160380902A1 · Dec 29, 2016