IP Library Granted Patent US 9,992,118
Granted Patent B2
US 9,992,118 · App. 14/524,656 · Granted Jun 5, 2018

System and method for optimizing transportation over networks

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,992,118
App. No.
14/524,656
Filed
Oct 27, 2014
Granted
Jun 5, 2018
Kind
B2
Art Unit
2449
USPC
709/224
Abstract

A system and method for efficient transfer of data over a network. A data source and a destination are coupled to one another via a network. The data source is configured to transmit data to the destination and determine a network latency associated with the transmission. In response to determining a first transmission parameter may not be optimized, the source is configured to modify the first transmission parameter and evaluate its effect on data throughput. The source may repeat such modifications as long as throughput is increased. Once the first transmission parameter is deemed optimized, the source may perform a similar procedure for a second transmission parameter. In various embodiments, the first transmission parameter may correspond to a packet size and the second transmission parameter may correspond to a number of streams being processed by the source.

Claims (69)

1. A method for optimizing data transmission in a computer network, the method comprising:

initiating a data backup operation to backup data from a source to a destination, wherein said operation comprises:

determining a network latency associated with transmission of data from a source to a destination via a network;

in response to determining a first transmission parameter for transmitting data on the network is not optimized, wherein the first transmission parameter corresponds to a data packet size, repeatedly performing:

modifying the first transmission parameter by increasing the data packet size;

transmitting data using the first transmission parameter as modified;

determining a network latency associated with the transmitting of data using the first transmission parameter as modified;

in response to determining the network latency has decreased, deeming the first transmission parameter to be optimized if the data packet size cannot be increased without reducing throughput;

in response to determining the network latency has increased, restoring the data packet size to a previous size at the source and deeming the first transmission parameter to be optimized;

in response to determining the first transmission parameter is optimized, determining whether a second transmission parameter is optimized, wherein the second transmission parameter corresponds to a number of streams processed by the source;

in response to determining the second parameter transmission parameter is not optimized, repeatedly performing an optimization process for the second transmission parameter.

2. The method as recited in claim 1 , wherein repeatedly performing the optimization process comprises repeatedly performing:

modifying the second transmission parameter for transmitting data on the network by increasing the number of streams;

transmitting data using the second transmission parameter as modified;

determining a network latency using the second transmission parameter as modified;

in response to determining the network latency has decreased, deeming the second transmission parameter to be optimized if the number of streams has either reached a maximum value or cannot be increased without reducing throughput; and

in response to determining the network latency has increased, restoring the number of streams to a previous number and deeming the second transmission parameter to be optimized.

3. The method as recited in claim 1 , wherein in response to determining a network throughput has reached a given threshold, both the first transmission parameter and second transmission parameter are deemed optimized.

4. The method as recited in claim 3 , wherein the given threshold is provided to the source by the destination.

5. The method as recited in claim 4 , wherein the given threshold represents a maximum throughput the destination is capable of handling.

6. The method as recited in claim 4 , wherein the given threshold is less than a maximum throughput the destination is capable of handling.

7. The method as recited in claim 1 , wherein determining a network latency comprises conveying given data from the source to the destination, receiving an acknowledgment at the source from the destination corresponding to the given data, and determining an amount of time elapsed between conveying the given data and receiving said acknowledgment.

8. A computing system comprising:

a first computing device;

a second computing device; and

a network coupling the first computing device to the second computing device;

wherein the first computing device is configured to:

initiate a data backup operation to backup data from a source to a destination, wherein said operation comprises:

determine a network latency associated with transmission of data from a source to a destination via a network;

in response to determining a first transmission parameter for transmitting data on the network is not optimized, wherein the first transmission parameter corresponds to a data packet size, the first computing device is configured to repeatedly:

modify the first transmission parameter by increasing the data packet size;

transmit data using the first transmission parameter as modified;

determine a network latency associated with the transmitting of data using the first transmission parameter as modified;

in response to determining the network latency has decreased, deem the first transmission parameter to be optimized if the data packet size cannot be increased without reducing throughput;

