IP Library Patent Application 18461276
Patent Application
App. No. 18/461,276

TRANSPORT LAYER FOR DISTRIBUTED AND FEDERATED LEARNING

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 None
App. No.
18/461,276
Abstract

Techniques for implementing a new transport layer for distributed and federated learning (and other use cases/applications) are provided. In one set of embodiments, the new transport layer provides partial, rather than complete, reliability in scenarios where some amount of data loss can be tolerated between senders and receivers. This allows the transport layer to implement features that significantly improve the speed and efficiency of network data transfers.

Claims (87)

1 . A method comprising:

receiving, by a transport layer of a first network endpoint, configuration information from a sender application running on a second network endpoint, the configuration information including a data loss threshold indicating an amount of data loss that may be tolerated for a data transfer from the sender application to a receiver application running on the first network endpoint;

receiving, by the transport layer, one or more network packets from the sender application as part of the data transfer; and

delivering, by the transport layer, data corresponding to the data transfer to the receiver application based on the one or more network packets in a manner that respects the data loss threshold.

2 . The method of claim 1 wherein the sender application transmits two sequential network packets P(m) and P(m+1) as part of the data transfer, and

wherein the transport layer:

receives P(m+1) but does not receive P(m); and

upon receiving P(m+1):

adds a data payload size of P(m) to a running count of data lost so far for the data transfer; and

checks whether the running count exceeds the data loss threshold.

3 . The method of claim 2 wherein upon determining that the running count does not exceed the data loss threshold, the transport layer:

generates one or more signals corresponding to P(m) that indicate P(m) was lost in transmission; and

delivers the one or more signals to the server application.

4 . The method of claim 3 wherein upon receiving the one or more signals, the server application creates synthetic substitutes for data in P(m).

5 . The method of claim 1 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

determines that next network packet P(m+1) has not been received within a time interval T1 after receiving P(m); and

in response to determining that P(m+1) has not been received within T1, returns an acknowledgement (ACK) for P(m+1) to the second network endpoint.

6 . The method of claim 5 wherein upon returning the ACK, the transport layer further:

waits for P(m+1) over another time interval T2;

in response to determining that P(m+1) has been received within T2, the transport layer delivers P(m+1) to the server application; and

in response to determining that P(m+1) has not been received within T2, handles P(m+1) as a lost packet.

7 . The method of claim 1 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

checks whether an amount of data received so far for the data transfer meets a minimum required by the data loss threshold; and

in response to determining that the amount of data received so far does meet the minimum, stops the data transfer.

8 . A non-transitory computer readable storage medium having stored thereon program code executable a transport layer of a first network endpoint, the program code causing the transport layer to:

receive configuration information from a sender application running on a second network endpoint, the configuration information including a data loss threshold indicating an amount of data loss that may be tolerated for a data transfer from the sender application to a receiver application running on the first network endpoint;

receive one or more network packets from the sender application as part of the data transfer; and

deliver data corresponding to the data transfer to the receiver application based on the one or more network packets in a manner that respects the data loss threshold.

9 . The non-transitory computer readable storage medium of claim 8 wherein the sender application transmits two sequential network packets P(m) and P(m+1) as part of the data transfer, and

wherein the transport layer:

receives P(m+1) but does not receive P(m); and

upon receiving P(m+1):

adds a data payload size of P(m) to a running count of data lost so far for the data transfer; and

checks whether the running count exceeds the data loss threshold.

10 . The non-transitory computer readable storage medium of claim 9 wherein upon determining that the running count does not exceed the data loss threshold, the transport layer:

generates one or more signals corresponding to P(m) that indicate P(m) was lost in transmission; and

delivers the one or more signals to the server application.

11 . The non-transitory computer readable storage medium of claim 10 wherein upon receiving the one or more signals, the server application creates synthetic substitutes for data in P(m).

12 . The non-transitory computer readable storage medium of claim 8 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

determines that next network packet P(m+1) has not been received within a time interval T1 after receiving P(m); and

in response to determining that P(m+1) has not been received within T1, returns an acknowledgement (ACK) for P(m+1) to the second network endpoint.

13 . The non-transitory computer readable storage medium of claim 12 wherein upon returning the ACK, the transport layer further:

waits for P(m+1) over another time interval T2;

in response to determining that P(m+1) has been received within T2, the transport layer delivers P(m+1) to the server application; and

in response to determining that P(m+1) has not been received within T2, handles P(m+1) as a lost packet.

14 . The non-transitory computer readable storage medium of claim 8 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

checks whether an amount of data received so far for the data transfer meets a minimum required by the data loss threshold; and

in response to determining that the amount of data received so far does meet the minimum, stops the data transfer.

15 . A network endpoint comprising:

a transport layer;

a receiver application; and

a non-transitory computer readable medium having stored thereon program code that, when executed by the transport layer, causes the transport layer to:

receive configuration information from a sender application running on another network endpoint, the configuration information including a data loss threshold indicating an amount of data loss that may be tolerated for a data transfer from the sender application to the receiver application;

receive one or more network packets from the sender application as part of the data transfer; and

deliver data corresponding to the data transfer to the receiver application based on the one or more network packets in a manner that respects the data loss threshold.

16 . The network endpoint of claim 15 wherein the sender application transmits two sequential network packets P(m) and P(m+1) as part of the data transfer, and

wherein the transport layer:

receives P(m+1) but does not receive P(m); and

upon receiving P(m+1):

adds a data payload size of P(m) to a running count of data lost so far for the data transfer; and

checks whether the running count exceeds the data loss threshold.

17 . The network endpoint of claim 16 wherein upon determining that the running count does not exceed the data loss threshold, the transport layer:

generates one or more signals corresponding to P(m) that indicate P(m) was lost in transmission; and

delivers the one or more signals to the server application.

18 . The network endpoint of claim 17 wherein upon receiving the one or more signals, the server application creates synthetic substitutes for data in P(m).

19 . The network endpoint of claim 15 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

determines that next network packet P(m+1) has not been received within a time interval T1 after receiving P(m); and

in response to determining that P(m+1) has not been received within T1, returns an acknowledgement (ACK) for P(m+1) to the second network endpoint.

20 . The network endpoint of claim 20 wherein upon returning the ACK, the transport layer further:

waits for P(m+1) over another time interval T2;

in response to determining that P(m+1) has been received within T2, the transport layer delivers P(m+1) to the server application; and

in response to determining that P(m+1) has not been received within T2, handles P(m+1) as a lost packet.

21 . The network endpoint of claim 15 wherein the sender application transmits a network packet P(m) as part of the data transfer, and

wherein the transport layer:

receives P(m);

checks whether an amount of data received so far for the data transfer meets a minimum required by the data loss threshold; and

in response to determining that the amount of data received so far does meet the minimum, stops the data transfer.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2023
From: BEN-ITZHAK, YANIV; VARGAFTIK, SHAY; ZOHAR, EYAL
To: VMWARE INC.
Reel/Frame 064799/0743 →