IP Library Granted Patent US 7,765,307
Granted Patent B1
US 7,765,307 · App. 11/364,034 · Granted Jul 27, 2010

Bulk network transmissions using multiple connections primed to optimize transfer parameters

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 7,765,307
App. No.
11/364,034
Granted
Jul 27, 2010
Kind
B1
Abstract

A system for bulk network transmissions using multiple connections primed to optimize transfer parameters includes one or more processors and memory coupled to the processors. The memory stores program instructions executable by the processors to establish a plurality of network connections designated to be used for a single bulk data transfer. The instructions are further executable to adjust the values of one or more configuration parameters of each of the connections. The adjusting includes sending one or more priming packets over each of the connections. The instructions are also executable to perform the bulk transfer as a sequence of sub-transfers. Each sub-transfer includes a transmission of a predetermined amount of application data over each connection of a selected subset of the plurality of network connections.

Claims (70)

1. A system, comprising:

one or more processors; and

memory coupled to the one or more processors, wherein the memory comprises program instructions executable by the one or more processors to:

establish a plurality of network connections designated to be used for a bulk transfer;

adjust one or more configuration parameters associated with each network connection of the plurality of network connections, wherein to adjust the one or more configuration parameters, the instructions are further executable to send one or more priming packets associated with the bulk data transfer over each network connection to generate a plurality of primed network connections;

perform the bulk transfer as a sequence of sub-transfers, wherein each sub-transfer includes a transmission of a predetermined amount of the data over each primed network connection of a selected subset of the plurality of primed network connections, wherein a reserved subset of the plurality of primed network connections are not initially used in performing the bulk transfer as the sequence of sub-transfers;

determine whether data transmission over each respective network connection selected for a corresponding sub-transfer of the sequence of sub-transfers meets a threshold performance criterion; and

in response to determining that the data transmission over a respective one of the network connections does not meet the threshold performance criterion, automatically determine that the respective one of the network connections is an unsatisfactory connection and automatically retransmit at least a portion of the corresponding sub-transfer over one of the primed network connections of the reserved subset of the plurality of primed network connections.

2. The system as recited in claim 1 , wherein the one or more configuration parameters associated with a network connection of the plurality of network connections include a parameter indicative of an allowed amount of unacknowledged data on the network connection.

3. The system as recited in claim 1 , wherein the one or more configuration parameters associated with a network connection of the plurality of network connections include a transmit window size.

4. The system as recited in claim 1 , wherein to adjust the one or more configuration parameters, the instructions are further executable to:

determine, after sending a particular priming packet of the plurality of priming packets, whether a particular configuration parameter of the one or more configuration parameters has reached a predetermined setting;

if the particular configuration parameter has not reached the predetermined setting, send an additional priming packet over the network connection; and

if the particular configuration parameter has reached the predetermined setting, determine that no additional priming packets are to be sent over the network connection.

5. The system as recited in claim 1 , wherein the sequence of sub-transfers includes a particular sub-transfer followed by another sub-transfer, wherein the subset of primed network connections selected for the particular sub-transfer differs from the subset of primed network connections selected for the another data transfer.

6. The system as recited in claim 1 , wherein the instructions are further executable to:

in response to determining that the data transmission over the respective one of the network connections does not meet the threshold performance criterion,

close the respective one of the network connections;

open an additional network connection;

adjust one or more configuration parameters associated with the additional network connection, wherein said adjusting comprises sending one or more priming packets over the additional network connection; and

designate the additional network connection to be included in a set of network connections to be used to implement a remainder of the bulk transfer.

7. The system as recited in claim 1 , wherein the threshold performance criterion comprises a time taken to transmit a packet from a sender to a receiver over each respective network connection.

8. The system as recited in claim 1 , wherein to determine whether the data transmission over each respective network connection meets the threshold performance criterion, the instructions are further executable to:

insert instrumentation data into a packet transmitted over each respective network connection.

9. The system as recited in claim 8 , wherein said instrumentation data is inserted using a user-mode software module, without modifying a networking software stack in use for each respective network connection.

10. The system as recited in claim 1 , wherein the instructions are further executable to:

partition data corresponding to the bulk transfer into a plurality of stripes of a predetermined transmission stripe size; and

transmit consecutive stripes on each of two or more primed network connections selected for a given sub-transfer of the sequence of sub-transfers.

11. A computer-implemented method, comprising:

establishing a plurality of network connections designated to be used for a bulk transfer;

adjusting one or more configuration parameters associated with each network connection of the plurality of network connections, wherein said adjusting comprises sending one or more priming packets associated with the bulk data transfer over each network connection to generate a plurality of primed network connections;

performing the bulk transfer as a sequence of sub-transfers, wherein each sub-transfer includes a transmission of a predetermined amount of the data over each primed network connection of a selected subset of the plurality of primed network connections, wherein a reserved subset of the plurality of primed network connections are not initially used in performing the bulk transfer as the sequence of sub-transfers;