in response to determining the network latency has increased, restore the data packet size to a previous size at the source and deeming the first transmission parameter to be optimized;

in response to determining the first transmission parameter is optimized, determine whether a second transmission parameter is optimized, wherein the second transmission parameter corresponds to a number of streams processed by the source;

in response to determining the second parameter transmission parameter is not optimized, repeatedly perform an optimization process for the second transmission parameter.

9. The computing system as recited in claim 8 , wherein to repeatedly perform the optimization process, the first computing device is configured to repeatedly:

modify the second transmission parameter for transmitting data on the network by increasing the number of streams;

transmit data using the second transmission parameter as modified;

determine a network latency using the second transmission parameter as modified;

in response to determining the network latency has decreased, deem the second transmission parameter to be optimized if the number of streams has either reached a maximum value or cannot be increased without reducing throughput; and

in response to determining the network latency has increased, restore the number of streams to a previous number and deeming the second transmission parameter to be optimized.

10. The computing system as recited in claim 8 , wherein in response to determining a network throughput has reached a given threshold, both the first transmission parameter and second transmission parameter are deemed optimized.

11. The computing system as recited in claim 10 , wherein the given threshold is provided to the source by the destination.

12. The computing system as recited in claim 11 , wherein the given threshold represents a maximum throughput the destination is capable of handling.

13. The computing system as recited in claim 11 , wherein the given threshold is less than a maximum throughput the destination is capable of handling.

14. The computing system as recited in claim 8 , wherein to determine a network latency the first computing device is configured to convey given data to the second computing device, receive an acknowledgment from the second computing device corresponding to the given data, and determine an amount of time elapsed between conveying the given data and receiving said acknowledgment.

15. A non-transitory computer-readable storage medium storing program instructions, wherein the program instructions are executable to:

initiate a data backup operation to backup data from a source to a destination, wherein said operation comprises:

determining a network latency associated with transmission of data from a source to a destination via a network;

in response to determining a first transmission parameter for transmitting data on the network is not optimized, wherein the first transmission parameter corresponds to a data packet size, repeatedly performing:

modifying the first transmission parameter by increasing the data packet size;

transmitting data using the first transmission parameter as modified;

determining a network latency associated with the transmitting of data using the first transmission parameter as modified;

in response to determining the network latency has decreased, deeming the first transmission parameter to be optimized if the data packet size cannot be increased without reducing throughput;

in response to determining the network latency has increased, restoring the data packet size to a previous size at the source and deeming the first transmission parameter to be optimized;

in response to determining the first transmission parameter is optimized, determining whether a second transmission parameter is optimized, wherein the second transmission parameter corresponds to a number of streams processed by the source;

in response to determining the second parameter transmission parameter is not optimized, repeatedly performing an optimization process for the second transmission parameter.

16. The non-transitory computer-readable storage medium as recited in claim 15 , wherein repeatedly performing the optimization process comprises repeatedly performing:

modifying the second transmission parameter for transmitting data on the network by increasing the number of streams;

transmitting data using the second transmission parameter as modified;

determining a network latency using the second transmission parameter as modified;

in response to determining the network latency has decreased, deeming the second transmission parameter to be optimized if the number of streams has either reached a maximum value or cannot be increased without reducing throughput; and

in response to determining the network latency has increased, restoring the number of streams to a previous number and deeming the second transmission parameter to be optimized.

17. The non-transitory computer-readable storage medium as recited in claim 15 , wherein in response to determining a network throughput has reached a given threshold, the program instructions are executable to deem both the first transmission parameter and second transmission parameter are optimized.

18. The non-transitory computer-readable storage medium as recited in claim 17 , the given threshold is provided to the source by the destination.

19. The non-transitory computer-readable storage medium as recited in claim 18 , wherein the given threshold represents a maximum throughput the destination is capable of handling.

20. The non-transitory computer-readable storage medium as recited in claim 18 , wherein the given threshold is less than a maximum throughput the destination is capable of handling.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2014
From: JIA, YINGSONG; GUAN, HONGXING; JIN, XINBAO
To: SYMANTEC CORPORATION
Reel/Frame 034042/0917 →