determining whether data transmission over each respective network connection selected for a corresponding sub-transfer of the sequence of sub-transfers meets a threshold performance criterion; and

in response to determining that the data transmission over a respective one of the network connections does not meet the threshold performance criterion, automatically determining that the respective one of the network connections is an unsatisfactory connection and automatically retransmitting at least a portion of the corresponding sub-transfer over one of the primed network connections of the reserved subset of the plurality of primed network connections.

12. The method as recited in claim 11 , wherein said adjusting comprises:

determining, after sending a particular priming packet of the plurality of priming packets, whether a particular configuration parameter of the one or more configuration parameters has reached a predetermined setting;

if the particular configuration parameter has not reached the predetermined setting, sending an additional priming packet over the network connection; and

if the particular configuration parameter has reached the predetermined setting, terminating said adjusting.

13. The method as recited in claim 11 , wherein the sequence of sub-transfers includes a particular sub-transfer followed by another sub-transfer, wherein the subset of primed network connections selected for the particular sub-transfer differs from the subset of primed network connections selected for the another data transfer.

14. The method as recited in claim 11 , further comprising:

in response to determining that the data transmission over the respective one of the network connections does not meet the threshold performance criterion,

closing the respective one of the network connections;

opening an additional network connection;

adjusting one or more configuration parameters associated with the additional network connection, wherein said adjusting comprises sending one or more priming packets over the additional network connection; and

designating the additional network connection to be included in a set of network connections to be used to implement a remainder of the bulk transfer.

15. The method as recited in claim 11 , wherein said determining whether the data transmission over each respective network connection meets the threshold performance criterion comprises:

inserting instrumentation data into a packet transmitted over each respective network connection.

16. The method as recited in claim 11 , further comprising:

partitioning data corresponding to the bulk transfer into a plurality of stripes of a predetermined transmission stripe size; and

transmitting consecutive stripes on each of two or more primed network connections selected for a given sub-transfer of the sequence of sub-transfers.

17. A storage medium storing program instructions, wherein the instructions are computer executable to:

establish a plurality of network connections designated to be used for a bulk transfer;

adjust one or more configuration parameters associated with each network connection of the plurality of network connections, wherein to adjust the one or more configuration parameters, the instructions are further executable to send one or more priming packets associated with the bulk data transfer over each network connection to generate a plurality of primed network connections;

perform the bulk transfer as a sequence of sub-transfers, wherein each sub-transfer includes a transmission of a predetermined amount of the data over each primed network connection of a selected subset of the plurality of primed network connections, wherein a reserved subset of the plurality of primed network connections are not initially used in performing the bulk transfer as the sequence of sub-transfers;

determine whether data transmission over each respective network connection selected for a corresponding sub-transfer of the sequence of sub-transfers meets a threshold performance criterion; and

in response to determining that the data transmission over a respective one of the network connections does not meet the threshold performance criterion, automatically determine that the respective one of the network connections is an unsatisfactory connection and automatically retransmitting at least a portion of the corresponding sub-transfer over one of the primed network connections of the reserved subset of the plurality of primed network connections.

18. The storage medium as recited in claim 17 , wherein to adjust the one or more configuration parameters, the instructions are further executable to:

determine, after sending a particular priming packet of the plurality of priming packets, whether a particular configuration parameter of the one or more configuration parameters has reached a predetermined setting;

if the particular configuration parameter has not reached the predetermined setting, send an additional priming packet over the network connection; and

if the particular configuration parameter has reached the predetermined setting, determine that no additional priming packets are to be sent over the network connection.

19. The storage medium as recited in claim 17 , wherein the sequence of sub-transfers includes a particular sub-transfer followed by another sub-transfer, wherein the subset of primed network connections selected for the particular sub-transfer differs from the subset of primed network connections selected for the another data transfer.

20. The storage medium as recited in claim 17 , wherein the instructions are further executable to:

in response to determining that the data transmission over the respective one of the network connections does not meet the threshold performance criterion,

close the respective one of the network connections;

open an additional network connection;

adjust one or more configuration parameters associated with the additional network connection, wherein said adjusting comprises sending one or more priming packets over the additional network connection; and

designate the additional network connection to be included in a set of network connections to be used to implement a remainder of the bulk transfer.

21. The storage medium as recited in claim 17 , wherein the instructions are further executable to:

partition data corresponding to the bulk transfer into a plurality of stripes of a predetermined transmission stripe size; and

transmit consecutive stripes on each of two or more primed network connections selected for a given sub-transfer of the sequence of sub-transfers.

Assignments (12)
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 →
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 AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
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 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2006
From: KRITOV, SLAVA; VAN RIETSCHOTE, HANS F.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017642/0511 →